使用 Categraf 快速建设 MySQL 监控,同时介绍夜莺模板中心

秦晓辉@快猫星云 2024年6月25日

之前翻译过一篇文章,介绍 MySQL 监控的一些原理,本文侧重实操,使用夜莺 v7.beta12.1 版本为大家做一个演示,采集器使用 Categraf,先看一下最终仪表盘效果:

下面开工。

1. 安装夜莺和 Categraf

夜莺的安装可以参考 夜莺官方文档,Categraf 的安装可以参考 Categraf官方文档。这里就不赘述了。

2. 配置 Categraf

点击 MySQL 集成,打开【采集说明】这个 tab,里面有详细的操作步骤,按照步骤操作即可。

比如我们要监控某个 MySQL 实例,该实例在 10.1.2.3 机器上,那我们就到 10.1.2.3 的机器上安装 Categraf,并且按照【采集说明】中的配置来配置 MySQL 的连接地址,因为是本机的 Categraf 连到本机的 MySQL 实例上采集监控数据,所以 address 大概率是配置成 127.0.0.1:3306,默认配置给的用户名和密码是 root 、1234,生产环境下,通常不会这么干,而是创建一个只读的 MySQL 账号专门给监控采集器使用。比如:

CREATE USER 'categraf'@'127.0.0.1' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'categraf'@'127.0.0.1';

如果 MySQL 是云上的实例,没法登录 MySQL 所在机器部署 Categraf,此时可以选一台和 MySQL 实例网络质量比较好的虚机,在虚机上部署 Categraf,监控远端的 MySQL 实例。这个 Categraf 可能同时监控了多个 MySQL 实例,所以要配置多个 [[instances]] 段(采集说明页面下面也给出了样例),每个配置段中都要给出 instance 标签来区分不同的实例。

如果验证 Categraf 是否采集到了数据?使用如下命令:

./categraf --test --inputs mysql

如果正常打印了采集到的指标,重启 Categraf 即可,或者给 Categraf 发个 HUP 信号,让其重载配置。

kill -HUP `pidof categraf`

3. 查看 MySQL 监控指标

在夜莺的指标视图或者即时查询中都可以看到 MySQL 的监控指标,只要能查到,就说明数据正常上报了,比如即时查询:

输入 MySQL 关键字之后,立马提示了很多指标,这就说明这些指标都采集上来了。直接写 promql 对很多人来讲有难度,可以使用指标视图,使用内置的 promql 查看监控数据:

点击某个指标,侧拉板里就会发起查询:

默认打开的是 Table 视图,也可以点击 Graph 切换成图表视图。

4. 导入 MySQL 模板

重新回到夜莺模板中心,搜索 MySQL,找到仪表盘那个 tab,导入仪表盘,我这个例子里是在 MySQL 对应的机器上部署的 Categraf,所以导入的是“MySQL 仪表盘”,如果是远端监控的 MySQL 实例,那就导入“MySQL 仪表盘(远端)”。

然后去业务组下找到刚才导入的仪表盘,点开查看即可:

5. 导入告警规则

回到模板中心,找到 MySQL 的告警规则 tab,全选,把告警规则导入自己的业务组下即可。

完活。

模板中心已经内置了一些模板,使用起来比较方便。当然,中间件、数据库种类比较多,也不是每个都整理的很完备,欢迎大家一起整理这些采集说明、仪表盘、告警规则、指标说明,提 PR 给社区,一起共建。代码提交到这里:

https://github.com/ccfos/nightingale/tree/main/integrations

可以参考 MySQL 目录下的内容,按照格式提交即可。

监控/可观测性类知识真的非常驳杂,我们编著了几本白皮书,免费送给大家: 如果想要找靠谱乙方帮忙建设可观测性体系,也欢迎联系我们: https://flashcat.cloud/contact/

开源版
Flashcat
Flashduty