MySQL Exporter 快速入门
Prometheus exporter for MySQL server metrics.
支持版本:
- MySQL >= 5.6.
- MariaDB >= 10.3
注意: Not all collection methods are supported on MySQL/MariaDB < 5.6
https://github.com/prometheus/mysqld_exporter
一、创建用于监视数据库的用户 exporter
mysql -u root -p
mysql> set global validate_password.policy=LOW; # 降低MySQL8 密码规则策略,或者按规则设置密码
mysql> CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'Prometheus' WITH MAX_USER_CONNECTIONS 5;
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
说明:使用max_user_connections参数来限制exporter用户最大连接数,避免监控引起数据库过载,需要注意的是该参数并不是MySQL/Mariadb每个版本都支持;另若不给REPLICATION CLIENT权限,可能会报如下错误。
mysql_exporter 支持MySQL和MariaDB,版本:5.5以及更高版本。
如果MySQL/MariaDB版本低于5.6,可能有部分收集方法不支持。详细请阅读github文档。
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
注意:建议为用户设置最大连接限制,以避免服务器在重负载下因监控抓取而超载。并非所有 MySQL/MariaDB 版本都支持此功能;例如,MariaDB 10.1(随 Ubuntu 18.04 提供)不支持此功能。
二、部署 mysqld_exporter
下载 mysqld_exporter
https://github.com/prometheus/mysqld_exporter/releases
解压并安装:
cd /usr/local/src && tar xvf mysqld_exporter-0.13.0.linux-amd64.tar.gz;
mv mysqld_exporter-0.13.0.linux-amd64 /usr/local/mysqld_exporter;
cd /usr/local/mysqld_exporter;
单导出器模式
配置 使用 ~/.my.cnf :
cat > /root/.my.cnf <<EOF
[client]
user=exporter
password=Prometheus
EOF
使用 ~/.my.cnf 运行:
./mysqld_exporter <flags>
访问监控度量信息地址:
多目标支持
此导出器支持多目标模式。这允许为多个 MySQL 目标运行此导出器的单个实例。
要使用多目标功能,请将 http 请求发送到端点 /probe?target=foo:5432
,其中目标设置为要从中抓取指标的 MySQL 实例的 DSN。
为了避免在 URL 中放入用户名和密码等敏感信息,您可以在文件中有多个配置,并通过添加到请求中config.my-cnf
来匹配它。&auth_module=<section>
多个配置的示例配置文件
[client]
user = foo
password = foo123
[client.servers]
user = bar
password = bar123
使用 systemd方式启动
# cat >/usr/lib/systemd/system/mysqld_exporter.service <<EOF
[Unit]
Description=Prometheus exporter for MySQL server metrics.
Documentation=https://github.com/prometheus/mysqld_exporter
After=network.target
[Service]
Environment=DATA_SOURCE_NAME=exporter:Prometheus@(localhost:3306)/
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/root/.my.cnf --web.listen-address=:9104
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# systemctl enable mysqld_exporter
# systemctl restart mysqld_exporter
设置随机启动:
[root@local ~]# systemctl daemon-reload
[root@local ~]# systemctl disable mysqld_exporter.service
[root@local ~]# systemctl enable mysqld_exporter.service
[root@local ~]# systemctl start mysqld_exporter.service
[root@local ~]# systemctl status mysqld_exporter.service
[root@local ~]# systemctl stop mysqld_exporter.service
[root@local ~]# systemctl restart mysqld_exporter.service
三、在prometheus.yaml中添加 mysqld_exporter 的配置
在普罗米修斯方面,您可以按如下方式设置抓取配置
crape_configs:
- job_name: "mysql" # To get metrics about the mysql exporter’s targets
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["192.168.1.111:9104"]
最后编辑:Jeebiz 更新时间:2024-01-24 21:48