组件下载
包括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查看
配置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数据
修改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启动的记录
安装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