prometheus + mysqld_exporter监控mysql(十)

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

对于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
使用Prometheusmysqld_exporter监控MySQL服务器多实例,可按以下步骤操作: 1. **下载mysqld_exporter**:从https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz 下载mysqld_exporter [^2]。 2. **创建监控账号**:在所有环境的实例中创建相同的 mysqld_exporter 监控账号和密码,也可使用不同的账号和密码。若认证密码不同,需通过官方提示的配置文件进行配置 [^3]。 3. **准备配置文件**:准备配置文件 config.my - cnf,以下是一个.my.cnf 示例: ```plaintext # client 是 mysqld_exporter 程序启动的时候默认连接的,如果不设置 host 的值,将会使用 127.0.0.1 进行连接 [client] host = MySQL服务的IP user = exporter password = Exporter+110 # 默认端口会使用 3306 port = 3306 # 被监控的其他 MySQL 服务实例的认证信息,在这里分别配置上, 建议授权专门用于监控的相同的授权用户 [client.mysql2] host = MySQL服务的IP user = exporter password = Exporter+110 [client.mysql3] host = MySQL服务的IP user = moniter password = Exporter+110 ``` 此文件中,[client] 部分是 mysqld_exporter 程序启动时默认连接的配置,若不设置 host 值,将使用 127.0.0.1 连接;还可在 [client.mysqlX] 部分配置被监控的其他 MySQL 服务实例的认证信息 [^4]。 4. **配置Prometheus**:点击菜单云资源管理 - MySQL管理 - prometheus配置,在右侧选择需要加入监控的云账号RDS组,输入 mysqld_exporter 的IP和端口,点击生成配置,复制生成的JOB内容到Prometheus [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值