用Prometheus全面监控MySQL服务:一篇文章搞定

简介

在现代应用中,MySQL数据库的性能和稳定性对业务至关重要。有效的监控可以帮助预防问题并优化性能。Prometheus作为一款强大的开源监控系统,结合Grafana的可视化能力,可以提供全面的MySQL监控方案。

设置Prometheus
安装Prometheus

使用Docker安装Prometheus:

docker run -d --name=prometheus -p 9090:9090 prom/prometheus

此命令将Prometheus运行在本地的9090端口。

基本配置

创建一个Prometheus配置文件prometheus.yml:

global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

上面是官网提供的docker命令安装方案,官方直达链接,笔者是在Windows的docker中安装运行演示的,下面简单记录一下Windows安装的步骤细节

在指定路径下添加一下普罗米修斯的配置文件

在这里插入图片描述

文件的详细信息展示

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["127.0.0.1:9090"]
  - job_name: "mysql"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
	# 这里做一个说明就是后续的两个服务本地都是直接通过docker的方式运行在容器中,由于docker容器网络配置的原因,即使在安装部署在同一个网络空间之下,同时给网路空间起不同的名称作为区分也不能实现浏览器的ip访问,因此下面这里使用网络ip的方式进行标记
    static_configs:
      - targets: ["192.168.28.3:9104"]
执行Windows的docker命令运行服务

这里需要注意一下就是地址配置的问题,需要配置成自己的文件地址

docker run -d -p 9090:9090 --network my-mysql-network -v "D:\Program_Files\prometheus\prometheus.yml:/etc/prometheus/prometheus.yml" prom/prometheus --config.file=/etc/prometheus/prometheus.yml

在这里插入图片描述
在这里插入图片描述

访问网址得到的页面展示信息
在这里插入图片描述

安装MySQL Exporter
MySQL Exporter是什么

MySQL Exporter是一个用于从MySQL数据库中收集指标并暴露给Prometheus的工具。

安装步骤

使用Docker安装MySQL Exporter:

docker run -d -p 9104:9104 --name=mysql_exporter -e DATA_SOURCE_NAME="user:password@(hostname:3306)/" prom/mysqld-exporter

替换userpassword为MySQL数据库的用户名和密码,hostname为MySQL服务器地址。

配置MySQL Exporter
创建MySQL用户

在MySQL中创建一个专用用户:

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'password';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'exporter'@'localhost';
将MySQL Exporter与Prometheus集成

prometheus.yml中添加MySQL Exporter:

scrape_configs:
  - job_name: 'mysql'
    static_configs:
      - targets: ['localhost:9104']
Prometheus配置
添加MySQL Exporter

在Prometheus配置文件prometheus.yml中增加MySQL Exporter的配置,确保Prometheus能够抓取MySQL Exporter暴露的指标。

抓取指标

启动Prometheus后,可以在http://localhost:9090上访问Prometheus UI,检查抓取的MySQL指标。

Windows安装的步骤演示 官网直达链接

添加配置信息

在这里插入图片描述

[client]
user = root
password = shuyixiao666
host = 192.168.28.3
port = 3306
执行命令运行MySQL Exporter服务
docker run -d -p 9104:9104 --network my-mysql-network -v "D:\Program_Files\mysqld_exporter-0.15.1.windows-amd64\my.cnf:/etc/my.cnf" prom/mysqld-exporter --config.my-cnf=/etc/my.cnf

在这里插入图片描述
在这里插入图片描述

使用Grafana可视化指标
安装Grafana

使用Docker安装Grafana:

docker run -d -p 3000:3000 --name=grafana grafana/grafana
导入仪表盘

在Grafana中添加Prometheus数据源,然后从Grafana官网导入MySQL监控仪表盘(ID:7362)。

Windows安装的步骤演示 官网直达链接

指定docker指令启动服务
docker run -d -p 3000:3000 --network my-mysql-network --name=grafana grafana/grafana-enterprise

初始化的账号和密码都是admin,首次登录之后会提示你修改你的密码
在这里插入图片描述

仪表板的简单配置

添加一个普罗米修斯的应用

在这里插入图片描述

配置之前的MySQL Exporter服务信息

在这里插入图片描述

保存之后配置仪表板信息

在这里插入图片描述
仪表板链接选择直达地址
在这里选择你需要的或者你喜欢的仪表板信息,需要注意的是这里要选择普罗米修斯的数据源,不然后面的数据库选择会对应不上
在这里插入图片描述
在这里插入图片描述

最后成品的展示

在这里插入图片描述

注意事项

  1. 上述执行的命令当初我尝试是在同一个网络组之下运行,如果你也想尝试一定要先建立好网络组不然会报错,不知道如何配置的可以看我另外一篇文章 直达链接

最后说一句(求关注,别白嫖我)
如果这篇文章对您有所帮助,或者有所启发的话,帮忙扫描下发二维码关注一下,您的支持是我坚持写作最大的动力。
求一键三连:点赞、转发、在看。
关注公众号:【舒一笑的架构笔记】,在公众号中回复:面试、代码神器、开发手册、时间管理有超赞的粉丝福利,另外回复:加群,可以跟很多BAT大厂的前辈交流和学习。

### 配置 Prometheus 监控 MySQL 性能指标 为了实现通过 PrometheusMySQL 的性能指标进行监控,需完成几个主要部分的设置: #### 创建具有适当权限的MySQL用户 在 MySQL 中创建一个专门用于监控的用户,并赋予其必要的权限。这可以通过执行 SQL 命令来达成: ```sql GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'prom'@'localhost' IDENTIFIED BY 'abc123'; ``` 此命令授予 `prom` 用户访问特定状态变量的权利,这对于收集诸如连接失败次数 (`mysql_global_status_aborted_clients`) 和主从复制的状态 (如 `mysql_slave_status_slave_sql_running`) 等信息至关重要[^5]。 #### 安装 mysqld_exporter mysqld_exporter 是一款由 Prometheus 社区开发的数据采集器,它可以从 MySQL 数据库提取各种统计信息并将其暴露给 Prometheus 抓取接口。安装过程通常涉及下载二进制文件、解压以及启动服务端口监听。 #### 修改Prometheus配置文件 编辑 Prometheus 的配置文件(通常是 `prometheus.yml`),添加一个新的 job 来指定抓取目标和服务发现机制。例如,在 jobs 列表中加入如下条目: ```yaml scrape_configs: - job_name: 'mysql' static_configs: - targets: ['localhost:9104'] labels: instance: mysql-server ``` 这里假设 mysqld_exporter 正常运行于本地主机上的默认端口 9104 上;如果实际情况不同,则应相应调整 IP 地址和端口号。 #### 启动或重启Prometheus使更改生效 当完成了上述所有准备工作之后,记得保存所做的任何变更到配置文件里去,并且重新加载/重启 Prometheus 进程以应用新的设定。可以采用以下两种方式之一来进行操作: - 使用 systemd 单元管理工具: ```bash systemctl restart prometheus systemctl status prometheus ``` - 或者直接调用可执行程序的方式: ```bash cd /path/to/prometheus/ nohup ./prometheus & ``` 这样就可以让 Prometheus 开始定期轮询来自 mysqld_exporter 提供的目标数据源了[^3][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

舒一笑不秃头

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值