Prometheus 快速监控 MySQL 数据库,超简单!
今天分享一下Prometheus如何监控MySQL数据库。
实验环境:
- 数据库服务器:10.0.0.41
- prometheus服务器:10.0.0.104
默认数据库和prometheus都已部署好!下面演示安装mysql_exporter过程。
一、安装mysqld_exporter
在MySQL数据库服务器上安装mysql_exporter。
1. 创建 MySQL 只读监控用户
在 MySQL 中运行以下命令(换成你自己的密码):
CREATE USER 'exporter'@'%' IDENTIFIED BY '123456';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
FLUSH PRIVILEGES;
验证登录:
mysql -uexporter -p123456
2. 安装 mysqld_exporter
下载并安装:
cd /opt
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-amd64.tar.gz
tar -xvf mysqld_exporter-0.17.2.linux-amd64.tar.gz
cp mysqld_exporter-0.17.2.linux-amd64/mysqld_exporter /usr/local/bin/
chmod +x /usr/local/bin/mysqld_exporter
3.创建配置文件
在 /etc 下创建 .mysqld_exporter.cnf 登录配置:
vi /etc/.mysqld_exporter.cnf
内容如下:
[client]
user=exporter
password=123456
4. 配置 systemd 服务
创建服务文件:
vi /etc/systemd/system/mysqld_exporter.service
内容如下:
[Unit]
Descriptinotallow=Prometheus MySQL Exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/mysqld_exporter--config.my-cnf=/etc/.mysqld_exporter.cnf
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后启动服务:
# 重载系统服务
systemctl daemon-reload
# 启动并设置开机自启动
systemctl enable --now mysqld_exporter
查看状态:
systemctl status mysqld_exporter
5. 防火墙放行(可选)
确保 Prometheus 节点(10.0.0.104)能访问此节点的 9104 端口:
# 关闭防火墙
systemctl disable --now firewalld
# 或者开通9104端口
firewall-cmd --permanent --add-port=9104/tcp
firewall-cmd --reload
二、Prometheus 配置
编辑你的 prometheus.yml:
vi /data/prometheus/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'mysql-exporter'
static_configs:
- targets: ['10.0.0.41:9104']
labels:
mysql: 10.0.0.41数据库
保存并重启 Prometheus:
systemctl restart prometheus
访问 Prometheus 界面:
http://10.0.0.104:9090
进入 Status > Targets,确认 10.0.0.41:9104 状态为 UP。
三、测试指标是否可用
在浏览器或命令行访问:
http://10.0.0.41:9104/metrics
你应该能看到:
说明 exporter 成功运行并能读取数据库状态!
四、使用Grafana可视化展示
导入 MySQL 监控 Dashboard(推荐模板 ID:7362 或 14057):