上一篇 中搭建好了 Prometheus Server,如何使用 Prometheus 来完成就监控的告警是本文来学习的。同样也是清晰明白监控流程的一个过程。
要监控一套服务,是要获取到服务的指标数据,一种方式是自己写接口,遵循 Prom 的数据模型进行指标的收集,另一种方式是使用社区维护的 exporter 获取指标数据。
想要看到炫酷美观的监控界面,可以搭配 Grafana 来做 Prometheus 的监控展示,是一个开源的图形可视化系统。
部署 Grafana
这里使用官方二进制的部署方式,
wget https://dl.grafana.com/oss/release/grafana-8.5.5.linux-amd64.tar.gz
mkdir -p /opt/monitoring/grafana
tar -zxvf grafana-8.5.5.linux-amd64.tar.gz -C /opt/monitoring/grafana --strip-components 1
cd /opt/monitoring/grafana
./bin/grafana-server
是启动命令,conf
目录下是启动配置文件,和 Prom 一样使用 systemd 来管理服务的启动
$ cat > /usr/lib/systemd/system/grafana.service << EOF
[Unit]
Descriptioin=grafana
[Service]
ExecStart=/opt/monitoring/grafana/bin/grafana-server \
-homepath=/opt/monitoring/grafana
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
$ systemctl enable --now grafana
访问 http://ip:3000
即可,默认用户密码 admin/admin
,第一次登录要求修改密码的,登录后如下所示
添加数据源
Grafana 只是用来展示数据的,数据的来源就是 Prom 或者其他的存放指标的数据库
如图是添加数据源的位置
这里用 Prom ,选择 Prom 即可,只需要配置好 Prom 的 URL 地址保存即可
Node_exporter
node_exporter 项目地址:https://github.com/prometheus/node_exporter
我的环境中是一套 k8s 集群,单主两从。
先做一个传统的节点监控,使用 node_exporter 来做 3 台主机的监控
mkdir /opt/monitoring/node_exporter -p
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz -C /opt/monitoring/node_exporter --strip-components 1
node_exporter
就是一个命令,执行启动就好了,默认端口 9100
使用 systemd 管理
$ cat > /usr/lib/systemd/system/node_exporter.service << EOF
[Unit]
Descriptioin=node_exporter
[Service]
ExecStart=/opt/monitoring/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
$ systemctl enable --now node_exporter
访问 http://ip:9100/metrics
就可以获取到主机的监控指标
集成 node 和 Prom
将 node_exporter 暴露的指标保存到 Prometheus 中
$ vim /opt/monitoring/prometheus/prometheus.yml
# 在scrape_configs下添加
- job_name: "k8s-node"
static_configs:
- targets: ["192.168.1.11:9100", "192.168.1.12:9100", "192.168.1.13:9100"]
检查配置是否正确
$ /opt/monitoring/prometheus/promtool check config /opt/monitoring/prometheus/prometheus.yml
Checking /opt/monitoring/prometheus/prometheus.yml
SUCCESS: /opt/monitoring/prometheus/prometheus.yml is valid prometheus config file syntax
加载配置文件
systemctl reload prometheus.service
现在访问 http://ip:9090/targets
即可看到被监控的 node_exporter
Grafana 展示数据
只需要在官方找一个合适的仪表盘即可适配 node_exporter 的数据展示,官方仪表盘地址:https://grafana.com/grafana/dashboards/
这里使用 ID 为 9276 的仪表盘,也可以在官方的列表中,找一些其他更符合使用的大盘。