对于MySQL的监控平台,实现起来有很多了:基于天兔的监控,还有基于zabbix相关的二次开发。我这边的选型是prometheus + granafa的实现方式。简而言之就是我现在的生产环境使用的是prometheus,还有就是granafa满足的我的日常工作需要。
一、exporter相关部署
1、安装exporter
# 进入目标目录
/data/prometheus
mkdir -p /data/prometheus/mysql_exporter
https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz
tar -xf mysqld_exporter-0.13.0.linux-amd64.tar.gz
2、添加mysql账户
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'exporter'@'%' IDENTIFIED BY 'localhost';
flush privileges;
3、编辑配置文件
cd /data/prometheus/mysql_exporter/mysqld_exporter-0.13.0.linux-amd64
cat /data/prometheus/mysql_exporter/mysqld_exporter-0.13.0.linux-amd64/.my.cnf
[client]
user=exporter
password=123456
4、设置配置文件
# 监控的其他组件的系统文件都是 /usr/lib/systemd/system 这个目录
# mysql是在 /etc/systemd/system 目录下,是否需要保持一致,待实际验证
cat /etc/systemd/system/mysql_exporter.service
[Unit]
Description=mysql Monitoring System
Documentation=mysql Monitoring System
[Service]
ExecStart=/data/prometheus/mysql_exporter/mysqld_exporter-0.13.0.linux-amd64/mysqld_exporter \
-collect.info_schema.processlist \
-collect.info_schema.innodb_tablespaces \
-collect.info_schema.innodb_metrics \
-collect.perf_schema.tableiowaits \
-collect.perf_schema.indexiowaits \
-collect.perf_schema.tablelocks \
-collect.engine_innodb_status \
-collect.perf_schema.file_events \
-collect.info_schema.processlist \
-collect.binlog_size \
-collect.info_schema.clientstats \
-collect.perf_schema.eventswaits \
-config.my-cnf=/data/prometheus/mysql_exporter/mysqld_exporter-0.13.0.linux-amd64/.my.cnf
[Install]
WantedBy=multi-user.target
5、添加配置到prometheus server
- job_name: 'mysql'
static_configs:
- targets: ['192.168.1.11:9104','192.168.1.12:9104']
6、测试看有没有返回数值
http://192.168.1.12:9104/metrics
正常我们通过mysql_up可以查询倒mysql监控是否已经生效,是否起起来
# HELP mysql_up Whether the MySQL server is up.
# TYPE mysql_up gauge
mysql_up 1
二、监控相关指标
在做任何一个东西监控的时候,我们要时刻明白我们要监控的是什么,指标是啥才能更好的去监控我们的服务,在mysql里面我们通常可以通过一下指标去衡量mysql的运行情况:mysql主从运行情况、查询吞吐量、慢查询情况、连接数情况、缓冲池使用情况以及查询执行性能等。
三、主从复制运行指标
1、主从复制线程监控:
大部分情况下,很多企业使用的都是主从复制的环境,监控两个线程是非常重要的,在mysql里面我们通常是通过命令:
MariaDB [(none)]> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.1.1
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000045
Read_Master_Log_Pos: 72904854
Relay_Log_File: mariadb-relay-bin.000127
Relay_Log_Pos: 7290

本文介绍了使用Prometheus和Grafana搭建MySQL监控平台的步骤,包括exporter部署、配置、监控指标设置。重点关注主从复制状态、查询吞吐量、慢查询、连接数以及缓冲池监控,并提供了相关的PromQL示例和告警规则。此外,文章还分享了Grafana的监控模板ID和告警规则配置。
最低0.47元/天 解锁文章
1725

被折叠的 条评论
为什么被折叠?



