监控组件:mysqld-exporter
github地址:GitHub - prometheus/mysqld_exporter: Exporter for MySQL server metrics
mysqld-exporter 部署位置 192.168.0.39
被监控mysql部署位置 192.168.0.10
被监控数据库添加用户权限
CREATE USER 'mysql_exporter'@'192.168.0.39' IDENTIFIED BY '111111';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_exporter'@'192.168.0.10';
flush privileges;
启动mysqld-exporter
docker run -d \
--name mysql-192.168.0.10 \
-p 9510:9104 \
--restart=always \
--restart=on-failure:5 \
-e DATA_SOURCE_NAME="mysql_exporter:111111@(192.168.0.10:3306)/" \
prom/mysqld-exporter
prometheus集成mysqld-exporter
# mysqld_exporter
- job_name: mysql-192.168.0.10
static_configs:
- targets: ['192.168.0.39:9510']
grafana图形代码 7362
告警配置
我这里只包含了主从的
# cat rules/mysql_export-alert-rules.yaml
groups:
- name: mysql主从监控告警
rules:
- alert: mysql主从Slave_IO告警
expr: mysql_slave_status_slave_io_running == 0
for: 1s
labels:
serverity: warning
status: 非常严重
annotations:
description: "{{$labels.job}}:mysql主从Slave_IO停止"
summary: "mysql主从Slave_IO停止"
- alert: mysql主从Slave_SQL告警
expr: mysql_slave_status_slave_sql_running == 0
for: 1s
labels:
serverity: warning
status: 非常严重
annotations:
description: "{{$labels.job}}:mysql主从Slave_SQL停止"
summary: "mysql主从Slave_SQL停止"
- alert: mysql主从延时告警
expr: mysql_slave_status_seconds_behind_master > 60
for: 3m
labels:
serverity: warning
status: 非常严重
annotations:
description: "{{$labels.job}}:mysql主从延时>60s,(当前:{{$value}})"
summary: "mysql主从Slave_SQL停止"