Prometheus + MySQL Exporter + Grafana 配置指南
本指南介绍如何使用 Docker Compose 来部署 Prometheus、MySQL Exporter 和 Grafana,以实现对 MySQL 数据库的监控与可视化展示。
1. 创建 MySQL 用户并授予权限
首先,登录 MySQL 数据库,使用 root 用户创建一个新的 exporter 用户,并赋予其必要的权限。该用户将用于 MySQL Exporter 连接和监控数据库。
执行以下 SQL 语句:
CREATE USER 'exporter'@'%' IDENTIFIED BY '123456';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
FLUSH PRIVILEGES;
'exporter'@'%'表示允许从任意主机进行连接。你也可以将'%'替换为特定的公网 IP 地址。- 授予用户权限后,执行
FLUSH PRIVILEGES;以使更改生效。
2. Docker Compose 配置
接下来,使用 Docker Compose 部署 Prometheus、MySQL Exporter 和 Grafana 服务。
docker-compose.yml 配置文件
version: '3'
services:
# Prometheus,收集和存储时间序列数据
prometheus:
container_name: prometheus
image: prom/prometheus
volumes:
- ./mount/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090" # 将宿主机的 9090 端口映射到容器的 9090 端口
# MySQL Exporter,监控 MySQL 数据库
mysql_exporter:
container_name: mysqld-exporter # 设置容器名称
image: prom/mysqld-exporter # 使用的镜像
restart: always # 容器始终自动重启
ports:
- "9104:9104" # 将宿主机的 9104 端口映射到容器的 9104 端口
volumes:
- ./mount/mysql_exporter/my.cnf:/etc/mysql/my.cnf:ro # 挂载配置文件为只读
command: --config.my-cnf=/etc/mysql/my.cnf # 指定配置文件路径
# Grafana,监控数据的可视化展示工具
grafana:
container_name: grafana # 设置容器名称
image: grafana/grafana
ports:
- "3000:3000" # 将宿主机的 3000 端口映射到容器的 3000 端口
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin # 设置 Grafana 管理员密码
volumes:
- ./mount/grafana/grafana-storage:/var/lib/grafana # 持久化存储
volumes:
grafana-storage:
3. Prometheus 配置文件
Prometheus 的 prometheus.yml 文件定义了数据抓取的频率和需要监控的目标。放置在 ./mount/prometheus/ 目录下。
global:
scrape_interval: 15s # 抓取数据的时间间隔
evaluation_interval: 15s # 评估规则的时间间隔
scrape_configs:
# 监控 MySQL Exporter
- job_name: 'mysql_exporter' # 作业名称
static_configs:
- targets: ['mysql_exporter:9104'] # MySQL Exporter 的地址
# Prometheus 自身的指标(可选)
- job_name: 'prometheus' # Prometheus 自己的监控
static_configs:
- targets: ['localhost:9090'] # Prometheus 自己的地址
4. MySQL Exporter 配置文件
将 MySQL Exporter 的连接信息配置在 my.cnf 文件中,放置在 ./mount/mysql_exporter/ 目录下。该文件包含 MySQL Exporter 连接到数据库的用户凭据。
[client]
host=193.100.4.226
user=exporter
password=123456
- host: MySQL 数据库的 IP 地址。
- user: 连接数据库的用户 (
exporter)。 - password: 用户的密码 (
123456)。
5. 启动容器
在 Docker Compose 文件和配置文件创建完成后,运行以下命令启动容器:
docker-compose up -d
-d参数表示以后台模式启动所有容器。
6. 访问监控界面
- Prometheus: 访问 http://localhost:9090 你将看到 Prometheus 的监控界面。
- Grafana: 访问 http://localhost:3000 默认登录用户为
admin,密码为admin(可以根据需要修改)。
7. 总结
通过上述步骤,你可以成功配置和启动 Prometheus、MySQL Exporter 和 Grafana,实现对 MySQL 数据库的实时监控与数据可视化展示。借助 Grafana 的强大图形化界面,你可以更直观地查看数据库的性能指标与状态。
提示: 根据你的具体环境,可能需要调整 IP 地址或权限配置。
实际操作请结合文档和相关资料。grafana官网