TiDB监控实现--存活监控

      TiDB监控实现 -- 存活监控

                                                                --20190228 刘春雷

1、需求

1、随着TiDB集群的数量的发展,需要监控TiDB集群的存活情况

2、公司监控使用zabbix,需要将TiDB的监控接入进去

3、需要实现一键添加、删除集群监控,实现自动化

2、实现方式

1、通过Prometheus 的接口,获取各个组件的状态,处理数据后,推送至zabbix ;
2、通过各个组件(TiDB、PD、TiKV、Grafana)的本地 API 获取组件状态,防止prometheus的单点问题,开发中。

3、通过zabbix的接口,创建监控等

4、通过zabbix实现短信报警

美团的实现方式:

https://tech.meituan.com/2018/11/22/mysql-pingcap-practice.html

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 的自己存活无接口,先忽略

 

监控项名字keytype值情况采集时间
TiDBAliveCheckTiDBaliveCheckZabbix trapper0:不存活
1:存活
10s 采集一次
PDAliveCheckPDaliveCheckZabbix trapper0:不存活
1:存活
10s 采集一次
TiKVAliveCheckTiKValiveCheckZabbix trapper0:不存活
1:存活
10s 采集一次
GrafAliveCheckGrafaliveCheckZabbix trapper0:不存活
1:存活
10s 采集一次


3.1.3、触发器

 

监控项名字触发器名字key采集时间触发
TiDBAliveCheckTiDB DownTiDBaliveCheck10s 采集一次最近3次采集数据值等于0 个数大于2即30s内采集不到即报警)
{ TiDB.GrafanaaliveCheck .count (#3,0,"eq")} >2
PDAliveCheckPD DownPDaliveCheck10s 采集一次

最近3次采集数据值等于0 个数大于2即30s内采集不到即报警)

{ TiDB.GrafanaaliveCheck.count(#3,0,"eq")} >2

TiKVAliveCheckTiKV DownTiKValiveCheck10s 采集一次

最近3次采集数据值等于0 个数大于2即30s内采集不到即报警)

{ GrafanaaliveCheck.count(#3,0,"eq")} >2

GrafAliveCheckGraf DownGrafaliveCheck10s 采集一次

最近3次采集数据值等于0 个数大于2即30s内采集不到即报 )

{ GrafanaaliveCheck.count(#3,0,"eq")} >2

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_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的一致性)

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、恢复测试--短信


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

转载于:http://blog.itpub.net/28823725/viewspace-2655486/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值