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公司插件解决。