Prometheus監控MySQL

Prometheus也可以用mysqld_exporter來監控MySQL。

一、環境

服務器IP 系統 組件
192.168.0.181 CentOS7.6 Prometheus Server 2.18.1
192.168.0.183 CentOS7.6 mysqld_exporter-0.12.1

下載地址爲:https://prometheus.io/download/,我這裏下載的都是最新版本的。

二、安裝node_exporter

在安裝mysql的主機上,安裝上node_exporter是必要的。一方面是因爲這個主機也是需要監控的,另一方面,grafana的dashboard模板中也是直接或者間接的用到主機的內存、CPU等監控數值來繪圖。

具體的node_exporter的安裝這裏就不說了,比較簡單,參考前面的文章即可。

三、安裝mysqld_exporter

其實mysqld_exporter部署在哪臺服務器上都是可以的,因爲之後會在mysqld_exporter的配置文件中連接所要監控的mysql。

我這裏直接將mysqld_exporter部署在MySQL Server服務器(192.168.0.183)上。

$ cd /usr/local/src
$ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
$ tar -zxf mysqld_exporter-0.12.1.linux-amd64.tar.gz
$ mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter

四、授權

mysqld_exporter需要連接上MySQL之後,才能獲取到監控數據。

mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%' identified by 'Abc@123456';
mysql> flush privileges;

因爲mysqld_exporter部署在MySQL Server服務器(192.168.0.183)上,所以這裏只授權了本地權限,如果是部署在別的服務器上,則需要授予遠程權限

五、啓動服務

1、創建配置文件

cd /usr/local/mysqld_exporter

vim .my.cnf

[client]
host=localhost
user=exporter
password=Abc@123456

啓動的時候,指定這個配置文件即可。

2、創建啓動文件(使用systemd管理)

cat > /usr/lib/systemd/system/mysqld_exporter.service <<EOF
[Unit]
Description=mysqld_exporter
After=network.target
 
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF

這裏我也是用prometheus用戶啓動mysqld_exporter,所以要創建prometheus用戶並授權。

$ groupadd prometheus
$ useradd -g prometheus -m -d /var/lib/prometheus -s /sbin/nologin prometheus
$ chown -R prometheus:prometheus /usr/local/mysqld_exporter

啓動mysqld_exporter:

$ systemctl daemon-reload
$ systemctl start mysqld_exporter
$ systemctl status mysqld_exporter
$ systemctl enable mysqld_exporter
$ ss -tln | grep 9104

六、添加監控目標

需要把mysqld_exporter和安裝mysql的主機的node_exporter的監控目標都添加到prometheus server中。

vim /usr/local/prometheus/prometheus.yml 

  - job_name: 'mysql'
    static_configs:
      - targets: ['192.168.0.183:9104']
        labels:
          instance: db-01

  - job_name: 'mysql-node'
    static_configs:
      - targets: ['192.168.0.183:9100']
        labels:
          instance: db-01

注意:這裏instance需要設置成相同的值,因爲grafana中有些繪圖會根據instance來繪製。

重啓Prometheus server

$ systemctl restart prometheus
或者熱加載
$ curl  -X POST localhost:9090/-/reload

七、添加Grafana模板

在Grafana的官方網站上我們可以找到比較好用的MySQL的Dashboard模板,直接用模板地址導入即可。

模板地址爲:https://grafana.com/grafana/dashboards/7362

導入之後的效果:
在這裏插入圖片描述

參考文章:
http://www.eryajf.net/2499.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章