【Prometheus-MySQL Exporter安装配置指南,开机自启】

目录

    • [1. 创建 MySQL 监控用户](#1. 创建 MySQL 监控用户)
    • [2. 配置 MySQL 认证文件](#2. 配置 MySQL 认证文件)
    • [3. 安装 mysqld_exporter](#3. 安装 mysqld_exporter)
    • [4. 配置 Systemd 服务](#4. 配置 Systemd 服务)
    • [5. 启动并验证服务](#5. 启动并验证服务)
    • [6. 修改Prometheus配置](#6. 修改Prometheus配置)
    • [6. 验证监控数据](#6. 验证监控数据)
    • [7. Grafana看板](#7. Grafana看板)

1. 创建 MySQL 监控用户

bash 复制代码
mysql -uroot -p123456  # 登录MySQL
sql 复制代码
-- 1. 创建监控用户
CREATE USER 'mysql_monitor'@'%' IDENTIFIED BY 'GUANzhu123//';

-- 2. 授予必要权限
GRANT SELECT, REPLICATION CLIENT, PROCESS ON *.* TO 'mysql_monitor'@'%';
FLUSH PRIVILEGES;
EXIT;  # 退出MySQL

2. 配置 MySQL 认证文件

bash 复制代码
# 创建配置目录
mkdir -p /etc/mysqld_exporter

# 创建并编辑认证文件
vim /etc/mysqld_exporter/.my.cnf
ini 复制代码
[client]
host=192.168.15.131  # MySQL服务器地址
user=mysql_monitor
password=GUANzhu123//
bash 复制代码
# 设置文件权限(仅root可读)
chmod 600 /etc/mysqld_exporter/.my.cnf

3. 安装 mysqld_exporter

bash 复制代码
# 创建安装目录
mkdir /usr/local/mysqld_exporter

# 解压二进制文件
tar -xzf mysqld_exporter-0.15.0.linux-amd64.tar.gz -C /usr/local/mysqld_exporter --strip-components=1

# 设置可执行权限
chmod +x /usr/local/mysqld_exporter/mysqld_exporter

4. 配置 Systemd 服务

bash 复制代码
# 创建服务文件
vim /usr/lib/systemd/system/mysqld_exporter.service
ini 复制代码
[Unit]
Description=MySQL Exporter for Prometheus
After=network.target
StartLimitIntervalSec=300  # 允许更多重启尝试
StartLimitBurst=10         # 间隔内允许的失败次数

[Service]
User=root
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter \
  --config.my-cnf=/etc/mysqld_exporter/.my.cnf \
  --web.listen-address=:9104 \
  --log.level=debug  # 启用调试日志
Restart=always
RestartSec=10
TimeoutStartSec=120    # 延长启动超时
StandardOutput=journal  # 日志输出到systemd
StandardError=journal
SyslogIdentifier=mysqld_exporter

[Install]
WantedBy=multi-user.target

5. 启动并验证服务

bash 复制代码
# 重新加载Systemd配置
systemctl daemon-reload

# 设置开机自启
systemctl enable mysqld_exporter

# 启动服务
systemctl start mysqld_exporter

# 检查服务状态
systemctl status mysqld_exporter

6. 修改Prometheus配置

bash 复制代码
vim /usr/local/prometheus/prometheus.yml 
ini 复制代码
添加
  - job_name: 'postgres'
    static_configs:  
    - targets: ['192.168.15.131:9187']

常见错误排查

错误现象
复制代码
Active: activating (auto-restart) (Result: exit-code) ...
Process: 76499 ExecStart=... (code=exited, status=1/FAILURE)
排查步骤
  1. 检查日志

    bash 复制代码
    journalctl -u mysqld_exporter -f --no-pager
    • 常见错误:
      • 连接失败Access deniedCan't connect to MySQL server
        • 确认 .my.cnf 中的 hostuserpassword 是否正确。
      • 文件权限Permission denied
        • 确保 .my.cnf 权限为 600,且 mysqld_exporter 用户有读取权限。
      • 路径错误No such file or directory
        • 确认 ExecStart 中的可执行文件路径正确。
  2. 手动测试连接

    bash 复制代码
    /usr/local/mysqld_exporter/mysqld_exporter \
      --config.my-cnf=/etc/mysqld_exporter/.my.cnf \
      --log.level=debug
    • 观察终端输出,确认是否可以成功连接到 MySQL。
  3. 检查网络连通性

    bash 复制代码
    telnet 192.168.15.131 3306  # 确认MySQL端口可达
  4. 终止残留进程

    如果服务卡在 activating 状态,手动终止残留进程:

    bash 复制代码
    ps aux | grep mysqld_exporter
    kill -9 <PID>  # 强制终止

6. 验证监控数据

  • 访问 http://<服务器IP>:9104/metrics,确认可以获取到 MySQL 监控指标。

关键注意事项

  1. 安全性

    • 监控用户密码建议使用强密码,并限制访问来源(如仅允许 Prometheus 服务器 IP)。
    • 生产环境建议使用非 root 用户运行 mysqld_exporter
  2. 防火墙配置

    bash 复制代码
    firewall-cmd --add-port=9104/tcp --permanent
    firewall-cmd --reload
  3. 版本兼容性

    • mysqld_exporter 0.15.0 支持 MySQL 5.6 及以上版本。如果使用旧版 MySQL,需确认兼容性。

7. Grafana看板

相关推荐
这个DBA有点耶10 小时前
NULL不是空——数据库里最反直觉的设计,90%新人踩过的坑
数据库·mysql·代码规范
这个DBA有点耶12 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
镜舟科技13 小时前
Databricks 再提 LTAP,AI 时代的数据底座为何重回大一统叙事?
数据库·架构·agent
Databend13 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局
大数据·数据库·agent
ClouGence17 小时前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践
数据库·sql server
先吃饱再说1 天前
存储的进化:从 MySQL 到浏览器缓存,数据到底住在哪?
数据库
Nturmoils1 天前
字段太多看不全,ksql 的展开模式和输出控制怎么用
数据库·后端
Databend2 天前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
这个DBA有点耶2 天前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung2 天前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql