时间:2023-08-01 17:02:52 点击次数:10
作者:胡呈清
爱可生 DBA 团队成员,擅长故障分析、性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。我们可以在 Zabbix 官网的“解决方案-数据库”页面中发现 Zabbix 对 TiDB 的监控方案:https://www.zabbix.com/cn/integrations/tidb
上述所说的内容都已经做成了模板,安装好就能够使用(部分表达式有错误,后文会指出)。不过要求也比较严格:
Zabbix 版本要求:>=5.4 而 Zabbix5.4 对操作系统也有要求:
Zabbix Server RHEL8/CeontOS8Zabbix agent CeontOS6/7/8主要是因为 Zabbix 的各版本兼容性较差,监控模板导出后基本无法导入到其他版本。如果要在其他版本使用,正确姿势是:
版本不低于4.2(4.0.x 最新版本不支持);
参考 5.4 版本上默认的模板,手工创建监控模板和其中的 item 、trigger 等。我们先来看看 Zabbix5.4 上的使用方法。参考官方文档即可,步骤非常简单:https://www.zabbix.com/cn/download?zabbix=5.4&os_distribution=centos&os_version=8&db=mysql&ws=apache
路径:Configuration > Host
注意需要手工添加红框处的接口,其他版本默认就有:
给 host 关联 TiDB 监控模板:
默认就有 TiDB by HTTP 、TiDB PD by HTTP 、TiDB TiKV by HTTP 这3个模板,关联到 host 即可(这个 host 装了哪些就关联哪些)
模板中的 {$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,所以不再需要指定值。在 Monitoring-Latest data 页面中查看到有监控数据就说明成功了: