17.6 Telegraf、InfluxDB 与 Grafana 监控平台架构

系统监控是运维管理和性能优化的基础,通过实时采集、存储和可视化系统指标,可以实现故障预警、性能分析和容量规划等关键功能,为系统的稳定运行提供有力保障。

Telegraf、InfluxDB 与 Grafana 构成的 TIG 堆栈是业界广泛采用的开源监控解决方案,遵循数据采集、存储与可视化分离的设计原则,实现了模块化的监控架构。

其中 InfluxDB 作为时序数据库专门用于高效存储时间序列数据,Telegraf 作为插件化的采集代理负责指标收集,Grafana 则提供强大的可视化能力,三者协同工作构成完整的监控体系。

InfluxDB 安装与配置

InfluxDB 是一款用于存储和分析时间序列数据的开源数据库。

安装 InfluxDB

使用 pkg 包管理器安装 InfluxDB 是最快捷的方式,执行以下命令即可完成安装:

# pkg install influxdb

或者使用 Ports 方式安装 InfluxDB,需要先进入对应的目录再执行编译安装命令。

# cd /usr/ports/databases/influxdb/ 
# make install clean

服务管理

安装完成后,需要设置 InfluxDB 服务开机自启并启动服务。

设置 InfluxDB 服务开机自启:

# service influxd enable

启动 InfluxDB 服务:

修改 InfluxDB 配置

如需自定义配置,读者可以自行修改 InfluxDB 的配置文件 /usr/local/etc/influxd.conf。编辑该文件可实现自定义配置。

修改完成后请重启 InfluxDB 服务:

创建 InfluxDB 数据库

需要在 InfluxDB 中创建数据库和用户,供 Telegraf 使用。

Telegraf

Telegraf 是一个用于采集和报告指标的代理程序。本节将介绍如何安装和配置 Telegraf。

安装 Telegraf

使用 pkg 包管理器安装 Telegraf 是最快捷的方式,执行以下命令即可完成安装:

或者使用 Ports 方式安装 Telegraf,需要先进入对应的目录再执行编译安装命令。

加入启动项

安装完成后,需要设置 Telegraf 服务开机自启。

设置 Telegraf 服务开机自启:

此时暂时不要启动 Telegraf 服务。

配置 InfluxDB 连接

目录结构:

需要配置 Telegraf 使其能够将采集的数据发送到 InfluxDB。这里使用的是 InfluxDB 1.8 版本。

需要在配置文件 /usr/local/etc/telegraf.conf 中进行修改如下:

配置采集指标

需要配置 Telegraf 采集哪些系统指标。配置文件路径:/usr/local/etc/telegraf.conf

这里将收集系统的 CPU、磁盘(disk)、磁盘 IO(diskio)、内存(memory)、交换空间(swap)等指标。下面是 Telegraf 配置文件中的部分内容,其中部分参数默认启用,部分参数需要手动取消注释。

详情参见:官方文档[EB/OL]. [2026-03-26]. https://docs.influxdata.com/telegraf/v1.26/configuration/arrow-up-right,提供 Telegraf 完整配置参数及插件使用说明。

启动服务

所有配置完成后,可以启动 Telegraf 服务开始采集数据。

启动 Telegraf 服务:

Grafana

Grafana 是一个开源的数据可视化和监控平台,用于将 InfluxDB 等数据源中的数据以图表形式展示。

安装 Grafana

使用 pkg 包管理器安装 Grafana 是最快捷的方式,执行以下命令即可完成安装:

使用 Ports 方式安装 Grafana,需要先进入对应的目录再执行编译安装命令。

守护进程

安装完成后,需要设置 Grafana 服务开机自启并启动服务。

设置 Grafana 服务开机自启:

启动 Grafana 服务:

登录 Grafana

Grafana 服务启动后,可以通过浏览器访问其 Web 界面进行配置。Grafana 的默认登录地址为 http://localhost:3000

Grafana 主页
  • 默认登录用户名和密码:

    • Username(用户名):admin

    • Password(密码):admin

Grafana 登录页

登录后会要求修改密码。

配置数据源

需要在 Grafana 中配置数据源,使其能够从 InfluxDB 中读取数据。

  • 登录后点击左上角的 Connections -> 选择 Add new connection

    grafana-datasource-add
  • 在右边的输入框中输入 InfluxDB -> 选择搜索出来的 InfluxDB,点击

    choose-influxdb
  • 点击右上角的 Add new data source 按钮 -> 配置 InfluxDB 相关的内容。

    grafana-datasource-create
  • 在数据源配置页面填写相关的 InfluxDB 连接信息,需配置内容如下:

    注意

    我们上面使用的是 InfluxDB 1.8,所以选择的查询语言必须选 InfluxQL(默认即是)

URL 输入:http://localhost:8086

grafana-influxdb-source-config1

在数据源配置中,Database 输入 mydb,User 输入 username,Password 输入 password(这些值在创建 InfluxDB 数据库时设置)。

grafana-influxdb-source-config2

点击 Save & Test 按钮保存配置。提示成功连接,并获取了数据:

grafana-influxdb-source-config3

配置 Dashboard

数据源配置完成后,可以配置 Dashboard 来可视化展示监控数据。选择用于展示数据的 Dashboard,可以自行开发,也可以使用 官方模板库arrow-up-right 中其他人开发的模板,提供丰富的社区贡献仪表板资源。

此处导入 id 为 928arrow-up-right 的模版,该模板专为 Telegraf 系统监控设计,展示全面的系统指标。

  • 导入模版,点击右上角的 + -> Import dashboard 进入导入模版页面。

    Grafana 导入模版
  • 选择 id928 的模版导入,输入 928,再点击“Load”。

    Grafana 选择 id

    选择我们的数据库。

    Grafana 选择数据库
  • 模版最终效果

    Grafana 模版最终效果

设置中文

依次进入 Home -> Administration -> General -> Default preferences -> Language,选择“简体中文”。

Grafana 设置中文

故障排除与未竟事宜

在使用过程中可能会遇到一些问题,本节列出了一些常见的问题和待解决的事项。

内核、网络、CPU 相关信息均未显示

问题可能与 /proc 文件系统有关。

该问题有待进一步研究与解决方案的探索。

课后习题

  1. 重构 Telegraf 的简体中文翻译,贡献上游。

  2. 配置 HTTPS 支持,并实现 SSL 自动签名。

  3. 加固安全配置,使其能够面向互联网。

最后更新于