新闻

Grafana 三件套在手,玩转运维监控

2023.03.02

随着数字化进程的加速,企业对业务产生的海量数据进行实时监控预警,不但能规避故障带来的损失,还能助力决策,实现降本增效。因此,对数据进行实时监控分析可视化展示越发成为各类业务的硬需求。

在各式各类开源数据可视化工具中,Grafana 凭借其丰富的仪表盘插件灵活的可视化效果、以及简单易用的告警系统脱颖而出。

作为一款专门面向监控运维场景的数据可视化工具,Grafana 专注于时间序列数据的展示,高度适用于智能工厂、智慧零售等需要监控大量时序数据的物联网场景

当然,一个完整的监控告警机制离不开业务数据的采集与分析。今天我们就为大家介绍一款将数据采集+分析处理+ Grafana 展示结合的“三件套”方案,助你轻松实现设备指标监控。


Telegraf 是 InfluxData 公司推出的用于采集各种指标信息的软件,DolphinDB 作为一款高性能分布式时序数据库,则集成了功能强大的编程语言和高容量、高速度的流数据分析系统。

如果我们将 Telegraf、DolphinDB 与 Grafana 三者结合,部署 Telegraf 实时采集设备指标数据,使用 DolphinDB 作为输出存储,再将输出到 DolphinDB 的指标数据通过 Grafana 的图表进行展示,就能搭建一套集指标采集、存储、实时处理、结果展示等功能于一体的系统

接下来,通过一个运用“三件套”统计 CPU 使用率,从而进行预警监控的运维实例,我们一起来了解下实时监控系统是如何搭建起来的

Telegraf 采集数据到 DolphinDB

首先,我们需要在 Telegraf 的配置文件中添加 CPU 使用率这一监控指标,并编写输出到 DolphinDB 流表的输出配置文件。

下载/自行编译 telegraf-dolphindb-outputs 插件

DolphinDB 基于 Telegraf 的 Output 插件将 Telegraf 采集并处理过的数据写入 DolphinDB 中。该插件作为 Telegraf 的子进程在后台常驻运行,Telegraf 将采集并处理好的数据进行序列化并通过 stdin 传入该插件,并通过该插件的 stderr 监听插件日志及处理结果。点击阅读原文可获取 DolphinDB 已实现好的 telegraf-dolphindb-outputs 插件,直接下载即可,也可自行编译实现该插件。

准备配置文件

1. 修改 Telegraf 的配置文件 TelegrafConfig。在 INPUT PLUGINS 中添加 CPU 监控 [[inputs.cpu]],在OUTPUT PLUGINS 中添加对应 [[outputs.execd]] 输出。

2. 编写对应 [[outputs.execd]] 的配置文件 dolphindb-output-3.conf。直接注释掉 database,将 Telegraf 采集的数据导入到 DolphinDB 流表 cpu_stream 中。

3. 修改 DolphinDB 配置文件 dolphindb.cfg,用于支持创建磁盘持久化流表。

DolphinDB 流计算预警异常数据

接下来,我们要在 DolphinDB 中创建存储 CPU 使用率数据的流表,并编写预警脚本

  • 创建流表

连接登录 DolphinDB ,在 DolphinDB 中创建存储 CPU 指标数据的流表 cpu_stream。

  • 存储&实时处理数据

在 DolphinDB 中订阅流表 cpu_stream 中的数据,一方面将流表中的数据导入到分布式表 dfs_cpu 中进行持久化存储,另一方面对流表中的数据进行流计算预警统计 CPU 使用率大于80%的指标数据,并将统计的数据存入流表 cpu_warning_result 中。

  • 启动 Telegraf
  • 查询指标

此时我们可以查看 cpu_stream 中最近的100条 CPU 指标数据、dfs_cpu 中最近的100条 CPU 指标数据、以及cpu_warning_result 中最近的100条预警数据 。

Grafana 可视化 DolphinDB 数据

最后,我们登录 Grafana,监控 CPU 利用率大于80%的预警数据。连接上 DolphinDB 数据源并创建面板 Panel 后,直接可视化 cpu_warning_result 中的数据即可(这里只监控了单核 cpu0 的预警数据)。如此便可实现 CPU 使用率的可视化监控预警