如何将MySQL Exporter接入到MySQL ER图中?
- 行业动态
- 2025-01-05
- 3805
MySQL Exporter接入Prometheus的详细步骤如下:

前提条件:
1、安装MySQL:确保你已经在系统上安装了MySQL,并且MySQL服务正在运行。
2、安装MySQL客户端工具:MySQL Exporter需要MySQL客户端工具来连接MySQL数据库。
3、创建专用用户:为了安全和性能考虑,创建一个只读用户用于监控。

4、下载并安装mysqld_exporter:从GitHub下载最新版本的mysqld_exporter。
5、配置mysqld_exporter:编辑配置文件以包含MySQL的连接信息。
6、启动mysqld_exporter:通过命令行或systemd服务启动mysqld_exporter。
7、配置Prometheus:在Prometheus的配置文件中添加mysqld_exporter的目标,以便Prometheus可以抓取其暴露的指标。

8、验证配置:检查Prometheus是否能够成功抓取到mysqld_exporter暴露的指标。
操作步骤:
一、安装MySQL客户端工具
sudo yum install mysql -y
二、创建MySQL用户
登录MySQL并创建用户:
CREATE USER 'prometheus'@'%' IDENTIFIED BY 'MySecureP@ssw0rd123'; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT;
三、下载并安装mysqld_exporter
cd /opt wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz tar -xvzf mysqld_exporter-0.15.0.linux-amd64.tar.gz
四、配置mysqld_exporter
编辑/root/.my.cnf
文件,添加以下内容:
[client] user=prometheus password=MySecureP@ssw0rd123
五、启动mysqld_exporter
可以通过命令行直接启动,也可以配置为systemd服务:
nohup ./mysqld_exporter --config.my-cnf=/root/.my.cnf &>
或者创建systemd服务文件:
sudo vi /etc/systemd/system/mysqld_exporter.service
添加以下内容:
[Unit] Description=Prometheus MySQL Exporter After=network.target [Service] User=nobody Group=nogroup ExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf=/root/.my.cnf Restart=always [Install] WantedBy=multi-user.target
然后启用并启动服务:
sudo systemctl daemon-reload sudo systemctl start mysqld_exporter sudo systemctl enable mysqld_exporter
六、配置Prometheus
编辑Prometheus配置文件prometheus.yml
,添加以下内容:
scrape_configs: job_name: 'mysql' static_configs: targets: ['localhost:9104']
七、验证配置
重启Prometheus并检查指标:
sudo systemctl restart prometheus curl http://localhost:9090/metrics | grep mysqld_exporter
如果看到一系列指标数据,说明配置成功并且mysqld_exporter正在运行。
附录:MySQL Exporter采集参数说明(部分)
参数 | 说明 |
auto_increment.columns | 从information_schema采集auto_increment列和最大值 |
binlog_size | 采集所有已注册的binlog文件的当前大小 |
engine_innodb_status | 从SHOW ENGINE INNODB STATUS采集 |
engine_tokudb_status | 从SHOW ENGINE TOKUDB STATUS采集 |
global_status | 从SHOW GLOBAL STATUS采集,默认为true |
global_variables | 从SHOW GLOBAL VARIABLES采集,默认为true |
info_schema.clientstats | 如果使用userstat=1运行,则设置为true以采集客户端统计信息 |
info_schema.innodb_metrics | 从information_schema.innodb_metrics采集指标 |
info_schema.innodb_tablespaces | 从information_schema.innodb_sys_tablespaces采集指标 |
info_schema.innodb_cmp | 从information_schema.innodb_cmp采集InnoDB压缩表指标,默认为true |
info_schema.innodb_cmpmem | 从information_schema.innodb_cmpmem采集InnoDB缓冲池压缩指标(默认为true) |
info_schema.processlist | 从information_schema.processlist采集线程状态计数 |
info_schema.query_response_time | 如果query_response_time_stats为ON,则采集查询响应时间分布(默认为true) |
info_schema.tables | 从information_schema.tables采集指标 |
info_schema.tables.databases | 用于收集表统计信息的数据库列表,逗号分隔,默认是’*’表示所有数据库 |
info_schema.tablestats | 如果使用userstat=1运行,则设置为true以采集表统计信息 |
info_schema.schemastats | 如果使用userstat=1运行,则设置为true以采集架构统计信息 |
info_schema.userstats | 如果使用userstat=1运行,则设置为true以采集用户统计信息 |
perf_schema.eventsstatements | 从performance_schema.events_statements_summary_by_digest采集指标 |
perf_schema.eventsstatements.digest_text_limit | 标准化语句文本的最大长度,默认值为120 |
perf_schema.eventsstatements.limit | 按响应时间限制事件语句摘要的数量,默认值为250 |
perf_schema.eventsstatements.timelimit | 限制’last_seen’事件语句的最大时间,单位为秒,默认值为86400 |
perf_schema.eventsstatementssum | 从performance_schema.events_statements_summary_by_digest汇总采集指标 |
perf_schema.eventswaits | 从performance_schema.events_waits_summary_global_by_event_name采集指标 |
perf_schema.file_events | 从performance_schema.file_summary采集指标 |
常见问题FAQs:
Q1:如何修改mysqld_exporter的监听地址?
A1:可以通过命令行参数--web.listen-address
来指定监听地址,./mysqld_exporter --web.listen-address="0.0.0.0:9104"
,也可以在配置文件中设置web.listen-address
参数。
Q2:如何更改mysqld_exporter的日志级别?
A2:可以通过命令行参数--log.level
来设置日志级别,--log.level=debug
,可选的日志级别包括panic
,fatal
,error
,warn
,info
,debug
。
小编有话说:本文详细介绍了如何将MySQL Exporter接入Prometheus,并通过多个步骤和截图展示了整个过程,希望这篇文章能够帮助你顺利实现MySQL数据库的监控,如果你有任何疑问或建议,欢迎留言讨论。