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

相关推荐
TDengine (老段)2 分钟前
TDengine 时间函数 TODAY() 用户手册
大数据·数据库·物联网·oracle·时序数据库·tdengine·涛思数据
码界奇点11 分钟前
KingbaseES一体化架构与多层防护体系如何保障企业级数据库的持续稳定与弹性扩展
数据库·架构·可用性测试
悟乙己34 分钟前
数据科学家如何更好地展示自己的能力
大数据·数据库·数据科学家
皆过客,揽星河1 小时前
mysql进阶语法(视图)
数据库·sql·mysql·mysql基础语法·mysql进阶语法·视图创建修改删除
tuokuac2 小时前
Redis 的相关文件作用
数据库·redis·缓存
鹧鸪云光伏与储能软件开发3 小时前
投资储能项目能赚多少钱?小程序帮你测算
运维·数据库·小程序·光伏·光伏设计软件·光伏设计
2301_779503764 小时前
MySQL主从同步--主从复制进阶
数据库·mysql
beijingliushao4 小时前
58-正则表达式
数据库·python·mysql·正则表达式
诗句藏于尽头5 小时前
DJANGO后端服务启动报错及解决
数据库·笔记·django
手握风云-5 小时前
MySQL数据库精研之旅第十五期:索引的 “潜规则”(下)
数据库