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

导入之后的效果:
Prometheus监控MySQL_第1张图片

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

你可能感兴趣的:(Prometheus,prometheus,mysql)