TiDB監控實現--存活監控
TiDB監控實現 -- 存活監控
--20190228 劉春雷
1、需求
1、隨著TiDB叢集的數量的發展,需要監控TiDB叢集的存活情況
2、公司監控使用zabbix,需要將TiDB的監控接入進去
2、實現方式
3、通過zabbix的介面,建立監控等
4、通過zabbix實現簡訊報警
美團的實現方式:
https://tech.meituan.com/2018/11/22/mysql-pingcap-practice.html
5、其他實現
也可以通過 Alertmanager報警
3、具體實現
3.1、規範
3.1.1、host規範
3.1.2、監控項
監控項名字 | 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 採集一次 |
3.1.3、觸發器
監控項名字 | 觸發器名字 | 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 |
3.2、傳送至zabbix實現
3.2.1、舉例zabbix_sender命令
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的一致性)
單個叢集的檢查時間:0.298s
【2 】舉例檢查全部Tidb叢集,耗時0.936s
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
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Prometheus+Grafana實現服務效能監控:windows主機監控、Spring Boot監控、Spring Cloud Alibaba Seata監控PrometheusGrafanaWindowsSpring BootCloud
- 黑盒監控、日誌監控
- 手把手教你搭建高逼格監控平臺,第四彈,監控主機存活狀態
- 6.prometheus監控--監控dockerPrometheusDocker
- 如何高效利用 Grafana 監控分析 TiDB 指標GrafanaTiDB指標
- GO實現資料夾監控Go
- Java實現ZooKeeper的zNode監控Java
- 監控
- Kubernetes監控實踐
- 實時監控系統,統一監控企業APIAPI
- 聊聊前端監控——錯誤監控篇前端
- 日誌監控實踐 - 監控Agent整合Lua引擎實現多維度日誌採集
- Kubernetes監控實踐(2):可行監控方案之Prometheus和SensuPrometheus
- JS實現監控微信小程式JS微信小程式
- Java實現檔案監控器FileMonitorJava
- APM效能監控軟體的監控型別服務及監控流程型別
- OpenTelemetry 實戰:gRPC 監控的實現原理RPC
- 11.prometheus監控之黑盒(blackbox)監控Prometheus
- 3-主機監控、應用監控
- 在監控中注視:監控題材遊戲的社交呈現遊戲
- Zabbix實戰--監控NginxNginx
- centos 監控CentOS
- openGauss 監控
- Linux 監控Linux
- nginx監控Nginx
- zabbix監控
- 阿里雲容器Kubernetes監控(一)-資源監控阿里
- MySQL監控-Datadog資料庫監控調研MySql資料庫
- Docker容器的自動化監控實現Docker
- 如何實現MQ佇列訊息監控MQ佇列
- 10-SpringBoot 工程的健康監控實現Spring Boot
- 網路卡流量監控指令碼,python實現指令碼Python
- 遠端影片監控實現的條件
- 使用 Performance API 實現前端資源監控ORMAPI前端
- Docker 快速實現 【JMeter + InfluxDB + Grafana】 監控方案DockerJMeterUXGrafana
- Python實現遠端埠監控例項Python
- 前端監控進階篇 — Sentry 監控 Next.js 專案實踐前端JS
- 一種對雲主機進行效能監控的監控系統及其監控方法