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

相关推荐
changhong19869 分钟前
mybatisPlus打印sql配置
数据库·sql
l1t11 分钟前
用官方安装脚本安装duckdb 1.5并测试加载各种插件
数据库·docker·postgresql·kylin
jinanmichael12 分钟前
Mybatis控制台打印SQL执行信息(执行方法、执行SQL、执行时间)
数据库·sql·mybatis
J2虾虾26 分钟前
给Redis增加密码
数据库·redis·缓存
Mr数据杨27 分钟前
【Dv3Admin】Django通用自定义工作台卡片
数据库·django·sqlite
山峰哥43 分钟前
SQL优化全攻略:从索引策略到Explain实战解析
大数据·数据库·sql·oracle·性能优化·编辑器
JuneXcy1 小时前
第9章 关系模式的规范化设计理论
数据库·mysql
larance1 小时前
NebulaGraph 数据库部署与运维指令清单
linux·服务器·数据库
懈尘1 小时前
【实战分享】智慧养老系统核心模块设计 —— 健康监测与自动紧急呼叫
java·后端·websocket·mysql·springboot·livekit
想不明白的过度思考者1 小时前
【MyBatis 知识点解析】#{} 与 ${} 的区别及 SQL 注入实战演示
java·数据库·spring boot·sql·mybatis