首页 > 数据库 > NewSQL > TiDB监控实现--存活监控
--20190228 刘春雷
1、随着TiDB集群的数量的发展,需要监控TiDB集群的存活情况
2、公司监控使用zabbix,需要将TiDB的监控接入进去
3、通过zabbix的接口,创建监控等
4、通过zabbix实现短信报警
美团的实现方式:
https://tech.meituan.com/2018/11/22/mysql-pingcap-practice.html
5、其他实现
也可以通过 Alertmanager报警
| 监控项名字 | key | type | 值情况 | 采集时间 |
| TiDBAliveCheck | TiDBaliveCheck | Zabbix trapper | 0:不存活
1:存活 |
10s 采集一次 |
| PDAliveCheck | PDaliveCheck | Zabbix trapper | 0:不存活
1:存活 |
10s 采集一次 |
| TiKVAliveCheck | TiKValiveCheck | Zabbix trapper | 0:不存活
1:存活 |
10s 采集一次 |
| GrafAliveCheck | GrafaliveCheck | Zabbix trapper | 0:不存活
1:存活 |
10s 采集一次 |
| 监控项名字 | 触发器名字 | key | 采集时间 | 触发 |
| TiDBAliveCheck | TiDB Down | TiDBaliveCheck | 10s 采集一次 | 最近3次采集数据值等于0 个数大于2即30s内采集不到即报警)
{ TiDB.GrafanaaliveCheck .count (#3,0,"eq")} >2 |
| PDAliveCheck | PD Down | PDaliveCheck | 10s 采集一次 |
最近3次采集数据值等于0 个数大于2即30s内采集不到即报警) { TiDB.GrafanaaliveCheck.count(#3,0,"eq")} >2 |
| TiKVAliveCheck | TiKV Down | TiKValiveCheck | 10s 采集一次 |
最近3次采集数据值等于0 个数大于2即30s内采集不到即报警) { GrafanaaliveCheck.count(#3,0,"eq")} >2 |
| GrafAliveCheck | Graf Down | GrafaliveCheck | 10s 采集一次 |
最近3次采集数据值等于0 个数大于2即30s内采集不到即报 警) { GrafanaaliveCheck.count(#3,0,"eq")} >2 |
sent: 1; skipped: 0; total: 1
tidb_monitor
输入如下:
python tidb_monitor.py -c {$cluster_id1,$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的一致性)

单个集群的检查时间:0.298s

【2 】举例检查全部Tidb集群,耗时0.936s

python tidb_monitor.py -m
获取zabbix的host
检查zabbix多的,并删除
检查元信息库多的,并添加
【一致的情况】

【zabbix缺少监控的情况】

配置文件里面记录了集群的拓扑信息,用于检查监控获取实例信息
tidb_monitor -g


放在管理机的crontab任务里面运行,后期与平台联动即可














来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28823725/viewspace-2655486/ ,如需转载,请注明出处,否则将追究法律责任。