Prometheus 快速监控 MySQL 数据库,超简单!
今天分享一下Prometheus如何监控MySQL数据库。
实验环境:
数据库服务器:10.0.0.41prometheus服务器: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;1.2.3.
验证登录:
复制mysql -uexporter -p1234561.
下载并安装:
复制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_exporter1.2.3.4.5.
在 /etc 下创建 .mysqld_exporter.cnf 登录配置:
复制vi /etc/.mysqld_exporter.cnf1.
内容如下:
复制[client]
user=exporter
password=1234561.2.3.
创建服务文件:
复制vi /etc/systemd/system/mysqld_exporter.service1.
内容如下:
复制[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.target1.2.3.4.5.6.7.8.9.10.11.
然后启动服务:
复制# 重载系统服务
systemctl daemon-reload
# 启动并设置开机自启动
systemctl enable --now mysqld_exporter1.2.3.4.5.
查看状态:
复制systemctl status mysqld_exporter1.
确保 Prometheus 节点(10.0.0.104)能访问此节点的 9104 端口:
复制# 关闭防火墙
systemctl disable --now firewalld
# 或者开通9104端口
firewall-cmd --permanent --add-port=9104/tcp
firewall-cmd --reload1.2.3.4.5.6.
二、Prometheus 配置
编辑你的 prometheus.yml:
复制vi /data/prometheus/prometheus.yml1.
复制global:
scrape_interval: 15s
scrape_configs:
- job_name: mysql-exporter
static_configs:
- targets: [10.0.0.41:9104]
labels:
mysql: 10.0.0.41数据库1.2.3.4.5.6.7.8.9.
保存并重启 Prometheus:
复制systemctl restart prometheus1.
访问 Prometheus 界面:
复制http://10.0.0.104:90901.
进入 Status > Targets,确认 10.0.0.41:9104 状态为 UP。
三、测试指标是否可用
在浏览器或命令行访问:
复制http://10.0.0.41:9104/metrics1.
你应该能看到:
说明 exporter 成功运行并能读取数据库状态!
四、使用Grafana可视化展示
导入 MySQL 监控 Dashboard(推荐模板 ID:7362 或 14057):
阅读剩余
THE END