Prometheus. Monitor MySQL server using Prometheus
At Client - MySQL Server (192.168.199.181)
mysql -u -root -p
CREATE USER 'mysqlexporter'@'localhost' IDENTIFIED BY 'PassWord#1';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqlexporter'@'localhost';
FLUSH PRIVILEGES;
Download mysqld_exporter from the official download page
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz
tar -xvzf mysqld_exporter-0.11.0.linux-amd64.tar.gz
useradd -rs /bin/false mysqld_exporter
Copy mysqld_exporter file to /usr/bin.
mv mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter /usr/bin
chown mysqld_exporter:mysqld_exporter /usr/bin/mysqld_exporter
mkdir -p /etc/mysql_exporter
nano /etc/mysql_exporter/.my.cnf
[client] user=mysqlexporter password=PassWord#1
chown -R mysqld_exporter:mysqld_exporter /etc/mysql_exporter
chmod 600 /etc/mysql_exporter/.my.cnf
nano /etc/systemd/system/mysql_exporter.service
[Unit] Description=MySQL Server fosslinux After=network.target [Service] User=mysqld_exporter Group=mysqld_exporter Type=simple ExecStart=/usr/bin/mysqld_exporter --config.my-cnf=/etc/mysql_exporter/.my.cnf Restart=always [Install] WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable mysql_exporter
systemctl start mysql_exporter
Web
http://<mysql_Server_IP>:9104/metrics
At Prometheus Server
nano /etc/prometheus/prometheus.yml
... - job_name: 'mysql_exporter_fosslinux' scrape_interval: 5s static_configs: - targets: ['192.168.199.181:9104']
systemctl restart prometheus
Web
http://<prometheus-IP>:9090/targets