prometheus+grafana+MySQL监控

发布于:2025-06-25 ⋅ 阅读:(18) ⋅ 点赞:(0)

prometheus+grafana+MySQL监控

环境说明

操作前提:

  1. 先去搭建Docker部署prometheus+grafana+...这篇文章的系统

Docker部署prometheus+grafana+...的参考文章:

  1. 在的节点服务器上搭建MySQL数据库(可以采用直接安装或者docker部署)

搭建MySQL数据库的参考文章:

Linux部署docker参考

docker部署MySQL参考

Linux部署MySQL参考

  1. 本文参考文章:
  1. 说明:

本文的操作均以搭建好的prometheus+grafana+alertmanager+pushgateway+blackbox-exporter系统和搭建好的节点服务器为基础进行操作

系统图示

画板

Grafana图形显示Linux硬件信息

监控远程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相关数据

  1. 没数据可能是需要等一会,让数据传过来。
  2. 有些可能是Prometheus没有采集相关指标。
  3. 还有就是需要安装percona公司插件解决。

网站公告

今日签到

点亮在社区的每一天
去签到