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):