TiDB 监控实现 -- 存活监控
作者: 18515065291 原文来源:https://tidb.net/blog/5a3f54c2
TiDB 监控实现 – 存活监控
1、需求
1、随着 TiDB 集群的数量的发展,需要监控 TiDB 集群的存活情况
2、公司监控使用 zabbix,需要将 TiDB 的监控接入进去
3、需要实现一键添加、删除集群监控,实现自动化
2、实现方式
1、通过 Prometheus 的接口,获取各个组件的状态,处理数据后,推送至 zabbix;
2、通过各个组件(TiDB、PD、TiKV、Grafana)的本地 API 获取组件状态,防止 prometheus 的单点问题,开发中。
3、通过 zabbix 的接口,创建监控等
4、通过 zabbix 实现短信报警
美团的实现方式:
新一代数据库 TiDB 在美团的实践
多年来,基于 MySQL 构建的传统关系型数据库服务,已经难于支撑美团业务的爆发式增长,这就促使我们去探索更合理的数据存储方案,并实践新的运维方式。
5、其他实现
也可以通过 Alertmanager 报警
3、具体实现
3.1、规范
3.1.1、host 规范
{tidb/pd/tikv/prometheus/grafana}{实例端口 port}{实例 IP}
举例:
tidb_6666_10.0.0.1
pd_6666_10.0.0.1
tikv_6666_10.0.0.1
prometheus_6666_10.0.0.1 暂时没有查到接口判断存活
grafana_666_10.0.0.1
3.1.2、监控项
注:Prometheus 的自己存活无接口,先忽略
3.1.3、触发器
3.2、发送至 zabbix 实现
3.2.1、举例 zabbix_sender 命令
/zabbix_agent34/bin/zabbix_sender –zabbix-server=10.0.0.2 –host=tidb_6666_10.1.1.1 –key=TiDBaliveCheck –value=1
info from server: “processed: 1; failed: 0; total: 1; seconds spent: 0.000037”
sent: 1; skipped: 0; total: 1
3.2.2、具体
tidb_monitor
python tidb_monitor.py -c {cluster_id2} (检查 指定 tidb cluster) python tidb_monitor.py -a (检查 所有 tidb cluster) python tidb_monitor.py -g (从 mysql 获取 tidb 集群信息,生成最新的配置文件) python tidb_monitor.py -m (检查 zabbix 的监控与 cdb 的一致性)
【 1】举例检查某个 Tidb 集群
tidb_monitor.py -c 6666-1
单个集群的检查时间:0.298s
【2 】举例检查全部 Tidb 集群,耗时 0.936s
python tidb_monitor.py -a
3.3、一致性检查
python tidb_monitor.py -m
获取 zabbix 的 host
检查 zabbix 多的,并删除
检查元信息库多的,并添加
【一致的情况】
【zabbix 缺少监控的情况】
3.4、更新配置文件
配置文件里面记录了集群的拓扑信息,用于检查监控获取实例信息
tidb_monitor -g
3.5、配置文件
3.6、运行
放在管理机的 crontab 任务里面运行,后期与平台联动即可
4、zabbix 部分
4.1、Template
TiDB
4.2、Applications
4.3、items
4.4、Triggers
4.5、Graphs
4.6、Actions
4.7、Users
4.8、 测试报警
4.9.1、宕机测试 – 微信
4.9.2、宕机测试 – 短信
4.9.3、宕机测试 – zabbix
4.9.4、ack 测试
4.9.5、恢复测试–zabbix
4.9.6、恢复测试–微信
4.9.7、恢复测试– 短信
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/7b64af88a49f707e4968b32ed】。文章转载请联系作者。
评论