服务下载、解压
prometheus、mysql_exporter:https://prometheus.io/download/
grafana:https://grafana.com/grafana/download
创建mysql监控用户
#ip为mysql_exporter服务器,“111111”密码,WITH MAX_USER_CONNECTIONS 10 限制连接数。
CREATE USER 'mysql_exporter'@'192.168.223.146' IDENTIFIED BY '111111' WITH MAX_USER_CONNECTIONS 10;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_exporter'@'192.168.223.146'; #授权
flush privileges;
配置mysql.cnf
vim /data/mysql_exporter/mysql.cnf
[client]
host=mysql-ip
port=port
user=mysql_exporter
password=111111
启动mysql_exporter
#--config.my-cnf=指定配置文件。如不指定,默认路径在root下面。
nohub ./mysql_exporter --config.my-cnf=mysql.cnf &
访问地址:http://192.168.223.146:9104
配置prometheus
vim /data/prometheus/prometheus.yml
- job_name: 'mysql'
static_configs:
- targets: ['192.168.223.146:9104']
配置告警(主从类型)
vim /data/prometheus/rules/mysql_export-alert-rules.yml
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停止"