监控InfluxDB企业集群
InfluxDB Enterprise 提供高可用性和高可扩展性的集群解决方案,以满足您的时间序列数据需求。使用 Chronograf 来评估您的集群健康状况并监控项目背后的基础设施。
本指南提供了使用Chronograf、InfluxDB和Telegraf来监控您InfluxDB企业集群中的数据节点的分步说明。
要求
您拥有一个功能完整的启用了认证的InfluxDB Enterprise集群。请参阅InfluxDB Enterprise文档以获取详细的设置说明。本指南使用一个包含三个元节点和三个数据节点的InfluxData Enterprise集群;这些步骤也适用于其他集群配置。
InfluxData建议使用单独的服务器来存储您的监控数据。监控数据可以存储在您的集群中,并且将集群连接到Chronograf,但是,通常情况下,您的监控数据应存放在单独的服务器上。
您正在进行Ubuntu安装。 Chronograf和TICK栈的其他组件在多个操作系统和硬件架构上受到支持。请查看下载页面以获取您选择的二进制文件链接。
架构概述
在我们开始之前,这是最终监控设置的概述:

上面的图显示了一个由三个元节点 (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。 因为你启用了身份验证,你必须在进入下一部分之前执行此步骤。 运行下面的命令以创建一个管理员用户,将 chronothan 和 supersecret 替换为你自己的用户名和密码。 注意,密码需要单引号。
~# 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]] 部分,取消注释并设置 username 和 password 选项为你在 上一部分 中创建的用户名和密码。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
将 chronothan 和 supersecret 值替换为您的实际用户名和密码。
~# 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 values:data-node-01、data-node-02 和 data-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连接到该实例的说明。

对于 Connection String,输入您的 InfluxDB OSS 实例的主机名或 IP,并确保包含默认端口: 8086。接下来,命名您的数据源;这可以是您想要的任何名称。最后,输入您的用户名和密码,然后点击 Add Source。
步骤 4:在 Chronograf 中浏览监控数据
Chronograf 与您 InfluxDB OSS 实例中的 Telegraf 数据一起工作。 Host List 页面显示您的数据节点的主机名、状态、CPU 使用率、负载和其配置的应用程序。在这种情况下,您仅启用了系统统计输入插件,因此 system 是在 Apps 列中出现的唯一应用程序。

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

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

创建更多自定义图表并将它们保存到Chronograf的仪表板页面的仪表板中。有关更多信息,请参阅Creating Chronograf dashboards指南。
就是这样!您已经成功配置了 Telegraf 来收集和写入数据,配置了 InfluxDB 来存储这些数据,以及配置了 Chronograf 来使用这些数据进行监控和可视化。