Prometheus监控MySQL服务(二进制版本)
概述
Prometheus监控MySQL服务需要使用mysql_exporter服务
GitHub地址:https://github.com/prometheus/mysqld_exporter
实操
MySQL创建连接用户
# 创建用户
mysql> CREATE USER 'exporter'@'%' IDENTIFIED BY 'huangsir';
Query OK, 0 rows affected (0.12 sec)
# 配置权限
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
Query OK, 0 rows affected (0.00 sec)
配置mysql_exporter
下载exporter
# 下载mysql_exporter
[root@lb ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-386.tar.gz
# 解压mysql_exporter
[root@lb ~]# tar -xvf mysqld_exporter-0.17.2.linux-386.tar.gz
# 创建软链接
[root@lb ~]# ln -s /root/mysqld_exporter-0.17.2.linux-386  /root/mysql_exporter
创建exporter的配置文件
[root@lb ~]# cat /root/mysql_exporter/.my.cnf
[client]
user=exporter
password=huangsir
启动mysql_exporter
配置exporter的systemd文件
[root@lb ~]# cat /etc/systemd/system/mysql-exporter.service
[Unit]
Description=huangSir Linux Node Exporter
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target
 
[Service]
Type=simple
# --mysqld.address:指定MySQL的地址
# --web.listen-address:指定暴漏的端口
# --config.my-cnf:指定要加载的配置文件
ExecStart=/root/mysql_exporter/mysqld_exporter --mysqld.address="10.0.0.10:3306" \
--web.listen-address=:9104 \
--config.my-cnf="/root/mysql_exporter/.my.cnf"
[Install]
WantedBy=multi-user.target
启动exporter
[root@lb ~]# systemctl daemon-reload
# 启动
[root@lb ~]# systemctl start mysql-exporter
# 检查状态
[root@lb ~]# systemctl status mysql-exporter
● mysql-exporter.service - huangSir Linux Node Exporter
     Loaded: loaded (/etc/systemd/system/mysql-exporter.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2025-06-08 14:45:13 CST; 4s ago
       Docs: https://prometheus.io/docs/introduction/overview/
   Main PID: 827560 (mysqld_exporter)
      Tasks: 3 (limit: 973)
     Memory: 1.1M
        CPU: 5ms
     CGroup: /system.slice/mysql-exporter.service
             └─827560 /root/mysql_exporter/mysqld_exporter --mysqld.address=10.0.0.10:3306 --web.listen-address=:9104 --config.my-cnf=/root/mysql_exporter/.my.cnf
Jun 08 14:45:13 lb mysqld_exporter[827560]: time=2025-06-08T06:45:13.071Z level=INFO source=mysqld_exporter.go:239 msg="Starting mysqld_exporter" version="(version=0.17.2, branch=HEAD, revi>
Jun 08 14:45:13 lb mysqld_exporter[827560]: time=2025-06-08T06:45:13.072Z level=INFO source=mysqld_exporter.go:240 msg="Build context" build_context="(go=go1.23.6, platform=linux/386, user=>
Jun 08 14:45:13 lb mysqld_exporter[827560]: time=2025-06-08T06:45:13.072Z level=INFO source=mysqld_exporter.go:252 msg="Scraper enabled" scraper=global_status
Jun 08 14:45:13 lb mysqld_exporter[827560]: time=2025-06-08T06:45:13.072Z level=INFO source=mysqld_exporter.go:252 msg="Scraper enabled" scraper=global_variables
Jun 08 14:45:13 lb mysqld_exporter[827560]: time=2025-06-08T06:45:13.072Z level=INFO source=mysqld_exporter.go:252 msg="Scraper enabled" scraper=slave_status
Jun 08 14:45:13 lb mysqld_exporter[827560]: time=2025-06-08T06:45:13.072Z level=INFO source=mysqld_exporter.go:252 msg="Scraper enabled" scraper=info_schema.query_response_time
配置Prometheus
修改配置文件
[root@lb ~/prometheus]# vim prometheus.yml
scrape_configs:
  # 添加下面的配置
  - job_name: "mysql"
    scheme: "http"
    metrics_path: "/metrics"
    static_configs:
      - targets: ["10.0.0.10:9104"]
        labels:
          app: "mysql"
检查Prometheus语法
[root@lb ~/prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
 SUCCESS: prometheus.yml is valid prometheus config file syntax
热加载Prometheus
[root@lb ~/prometheus]# curl -X POST http://10.0.0.10:9090/-/reload
访问Prometheus查看
http://10.0.0.10:9090/targets

配置Grafana
导入Grafana的看板:
参考该链接:https://github.com/prometheus/mysqld_exporter/blob/main/mysqld-mixin/dashboards/mysql-overview.json

本文来自博客园,作者:huangSir-devops,转载请注明原文链接:https://www.cnblogs.com/huangSir-devops/p/18919386,微信Vac666666,欢迎交流
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号