Prometheus + MySQL Exporter + Grafana 配置指南

Prometheus + MySQL Exporter + Grafana 配置指南

本指南介绍如何使用 Docker Compose 来部署 PrometheusMySQL ExporterGrafana,以实现对 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 部署 PrometheusMySQL ExporterGrafana 服务。

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. 访问监控界面

  1. Prometheus: 访问 http://localhost:9090,你将看到 Prometheus 的监控界面。
  2. Grafana: 访问 http://localhost:3000,默认登录用户为 admin,密码为 admin(可以根据需要修改)。

7. 总结

通过上述步骤,你可以成功配置和启动 PrometheusMySQL ExporterGrafana,实现对 MySQL 数据库的实时监控与数据可视化展示。借助 Grafana 的强大图形化界面,你可以更直观地查看数据库的性能指标与状态。


提示: 根据你的具体环境,可能需要调整 IP 地址或权限配置。


实际操作请结合文档和相关资料。grafana官网

你可能感兴趣的:(prometheus,mysql,grafana,docker,数据分析)