Prometheus 监控之 MySQL
文章发布较早,内容可能过时,阅读注意甄别。
prometheus 监控 MySQL 需要用到 mysql_exporter。
mysql_exporter 项目地址:https://github.com/prometheus/mysqld_exporter
# 1、安装部署
我这里的 mysql 部署在 192.168.111.10 之上,而 prometheus 服务端是在 192.168.111.3 上,这个时候,监控的工具 mysql_exporter 可以部署在这两台主机任一一台上,只不过需要注意的是,在配置 prometheus.yaml 添加监控目标的时候,注意填写对应 ip 即可。
我这里为了方便则部署在了 MySQL Server 之上。
$ cd /usr/local/src
$ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz
$ tar xf mysqld_exporter-0.10.0.linux-amd64.tar.gz
$ mv mysqld_exporter-0.10.0.linux-amd64 /usr/local/mysqld_exporter
1
2
3
4
2
3
4
# 2,授权连接。
想要获取监控数据,需要授权程序能够连接到 MySQL。
GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'exporter'@'localhost' identified by '123456';
GRANT SELECT ON performance_schema.* TO 'exporter'@'localhost';
flush privileges;
1
2
3
2
3
注意
:这里只授权了本地登陆,说明这个授权适用于mysql_exporter
监控工具部署在MySQL Server上
的情况,如果是部署在Prometheus Server上
,则需要授权远程登陆
。
# 3,启动服务。
创建配置信息文件。
cd /usr/local/mysqld_exporter
vim .my.cnf
[client]
user=exporter
password=123456
1
2
3
4
5
2
3
4
5
然后启动服务时加载配置文件即可。
# 1,方式一,命令行式启动。
./mysqld_exporter -config.my-cnf=".my.cnf" &
ss -tln |grep 9104
1
2
2
# 2,方式二,使用 systemd 管理。
添加启动配置:
vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=mysqld_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter -config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
Restart=on-failure
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
注意:启动加载配置/usr/local/mysqld_exporter/.my.cnf
不能再加单引号或者双引号,否则系统会附带识别,从而报配置文件不存在。
加载配置并启动。
$ systemctl daemon-reload
$ systemctl start mysqld_exporter
$ systemctl status mysqld_exporter
$ systemctl enable mysqld_exporter
$ ss -tln | grep 9104
1
2
3
4
5
2
3
4
5
# 4,配置 prometheus.yml 添加监控目标
$ vim /usr/local/prometheus/prometheus.yml
- job_name: 'mysql'
static_configs:
- targets: ['192.168.111.10:9104']
labels:
instance: db1
1
2
3
4
5
6
2
3
4
5
6
重启服务。
$ systemctl restart prometheus
1
或者通过命令热加载:
curl -XPOST localhost:9090/-/reload
1
# 5,配置 Grafana 的模板
mysql_exporter 在 Grafana 上为我们提供好了 Dashboard 模板:https://grafana.com/api/dashboards/9623/revisions/4/download
下载后在 Grafana 中导入 json 模板就可以看到官方这样的示例截图啦:
上次更新: 2024/11/19, 23:11:42