[03] 尝试在非K8s环境中引入Prometheus … 使用NodeExporter试一试

本シリーズのトップページhttps://qiita.com/items/dfb16ffcbbe7745e765e

概述

鉴于工作场所的 “非K8s环境”,尽管有点不寻常,但我们决定引入Prometheus,并进行调查和引入评估。

此外,据说在工作场所的“非K8s环境”中已经引入了“Zabbix 4.0”,但希望为未来做好准备,想尝试使用Prometheus。

在之前建立的环境中,引入NodeExporter来进行以下监视。

若连续5分钟内的CPU使用率超过80%,则视为警报处理。

另外,在Zabbix用户角度上加上一些评论。

以下是中文的本机语言版陈述:

环境

主机(物理个人电脑)

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
$ hostname -I
192.168.10.47

建立环境

項目値備考Prometheusversion 2.30.3他者の環境では起動エラーになるといったトラブルを避けたいので、バージョン指定しているGrafana8.2.0-ubuntu同上NodeExporter物理ホスト上で稼働させる
image.png

步驟

1. 文件结构

从之前的内容继续。
目前文件的结构如下。

$ tree . --charset=C --dirsfirst
.
|-- PV
|   |-- etc
|   |   `-- prometheus
|   |       `-- prometheus.yml
|   `-- var
|       `-- lib
|           `-- grafana
|               |-- csv [error opening dir]
|               |-- plugins
|               |-- png [error opening dir]
|               `-- grafana.db
`-- docker-compose.yml

运行NodeExporter

NodeExporter 对应于Zabbix Agent.
它是在物理主机上进行操作。
由于这只是一次验证,所以可以在任意目录上运行。

获取 NodeExporter

$ mkdir bin
$ wget --no-check-certificate \
   https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz \
   -O nodexporter.tgz
$ tar xvfz nodexporter.tgz -C node --strip-components 1
$ cd bin

运行 NodeExporter

执行NodeExporter会显示监听9100端口的日志。
Zabbix代理程序中对应的是监听15000端口。

$ ./nodeexporter
略
level=info ts=2021-1 () msg="Listening on" address=:9100?
level=info ts=2021-1 () msg="TLS is disabled." http2=false

3. 创建和注册监控规则

创建规则“PV/etc/prometheus/prometheus-cpu.yml”。

我个人觉得这个和 Zabbix 的触发器设置很相似。

就像Zabbix不同,我认为不需要使用WEB-UI而只需使用YAML进行编写的优点是一个好处,但是好像没有像Zabbix那样完善的描述辅助功能。

groups:
  - name: example
    interval: 1m
    rules:
    - alert: cpu_usage_high
      expr: 1 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m]))) > 0.8
      for: 5m

3-2. 实施规则

将上述的prometheus-cpu.yml应用于PV/etc/prometheus/prometheus.yml。

PV/etc/prometheus/prometheus.yml 可以用以下方式进行改写:

持久化卷/等等/普罗米修斯/普罗米修斯.yml

以 YAML 的方式将 192.168.10.47:9100 注册为新的 NodeExporter。(在 Zabbix 中,这个操作可以通过 WEB-UI 进行注册,不过也可以通过 YAML 完成)。

然后,在”rule_files”部分注册上述创建的prometheus-cpu.yml文件。
(再重申一遍,通常情况下,这种操作在Zabbix中是通过WEB-UI进行的)

 global:
   # How frequently to scrape targets by default.
   scrape_interval: 15s
   # How frequently to evaluate rules.
   evaluation_interval: 15s

 # A list of scrape configurations.
 scrape_configs:
   - job_name: 'prometheus'
     static_configs:
     - targets: ['192.168.10.47:49090']
+  - job_name: 'prometheus host machine'
+    static_configs:
+    - targets: ['192.168.10.47:9100']

+rule_files:
+  - prometheus-cpu.yml 

4. 应用规则

文件结构

.
|-- PV
|   |-- etc
|   |   `-- prometheus
|   |       |-- prometheus-cpu.yml ?追加した?
|   |       `-- prometheus.yml
|   `-- var
|       `-- lib
|           `-- grafana
|               |-- csv [error opening dir]
|               |-- plugins
|               |-- png [error opening dir]
|               `-- grafana.db
`-- docker-compose.yml

重新启动

$ docker-compose restart prometheus

4-3. 确认运转

4-3-1. 检查目标

确认监视目标(在Zabbix中称为“主机”)是否已注册。

只需给出一个选项:请使用Web UI访问http://:49090/targets,并确保以下内容已正确注册。

image.png

另外,点击上述红框以查看显示的指标(Zabbix中的数据项值)。

image.png
对于4-4-2这个度量标准的确认

确认在Zabbix监控项目中已经注册了项目项。

访问http://:49090/rules,并且需要确认是否已经注册了如下内容。

image.png

另外,如果点击上述“expr”右侧的链接,可以看到警报的发生情况。

请直接用中文改写以下句子,只需要一个选项 :

以上

只需要一个选项,请将以下内容用中国母语进行释义:

参考信息

・”Zabbix統合監視実践入門 (技術評論社)” 第三版
・https://kazuhira-r.hatenablog.com/entry/2019/04/29/025816
・Prometheus官方網站
・CentOS 8 實踐指南[伺服器建置篇]
・Kubernetes實踐指南 支持雲原生應用的技術
・使用Prometheus監視Kubernetes的書籍 (電子版)

bannerAds