文档文档

监控 InfluxDB 企业集群

InfluxDB 企业版提供高可用性和高度可扩展的集群解决方案,满足您的时序数据处理需求。使用Chronograf评估集群的健康状况以及监控项目背后的基础设施。

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

要求

您拥有一个功能齐全的InfluxDB企业版集群,并已启用身份验证。有关详细设置说明,请参阅InfluxDB企业版文档。本指南使用一个包含三个元节点和三个数据节点的InfluxData企业版集群;以下步骤也适用于其他集群配置。

InfluxData建议使用单独的服务器来存储监控数据。您可以将监控数据存储在集群中,并将集群连接到Chronograf(请参阅常见问题解答了解如何连接Chronograf到InfluxEnterprise集群),但通常,您的监控数据应位于单独的服务器上。

您正在使用Ubuntu安装。Chronograf和TICK堆栈的其他组件支持多个操作系统和硬件架构。请访问下载页面以获取您选择的二进制文件的链接。

架构概述

在开始之前,以下是最终监控设置的概述

Architecture diagram

上面的图示显示了一个由三个元节点(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实例上创建一个管理员用户。由于您已启用身份验证,您必须在此步骤之后才能继续下一步。运行以下命令创建管理员用户,用您自己的用户名和密码替换chronothansupersecret。请注意,密码需要单引号。

~# 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]]部分,取消注释并设置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://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

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

~# 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-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,请访问https://127.0.0.1:8888。欢迎页面包括连接Chronograf到该实例的说明。

Connect Chronograf to InfluxDB

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

步骤 4:在Chronograf中探索监控数据

Chronograf与您的InfluxDB OSS实例中的Telegraf数据协同工作。《主机列表》页面显示了您数据节点的主机名、它们的状况、CPU使用率、负载以及它们配置的应用程序。在这种情况下,您只启用了系统统计输入插件,所以system是出现在Apps列中的单个应用程序。

Host List page

单击system以查看该应用程序的Chronograf预定义仪表板。通过查看每个主机名的仪表板来监视您的数据节点

Pre-created dashboard

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

Data Explorer

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

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


这个页面有帮助吗?

感谢您的反馈!


Flux的未来

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

阅读更多

InfluxDB v3增强和InfluxDB Clustered现已上市

包括更快的查询性能和管理工具在内的新功能,推进了InfluxDB v3产品线。InfluxDB Clustered现已上市。

InfluxDB v3性能和功能

InfluxDB v3产品线在查询性能方面取得了重大改进,并提供了新的管理工具。这些改进包括一个操作仪表板来监控您的InfluxDB集群的健康状况,InfluxDB Cloud Dedicated中的单点登录(SSO)支持,以及用于令牌和数据库的新管理API。

了解新的v3增强功能


InfluxDB Clustered上市

InfluxDB Clustered现已上市,并为您在自行管理的堆栈中提供了InfluxDB v3的功能。

与我们谈谈InfluxDB Clustered