prometheus+grafana+MySQL監控
環境說明
操作前提:
- 先去搭建
Docker部署prometheus+grafana+...
這篇文章的系統
Docker部署prometheus+grafana+...
的參考文章:
- Docker部署prometheus+grafana+…-CSDN博客
- 在的節點服務器上搭建MySQL數據庫(可以采用直接安裝或者docker部署)
搭建MySQL數據庫的參考文章:
Linux部署docker參考
- 02-Docker安裝_docker安裝包下載-CSDN博客
docker部署MySQL參考
- 09-Docker安裝MySQL_docker 安裝mysql-CSDN博客
Linux部署MySQL參考
- 05-Linux部署MySQL_linux 安裝mysql 5.7-CSDN博客
- 本文參考文章:
- Prometheus+Grafana監控MySQL - easydba - 博客園
- 說明:
本文的操作均以搭建好的
prometheus+grafana+alertmanager+pushgateway+blackbox-exporter
系統和搭建好的節點服務器為基礎進行操作
系統圖示
Grafana圖形顯示Linux硬件信息
- Grafana官方提供模板地址:https://grafana.com/grafana/dashboards
- 本次要導入的模板:https://grafana.com/grafana/dashboards/11074
監控遠程Linux中的MySQL
在被監控端上安裝mysqld_exporter
組件
下載地址: https://prometheus.io/download/
注意:我這里下載的是當前最新版本mysqld_exporter-0.17.2.linux-amd64.tar.gz
# 解壓安裝包
tar -xf mysqld_exporter-0.17.2.linux-amd64.tar.gz -C /opt# 創建鏈接目錄
cd /opt
ln -s mysqld_exporter-0.17.2.linux-amd64 mysqld_exporter[root@bogon docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a7841073d52 mysql:8.0.28 "docker-entrypoint.s…" 7 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp tender_nightingale
[root@bogon docker]# docker exec -it 1a7841073d52 /bin/bash
root@1a7841073d52:/# mysql -uroot -p# 在MySQL服務器上創建監控用戶 5.X版本
mysql> grant select,replication client, process on *.* to 'mysql_monitor'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
# 8.X版本
mysql> CREATE USER 'mysql_monitor'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)mysql> GRANT SELECT, REPLICATION CLIENT, PROCESS ON *.* TO 'mysql_monitor'@'%';
Query OK, 0 rows affected, 1 warning (0.00 sec)
# 刷新權限
mysql>
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)mysql> exit
Bye# 將上面創建的mysql用戶信息寫入mysqld_exporter配置文件(新創建一個)
[root@mysql01 ~]# vim /opt/mysqld_exporter/.my.cnf
[client]
user=mysql_monitor
password=123456# 啟動mysqld_exporter
nohup /opt/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter/.my.cnf &# 確認是否正常啟動(默認端口9104)
[root@mysql01 ~]# netstat -lnptu | grep 9104
tcp6 0 0 :::9104 :::* LISTEN 32688/mysqld_export
(注意:一定要關防火墻或者放行端口
)
配置prometheus.yml
回到prometheus服務器的配置文件里添加被監控機器的配置段
注意這里找到你自己的prometheus.yml
vim /home/project-root/config/prometheus.yml
寫入你自己的被監控的主機名,ip:端口
示例
- job_name: 'node-01-MySQL'static_configs:- targets: ['192.168.221.129:9104']
有多少臺被監控主機就照格式添加在后面,我這里監控了1臺主機作為測試
重啟服務
由于我這里是用docker構建的普羅米修斯,所以要去重新執行docker-compose.yml
文件
docker compose down
docker compose up -d
查看是否連接成功
回到web管理界面,可以看到多了1臺監控主機
配置grafana
Grafana導入監控模板
11074
選擇 Dashboards – Import – ID 輸入11074,點擊Load
選擇數據源prometheus
查看監控效果
grafana展示MySQL相關數據
- 沒數據可能是需要等一會,讓數據傳過來。
- 有些可能是Prometheus沒有采集相關指標。
- 還有就是需要安裝percona公司插件解決。