【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看板

相关推荐
大数据张老师6 分钟前
对比关系型数据库与NoSQL数据库
数据库·nosql
vvilkim15 分钟前
MongoDB数据建模完全指南:从理论到实践
数据库·mongodb
马剑威(威哥爱编程)15 分钟前
HarmonyOS NEXT 使用 relationalStore 实现数据库操作
数据库·华为·harmonyos·arkts·arkui
pianmian11 小时前
3dczml时间动态图型场景
前端·javascript·数据库
患得患失9492 小时前
【Django DRF】一篇文章总结Django DRF框架
数据库·django·sqlite
伊织code2 小时前
macOS 安装 PostgreSQL
数据库·macos·postgresql·gui·安装·客户端·psql
进击的CJR3 小时前
MySQL 8.0 OCP 英文题库解析(八)
数据库·mysql·开闭原则
旋风菠萝3 小时前
八股--SSM(2)
java·开发语言·数据库·八股·八股文·复习
petunsecn4 小时前
MySql添加非空字段时的“伪空”问题
数据库·mysql
小传blog4 小时前
解决PLSQL工具连接Oracle后无法使用ODBC导入器问题
数据库·oracle