写点什么

使用 Zabbix 监控 TiDB(一)

  • 2022 年 7 月 11 日
  • 本文字数:1104 字

    阅读完需:约 4 分钟

作者: 轻松的鱼原文来源:https://tidb.net/blog/4007b18d


版权声明 ©


【是否原创】是


【首发渠道】个人博客:https://www.jianshu.com/u/a95ec11f67a8

Zabbix Server5.4

有些时候我们需要使用 Zabbix 对几套 TiDB 集群做集中式的监控和告警管理,怎么办呢?可以在 Zabbix 官网的“解决方案 - 数据库”页面中发现 Zabbix 对 TiDB 的监控方案:https://www.zabbix.com/cn/integrations/tidb


监控逻辑:


1. 通过 HTTP agent 方式,Zabbix server 主动调用 TiDB 的监控接口(比如 http://127.0.0.1:10080/metrics)获取监控数据;


2. Zabbix 使用 Prometheus to JSON 功能(在 4.2 版本引入)对监控数据进行预处理,变成 JSON 格式;


3. 再通过 JSONPath 功能取出任何想要的指标,比如所有 query 的总响应时间。


上述所说的内容都已经做成了模板,安装好就能够使用(部分表达式有错误,后文会指出)。不过要求也比较严格:


Zabbix 版本要求:>=5.4


而 Zabbix5.4 对操作系统也有要求:


  • Zabbix Server RHEL8/CentOS8

  • Zabbix agent CentOS6/7/8


Zabbix 的各版本兼容性较差,监控模板导出后基本无法导入到其他版本。如果要在其他版本使用,正确姿势是:


  • 版本不低于 4.2(即使 4.0.x 最新版本也不支持);

  • 参考 5.4 版本上默认的模板,手工创建监控模板和其中的 item、trigger 等。


我们先来看看 Zabbix5.4 上的使用方法。

1. 安装

参考官方文档即可,步骤非常简单:https://www.zabbix.com/cn/download?zabbix=5.4&os_distribution=centos&os_version=8&db=mysql&ws=apache

2. 添加 host

路径:Configuration > Host


注意需要手工添加红框处的接口,其他版本默认就有:


3. 关联模板

给 host 关联 TiDB 监控模板:


默认就有 TiDB by HTTP、TiDB PD by HTTP、TiDB TiKV by HTTP 这 3 个模板,关联到 host 即可(这个 host 装了哪些组件就关联哪些)


4. 修改宏

模板中的 {$TIKV.UL}{$TIKV.PORT}这两个宏需要修改:



{$TIKV.PORT}指定对应的端口就行,如果使用的是默认端口就不需要修改了;


{$TIKV.URL} 在模板中的值是 localhost,它在 master item 中使用(其他 item 类型都是 dependent item):




它是通过 HTTP agent 的方式去获取的监控指标,URL 就是用 {$TIKV.URL}:{$TIKV.PORT}/metrics 表示的,我们要实现的是每个 TiDB、TiKV、PD 都替换成对应的接口,比如 10.186.64.59:20180/metrics,只需要用 {HOST.IP} 替换 {$TIKV.URL}这个宏即可:


  • {$TIKV.URL} 是个自定义宏,所以需要在模板的宏定义中指定值(注意这个值只能是确定的值,而不能继续用宏表示);

  • {HOST.IP} 是个内部宏,会自动取对应 host 的 IP,所以不再需要指定值。

5. 查看监控数据

在 Monitoring-Latest data 页面中查看到有监控数据就说明成功了:



发布于: 刚刚阅读数: 2
用户头像

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
使用Zabbix监控TiDB(一)_实践案例_TiDB 社区干货传送门_InfoQ写作社区