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

秦晓辉@快猫星云 2024-06-25 00:08:08

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

Categraf 监控 mysql 的仪表盘

下面开工。

1. 安装夜莺和 Categraf

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

2. 配置 Categraf

配置 categraf

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

categraf 监控 mysql 说明文档

比如我们要监控某个 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 监控指标

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

promql 查询 mysql 指标

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

mysql 指标查询

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

4. 导入 MySQL 模板

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

mysql 内置仪表盘

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

mysql 仪表盘列表

mysql 仪表盘详情

5. 导入告警规则

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

mysql 内置告警规则

完活。

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

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

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

监控/可观测性类知识真的非常驳杂,如果想要找靠谱乙方帮忙建设可观测性体系,也欢迎联系我们: https://flashcat.cloud/contact/

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat
FlashDuty
Flashduty