监控 InfluxDB 企业集群
InfluxDB 企业版提供高可用性和高度可扩展的集群解决方案,满足您的时序数据处理需求。使用Chronograf评估集群的健康状况以及监控项目背后的基础设施。
本指南提供了使用Chronograf、InfluxDB和Telegraf监控InfluxDB企业版集群中数据节点的逐步说明。
要求
您拥有一个功能齐全的InfluxDB企业版集群,并已启用身份验证。有关详细设置说明,请参阅InfluxDB企业版文档。本指南使用一个包含三个元节点和三个数据节点的InfluxData企业版集群;以下步骤也适用于其他集群配置。
InfluxData建议使用单独的服务器来存储监控数据。您可以将监控数据存储在集群中,并将集群连接到Chronograf(请参阅常见问题解答了解如何连接Chronograf到InfluxEnterprise集群),但通常,您的监控数据应位于单独的服务器上。
您正在使用Ubuntu安装。Chronograf和TICK堆栈的其他组件支持多个操作系统和硬件架构。请访问下载页面以获取您选择的二进制文件的链接。
架构概述
在开始之前,以下是最终监控设置的概述
上面的图示显示了一个由三个元节点(M)和三个数据节点(D)组成的InfluxDB企业版集群。每个数据节点都有自己的Telegraf实例(T)。
每个Telegraf实例都配置为使用Telegraf 系统统计信息输入插件收集节点CPU、磁盘和内存数据。Telegraf实例还配置为将这些数据发送到位于单独服务器上的单个InfluxDB OSS实例。当Telegraf将数据发送到InfluxDB时,它会自动将数据标记为相关数据节点的主机名。
存储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实例上创建一个管理员用户。由于您已启用身份验证,您必须在此步骤之后才能继续下一步。运行以下命令创建管理员用户,用您自己的用户名和密码替换chronothan
和supersecret
。请注意,密码需要单引号。
~# curl -XPOST "https://127.0.0.1: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
您可以从InfluxData下载页面下载Telegraf。
步骤 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://127.0.0.1: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://127.0.0.1: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系统输入插件默认启用,无需额外配置。输入插件自动收集关于系统负载、运行时间和登录用户数的通用统计数据。配置文件中的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 CLI(influx
)
$ influx
> SHOW TAG VALUES FROM cpu WITH KEY=host
curl
将chronothan
和supersecret
值替换为您的实际用户名和密码。
~# curl -G "https://127.0.0.1:8086/query?db=telegraf&u=chronothan&p=supersecret&pretty=true" --data-urlencode "q=SHOW TAG VALUES FROM cpu WITH KEY=host"
预期的输出类似于以下JSON代码块。在这种情况下,telegraf
数据库有三个不同的标签值用于host
标签键: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,请访问https://127.0.0.1:8888。欢迎页面包括连接Chronograf到该实例的说明。
对于Connection String
,输入您的InfluxDB OSS实例的主机名或IP地址,并确保包含默认端口:8086
。接下来,命名您的数据源;这可以是您想要的任何名称。最后,输入您的用户名和密码,然后点击添加源
。
步骤 4:在Chronograf中探索监控数据
Chronograf与您的InfluxDB OSS实例中的Telegraf数据协同工作。《主机列表》页面显示了您数据节点的主机名、它们的状况、CPU使用率、负载以及它们配置的应用程序。在这种情况下,您只启用了系统统计输入插件,所以system
是出现在Apps
列中的单个应用程序。
单击system
以查看该应用程序的Chronograf预定义仪表板。通过查看每个主机名的仪表板来监视您的数据节点
接下来,查看数据探索器以使用监控数据创建自定义图形。在下面的图像中,Chronograf查询编辑器用于可视化每个数据节点的空闲CPU使用率数据
在Chronograf的仪表板页面上创建更多定制图表,并将它们保存到仪表板中。有关更多信息,请参阅创建Chronograf仪表板指南。
完成了!您已成功配置Telegraf来收集和写入数据,InfluxDB来存储这些数据,以及Chronograf来使用这些数据进行监控和可视化。
这个页面有帮助吗?
感谢您的反馈!