MySQL 监控部署
M4版本边界(2026-10-17): 本页是旧mysqld_exporter/Prometheus/Grafana部署记录,镜像未锁版本,示例账号权限和认证模块需按当前exporter版本重新配置;不得直接把root示例当最小权限方案。本批未等价重建监控栈,现行数据库诊断见运维恢复。
操作步骤如下
- mysql 设置
sql
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';- mysqld_exporter
- prometheus
- grafana
mysqld_exporter 启动
在机器对应目录下创建目录和文件
mkdir -p /home/save/mysqld_exporter/conf
touch config.my-cnf
toml[client] host=mysql-address port=3306 # socket=/var/run/mysqld/mysqld.sock user=root password=password-you [client.server1] user = bar password = bar123
docker-compose
yamlversion: "3" services: mysqld-exporter: container_name: mysqld-exporter image: prom/mysqld-exporter hostname: mysqld_exporter ports: - 9104:9104 volumes: - ${PWD}/conf/config.my-cnf:/config.my-cnf command: - "--config.my-cnf=/config.my-cnf" - "--collect.binlog_size" - "--collect.info_schema.replica_host" restart: always启动
- docker-compose up -d
- docker-compose ps
- docker-compose logs
prometheus
从 /home/save/mysqld_exporter 目录启动 Compose;宿主机 conf/config.my-cnf 挂载为容器的 /config.my-cnf。下方 auth_module 必须与文件中的 [client.server1] 同名;其中账号占位符需替换为目标 MySQL 已授权的账号,不能把 root 示例当作最小权限设置。
yaml
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["prometheus:9991"]
- job_name: "mysql"
params:
auth_module: [client.server1]
static_configs:
- targets:
- mysql-address:3306
# - unix:///run/mysqld/mysqld.sock 本机也可以使用sock 文件
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: mysql-exporter-server:9104grafana
- 在面板 /dashboard/import
- 创建三种方法 GrafanaLabs Address
- Upload
- import id
- import json
最后结果
- GitHub 推荐 (含环境或账号信息的历史截图已移除。)
继续阅读
- 知识专题
- 知识专题
- 知识专题