上一篇 中搭建好了 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_login

添加数据源

Grafana 只是用来展示数据的,数据的来源就是 Prom 或者其他的存放指标的数据库

如图是添加数据源的位置

grafana_datasource

这里用 Prom ,选择 Prom 即可,只需要配置好 Prom 的 URL 地址保存即可

grafana_promurl

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

prom_targets

Grafana 展示数据

只需要在官方找一个合适的仪表盘即可适配 node_exporter 的数据展示,官方仪表盘地址:https://grafana.com/grafana/dashboards/

grafana_importds

这里使用 ID 为 9276 的仪表盘,也可以在官方的列表中,找一些其他更符合使用的大盘。

grafana_ds

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0