Documentation

监控InfluxDB企业集群

InfluxDB Enterprise 提供高可用性和高可扩展性的集群解决方案,以满足您的时间序列数据需求。使用 Chronograf 来评估您的集群健康状况并监控项目背后的基础设施。

本指南提供了使用Chronograf、InfluxDBTelegraf来监控您InfluxDB企业集群中的数据节点的分步说明。

要求

您拥有一个功能完整的启用了认证的InfluxDB Enterprise集群。请参阅InfluxDB Enterprise文档以获取详细的设置说明。本指南使用一个包含三个元节点和三个数据节点的InfluxData Enterprise集群;这些步骤也适用于其他集群配置。

InfluxData建议使用单独的服务器来存储您的监控数据。监控数据可以存储在您的集群中,并且将集群连接到Chronograf,但是,通常情况下,您的监控数据应存放在单独的服务器上。

您正在进行Ubuntu安装。 Chronograf和TICK栈的其他组件在多个操作系统和硬件架构上受到支持。请查看下载页面以获取您选择的二进制文件链接。

架构概述

在我们开始之前,这是最终监控设置的概述:

Architecture diagram

上面的图显示了一个由三个元节点 (M) 和三个数据节点 (D) 组成的 InfluxDB 企业集群。 每个数据节点都有自己的 Telegraf 实例 (T)。

每个Telegraf实例被配置为使用Telegraf system stats输入插件收集节点的CPU、磁盘和内存数据。 Telegraf实例还被配置为将这些数据发送到位于单独服务器上的一个InfluxDB OSS实例。 当Telegraf将数据发送到InfluxDB时,它会自动用相关数据节点的主机名tags这些数据。

存储 Telegraf 数据的 InfluxDB OSS 实例已连接到 Chronograf。 Chronograf 使用 Telegraf 数据中的主机名来填充主机列表页面,并在用户界面中提供其他特定于主机名的信息。

设置描述

InfluxDB OSS 设置

步骤 1:下载并安装 InfluxDB

InfluxDB 可以从 InfluxData 下载页面 下载。

步骤 2:启用身份验证

出于安全考虑,请在InfluxDB 配置文件 (influxdb.conf)中启用身份验证,该文件位于 /etc/influxdb/influxdb.conf

在配置文件的 [http] 部分,取消注释 auth-enabled 选项并将其设置为 true

[http]
  # Determines whether HTTP endpoint is enabled.
  # enabled = true

  # The bind address used by the HTTP service.
  # bind-address = ":8086"

  # Determines whether HTTP authentication is enabled.
  auth-enabled = true #💥

步骤 3:启动 InfluxDB

接下来,启动InfluxDB进程:

~# sudo systemctl start influxdb

步骤 4:创建一个管理员用户

在你的 InfluxDB 实例上创建一个 admin user。 因为你启用了身份验证,你必须在进入下一部分之前执行此步骤。 运行下面的命令以创建一个管理员用户,将 chronothansupersecret 替换为你自己的用户名和密码。 注意,密码需要单引号。

~# curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER chronothan WITH PASSWORD 'supersecret' WITH ALL PRIVILEGES"

成功的 CREATE USER 查询返回一个空结果:

{"results":[{"statement_id":0}]}   <--- Success!

Telegraf 设置

在您的集群中的每个数据节点上执行以下步骤。 在本节末尾,您将返回到您的 InfluxDB 实例。

步骤 1:下载并安装 Telegraf

Telegraf 可以从 InfluxData 下载页面 下载。

步骤 2:配置 Telegraf

配置Telegraf将监控数据写入你的InfluxDB OSS实例。 Telegraf配置文件位于/etc/telegraf/telegraf.conf

首先,在 [[outputs.influxdb]] 部分,设置 urls 选项为您 InfluxDB OSS 实例的 IP 地址和端口。 InfluxDB 默认在端口 8086 上运行。 这一步确保 Telegraf 将数据写入您的 InfluxDB OSS 实例。

[[outputs.influxdb]]
  ## The full HTTP or UDP endpoint URL for your InfluxDB instance.
  ## Multiple urls can be specified as part of the same cluster,
  ## this means that only ONE of the urls will be written to each interval.
  # urls = ["udp://localhost:8089"] # UDP endpoint example
  urls = ["http://xxx.xx.xxx.xxx:8086"] #💥

接下来,在相同的 [[outputs.influxdb]] 部分,取消注释并设置 usernamepassword 选项为你在 上一部分 中创建的用户名和密码。Telegraf 必须知道你的用户名和密码,以便成功将数据写入你的 InfluxDB OSS 实例。

[[outputs.influxdb]]
  ## The full HTTP or UDP endpoint URL for your InfluxDB instance.
  ## Multiple urls can be specified as part of the same cluster,
  ## this means that only ONE of the urls will be written to each interval.
  # urls = ["udp://localhost:8089"] # UDP endpoint example
  urls = ["http://xxx.xx.xxx.xxx:8086"] # required

  [...]

  ## Write timeout (for the InfluxDB client), formatted as a string.
  ## If not provided, will default to 5s. 0s means no timeout (not recommended).
  timeout = "5s"
  username = "chronothan" #💥
  password = "supersecret" #💥

Telegraf System input plugin 默认是启用的,并且不需要额外的配置。 输入插件自动收集系统负载、运行时间和登录用户数量的一般统计信息。 启用的输入插件在配置文件的 INPUT PLUGINS 部分配置;例如,这里是控制 CPU 数据收集的部分:

###############################################################################
#                            INPUT PLUGINS                                    #
###############################################################################

# Read metrics about cpu usage
[[inputs.cpu]]
  ## Whether to report per-cpu stats or not
  percpu = true
  ## Whether to report total system cpu stats or not
  totalcpu = true
  ## If true, collect raw CPU time metrics.
  collect_cpu_time = false

步骤 3:重启 Telegraf 服务

重新启动Telegraf服务,以使您的配置更改生效:

macOS

telegraf --config telegraf.conf

Linux(sysvinit 和 upstart 安装)

sudo service telegraf restart

Linux (systemd 安装)

systemctl restart telegraf

对集群中的每个数据节点重复步骤一到四。

步骤 4: 确认 Telegraf 设置

要验证Telegraf是否成功收集和写入数据,可以使用以下方法之一来查询您的InfluxDB OSS实例:

InfluxDB 命令行工具 (influx)

$ influx
> SHOW TAG VALUES FROM cpu WITH KEY=host

curl

chronothansupersecret 值替换为您的实际用户名和密码。

~# curl -G "http://localhost:8086/query?db=telegraf&u=chronothan&p=supersecret&pretty=true" --data-urlencode "q=SHOW TAG VALUES FROM cpu WITH KEY=host"

预期的输出类似于下面的JSON代码块。 在这种情况下,telegraf 数据库对于 host tag key 有三个不同的 tag valuesdata-node-01data-node-02data-node-03。 这些值与集群中三个数据节点的主机名匹配;这意味着Telegraf成功地将来自这些主机的监控数据写入了InfluxDB OSS实例!

{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "cpu",
                    "columns": [
                        "key",
                        "value"
                    ],
                    "values": [
                        [
                            "host",
                            "data-node-01"
                        ],
                        [
                            "host",
                            "data-node-02"
                        ],
                        [
                            "host",
                            "data-node-03"
                        ]
                    ]
                }
            ]
        }
    ]
}

Chronograf 设置

步骤 1:下载并安装 Chronograf

在与InfluxDB实例相同的服务器上下载并安装Chronograf。 这不是一个要求;您可以在单独的服务器上托管Chronograf。

Chronograf可以从InfluxData下载页面下载。

步骤 2:启动 Chronograf

~# sudo systemctl start chronograf

步骤 3:将 Chronograf 连接到 InfluxDB OSS 实例

要访问Chronograf,请前往http://localhost:8888。欢迎页面包含将Chronograf连接到该实例的说明。

Connect Chronograf to InfluxDB

对于 Connection String,输入您的 InfluxDB OSS 实例的主机名或 IP,并确保包含默认端口: 8086。接下来,命名您的数据源;这可以是您想要的任何名称。最后,输入您的用户名和密码,然后点击 Add Source

步骤 4:在 Chronograf 中浏览监控数据

Chronograf 与您 InfluxDB OSS 实例中的 Telegraf 数据一起工作。 Host List 页面显示您的数据节点的主机名、状态、CPU 使用率、负载和其配置的应用程序。在这种情况下,您仅启用了系统统计输入插件,因此 system 是在 Apps 列中出现的唯一应用程序。

Host List page

点击 system 查看该应用程序的 Chronograf 预设仪表板。通过查看每个主机名的仪表板来关注您的数据节点:

Pre-created dashboard

接下来,查看数据探索器以使用监控数据创建自定义图表。 在下面的图像中,使用Chronograf查询编辑器可视化每个数据节点的空闲CPU使用数据:

Data Explorer

创建更多自定义图表并将它们保存到Chronograf的仪表板页面的仪表板中。有关更多信息,请参阅Creating Chronograf dashboards指南。

就是这样!您已经成功配置了 Telegraf 来收集和写入数据,配置了 InfluxDB 来存储这些数据,以及配置了 Chronograf 来使用这些数据进行监控和可视化。



Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: