使用Prometheus + mysqld_exporter 监控MySQL

组件下载

包括prometheus、
alertmanager(用于告警)、
mysqld_exporter(用于采集mysql数据)、
grafana(用于展示)

其中prometheus、alertmanager、mysqld_exporter都可通过官网地址下载:

https://prometheus.io/download/

或者github下载:

https://github.com/prometheus/prometheus/
https://github.com/prometheus/alertmanager/
https://github.com/prometheus/mysqld_exporter/

grafana下载地址:

https://grafana.com/grafana/download

本次操作系统为Ubuntu22.04。

本次使用的软件包如下:
prometheus-2.53.3.linux-amd64.tar.gz
alertmanager-0.28.0.linux-amd64.tar.gz
mysqld_exporter-0.16.0.linux-amd64.tar.gz
grafana-enterprise_11.5.1_amd64.deb

安装Prometheus

在10.0.19.105上安装prometheus。

创建目录

mkdir -pv /prometheus/{soft,data,logs}

将软件包上传至/prometheus/soft,然后解压

tar xf prometheus-2.53.3.linux-amd64.tar.gz

做软链接或直接重命名:

ln -sv prometheus-2.53.3.linux-amd64 prometheus
# 或
mv prometheus-2.53.3.linux-amd64 prometheus

前台启动prometheus

cd prometheus
./prometheus

检查端口9090:

apt install -y net-tools
netstat -tnulp

浏览器访问:ip:9090查看

使用Prometheus + mysqld_exporter 监控MySQL

配置systemctl启动文件:

vim /etc/systemd/system/prometheus-server.service

添加如下内容:

[Unit]
Description=Prometheus Server test_105
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target

[Service]
Restart=on-failure
ExecStart=/prometheus/soft/prometheus/prometheus 
    --config.file=/prometheus/soft/prometheus/prometheus.yml 
    --web.enable-lifecycle
ExecReload=/bin/kill -HUP $MAINPID
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

其中启动程序和配置文件路径要与实际匹配。

重新加载systemctl:

systemctl daemon-reload 
systemctl enable --now prometheus-server.service 

重新加载prometheus

systemctl reload prometheus-server.service

如果报cannot reload,则使用下面的命令

curl -X POST http://10.0.19.105:9090/-/reload

查看启动后是否生成data/数据目录

ll /prometheus/soft/prometheus/data

我们关闭前台进程后,可以使用systemctl来启停prometheus。

安装mysqld_exporter

将包上传至被监控的mysql服务器10.0.19.127的/app/下,
然后解压:

tar xf mysqld_exporter-0.16.0.linux-amd64.tar.gz
mv mysqld_exporter-0.16.0.linux-amd64 mysqld_exporter

在MySQL创建mysqld_exporter使用的账号,
为方便测试,我这里使用的账号exporter密码是123456,然后授权:

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO  exporter @ %   with grant option;

创建mysqld_exporter配置文件:

vim /app/mysqld_exporter/my.cnf 

写入如下内容:

[client]
user=exporter
password=123456
host=10.0.19.127
prot=3306

创建mysqld_exporter的系统启动文件:

vim /etc/systemd/system/mysqld_exporter.service

写入如下内容:

[Unit]
Description=prometheus mysqld_exporter Daemon
Documentation=https://github.com/prometheus/mysqld_exporter
Requires=network.target
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/app/mysqld_exporter
ExecStart=/app/mysqld_exporter/mysqld_exporter --config.my-cnf=/app/mysqld_exporter/my.cnf
TimeoutSec=30
Restart=always

[Install]
WantedBy=multi-user.target

注意修改为实际目录。

启动mysqld_exporter的服务:

systemctl start mysqld_exporter

检查9104端口:

netstat -tnulp

浏览器访问ip:9104/metrics界面可以看到如下界面,说明mysqld_exporter采集数据成功

使用Prometheus + mysqld_exporter 监控MySQL

prometheus采集mysqld_exporter数据

修改prometheus的配置文件,在安装prometheus的目录下找到prometheus.yml的配置文件并编辑:

vim /prometheus/soft/prometheus/prometheus.yml

写入如下内容:

- job_name: "mysqld_exporter"
    static_configs:
      - targets: ["10.0.19.127:9104"]

重启prometheus。
之后通过浏览器地址访问ip:9090,在Status->Targets 下 看到 mysqld_exporter启动的记录

使用Prometheus + mysqld_exporter 监控MySQL

安装Grafana

官网下载后安装即可,网页访问3000端口,默认用户名密码都是admin。
然后按以往配置的方法配置即可,模板可从官网下载。

配置告警

解压后进入目录:

tar xf alertmanager-0.28.0.linux-amd64.tar.gz
mv alertmanager-0.28.0.linux-amd64 alertmanager
cd alertmanager

配置参考:

https://blog.csdn.net/2302_79199605/article/details/136494677?spm=1001.2014.3001.5502

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...