通过树莓派打造一个监视系统

了解如何将 Prometheus 监视解决方案安装到树莓派。

Prometheus 是一个开源监视解决方案,使您可以轻松地从树莓派跟踪系统指标。

您可以设置所谓的”** node exporter “(节点导出器),以便可以读取其他设备上的系统指标,并使它们将其数据返回给您的 Prometheus 安装。

Prometheus 软件具有内置的警报管理器,可让您根据接收到的数据发送通知。

监控软件甚至内置了对 Grafana 的支持,使您可以可视化 Prometheus 轻松捕获的所有数据。

Prometheus 超级容易设置,这是因为它不需要额外的依赖即可操作。

设备

以下是在树莓派上安装 Prometheus 软件时使用的设备列表。

推荐的

  • 树莓派

  • Micro SD 卡 (8GB +)

  • 网络连接

可选的

树莓派外壳

  • USB 键盘

  • USB 鼠标

本教程已在树莓派 4 和 Pi 400 上进行了测试。运行树莓派 OS 的最新版本。

将 Prometheus 下载到树莓派

在本节中,我们将向您展示如何为树莓派的硬件​​下载正确版本的 Prometheus 。

这些步骤适用于任何使用 ARMv7 架构的设备。

1 在继续之前,我们应确保所有软件包都是最新的。

这样做可以确保我们从干净的基础上安装一切,并且任何过期的软件包都不会引起问题。

要升级所有当前安装的软件包,请在树莓派上运行以下命令。

sudo apt update
sudo apt full-upgrade

2 我们可以下载适用于 ARMv7 架构的 Prometheus 的预编译版本。

要下载此软件,请在软件上运行以下命令。

wget https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-armv7.tar.gz

该命令将使用 wget 将 Prometheus 的 2 .22.0 版本下载到您的树莓派。

3 通过运行以下命令,将二进制文件提取到下载的存档之外。

我们可以使用 tar 程序来提取档案

焦油 xfz prometheus-2.22.0.linux-armv7.tar.gz

4 我们的下一步是重命名提取的文件夹,以从文件夹名称中删除版本。

这样可以更轻松地引用目录中的文件

mv prometheus-2.22.0.linux-armv7/prometheus /

5 我们的最后一步是清理安装。

我们需要做的就是删除我们先前下载的档案。尽管可以安全保存,但不再需要存放文件。

通过在树莓派上运行以下命令来删除 Prometheus 存档。

rm prometheus-2.22.0.linux-armv7.tar.gz

完成后,我们现在在树莓派上安装了 Prometheus 。

为普罗米修斯设置服务

在本节中,我们将向您展示如何在树莓派上为 Prometheus 设置服务。

服务是使您能够在启动时自动启动软件的工具。它还允许您快速启动和停止软件。

1 要创建服务,我们需要在”/etc/systemd/system /“目录中创建一个新文件。

该目录是默认情况下处理服务的位置。

要创建此文件,我们将使用 nano 文本编辑器。

通过在 Pi 上运行以下命令,开始编写新的服务文件。

sudo vim /etc/systemd/system/prometheus.service

2 在此文件中,输入以下文本。

文本定义了服务的工作方式以及应如何运行 Prometheus 软件。

[单元]
Description = Prometheus服务器
文档= https://prometheus.io/docs/introduction/overview/
之后= network-online.target

[服务]
用户= pi
重新启动=失败

ExecStart =/home/pi/prometheus/prometheus \
  --config.file =/home/pi/prometheus/prometheus.yml \
  --storage.tsdb.path =/home/pi/prometheus/data

[安装]
WantedBy =多用户目标

通过编写此服务文件的方式,一旦网络联机,它将在您的树莓派上运行 Prometheus 软件。

启动后,它将运行位于”/home/pi/prometheus/prometheus” 的 Prometheus 可执行文件。我们传入监视软件所需的配置文件位置和数据库的存储位置。
如果需要修改配置文件,可以在”/home/pi/prometheus/prometheus.yml“中找到。

2 完成写入服务文件后,请保存它。

您可以通过按 CTRL + X,然后按 Y ,然后按 Enter 键来保存并退出文件。

3 创建新服务后,我们现在可以继续启用它。

要启用 Prometheus 服务,我们可以运行以下命令。

sudo systemctl启用普罗米修斯

启用服务是使它能够在树莓派启动时启动的功能。

4 启用服务后,现在让我们启动 Prometheus 软件。

要启动该服务,请运行以下命令。

sudo systemctl 启动普罗米修斯

5 我们可以通过检查其状态来验证 Prometheus 在树莓派上是否已成功启动。

在树莓派上键入以下命令以检索服务的状态。

sudo systemctl 状态普罗米修斯

6 如果一切都已正确启动,则应该看到 status 命令返回以下内容。

活动:活动(运行中)

如果状态未显示为正在运行,请在下面添加注释。

载入 Prometheus Web 界面

现在您已经在树莓派上安装并设置了 Prometheus ,我们现在可以浏览其 Web 界面。

1 在继续之前,您需要知道树莓派的 IP 地址。

为您的 Pi 获取 IP 的最简单方法是使用以下命令,但是还有其他方法。

主机名-I

记下您的 IP ,然后继续下一步。

2 在您的收藏的网络浏览器中,转到以下地址进入 Prometheus 界面。

http://[PIADDRESS]:9090

3 加载界面后,将出现以下界面。

该界面允许您针对指标执行查询,并将其显示为原始数据或显示在基于时间的图表中。

4 您还可以使用此 Web 界面查看哪些设备作为 Prometheus 的目标。

您可以通过单击顶部菜单栏 (1 ) 上的” 状态” 选项进入目标屏幕。

接下来,您需要在弹出的子菜单 (2 ) 中单击”** Targets **” 选项。

5 目标屏幕将显示您当前已连接到树莓派的 Prometheus 安装的所有设备。

您可以查看每个可用目标的状态,上次刮擦的时间以及刮擦的持续时间。

由于我们仅在 Pro 上安装了 Prometheus ,因此我们只能使用当前的设备。

将设备设置为 Prometheus 节点

在本节中,我们将向您展示如何在树莓派上将另一个设备设置为 Prometheus 的节点。

对于此示例,我们将设置节点导出器软件,该软件将在另一台树莓派上向 Prometheus 报告。

但是,只要您为架构下载了正确的版本,这些步骤就应该适用于大多数其他 Linux 系统。

在继续之前,请确保您的设备具有静态 IP 地址。如果您的 IP 地址是动态分配的,则可能会导致与此节点的连接断开。

安装 Node Exporter 软件

1 我们要做的第一件事是使用以下命令在”/opt“中创建一个新目录。

该目录将保留节点导出器,因为该位置用于 OS 发行版未提供的软件包。

sudo mkdir /opt/node-exporter

2 接下来,转到我们新创建的目录。

切换到目录将确保我们将要下载的存档位于正确的位置。

cd/opt/node-exporter

3 下一步是将 Prometheus 节点导出器的存档下载到我们的设备。

您要下载的版本根据设备而异。例如,当我们使用 ** 树莓派 4 时,我们将要下载 Prometheus 导出器的 ARMv7 **。

确保记下设备和操作系统使用的体系结构。

** ARMv7 (例如树莓派 2、 3 、 4)**
使用以下命令将节点导出器的 ARMv7 版本下载到您的设备。

请注意,如果使用的是 64 位操作系统,则应改用 ARM64 构建。

sudo wget -O node-exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-armv7.tar.gz

** ARMv6 (例如树莓派 1,零,CM1)**ARMv6 构建对于较旧的 IoT ARM 设备 (例如树莓派 1) 很有用。如果不确定设备使用哪种体系结构,则可能会有助于查找。
通过使用以下命令,您可以下载节点导出器的 ARMv6 版本。

sudo wget -O node-exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-armv6.tar.gz

** ARM64 (例如树莓派 3、 4 ,Rock64)**
Prometheus Node 导出器的 ARM64 版本仅用于运行 64 位操作系统的 64 位 ARM 设备。

通过在设备上运行以下命令,下载 ARM64 构建的存档。

sudo wget -O node-exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

** x64 **
下面提供了用于为 Linux 系统下载 x64 版本的 Node exporter 系统的命令。

x64 是大多数非 ARM 设备使用的最常见的操作系统。

sudo wget -O node-exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

4 将 Prometheus 档案下载到您的设备上。现在,我们可以使用 tar 包来提取它。

运行以下命令将存档解压缩到当前目录中。

sudo tar -xvf node-exporter.tar.gz --strip-components = 1

我们使用”strip-components“选项仅获取存档内的文件,而不获取顶层目录。

5 将 Prometheus 节点导出器解压缩到我们的设备后,我们现在可以删除存档。

运行以下命令以删除存档。

sudo rm node-exporter.tar.gz

不一定需要删除存档,但这有助于使系统清除不需要的文件。

6 最后,我们可以使用以下命令使节点导出器联机。

./node-exporter

7 您可以通过转到现在输出的指标页面来验证新节点是否正常运行。

要进入此页面,您需要知道设备的 IP 地址,最简单的方法之一就是使用”hostname -I” 命令。

您还需要

http://[YOURIPADDRESS]:9100

当您转到该地址时,您将看到 Prometheus 节点导出器报告的所有指标。

将 Node Exporter 设置为服务

现在我们已经在您的设备上运行了节点导出器,现在我们应该将其设置为服务。

将其配置为服务将在启动时自动启动,并使您更轻松地管理软件。

1 让我们开始编写定义服务的文件。

运行以下命令以开始写入新文件。

sudovim/etc/systemd/system/nodeexporter.service

2 在此文件中,输入以下代码行。

[单元]
Description = Prometheus节点导出器
文档= https://prometheus.io/docs/guides/node-exporter/
之后= network-online.target

[服务]
用户= pi
重新启动=失败

ExecStart =/opt/node-exporter/node_exporter

[安装]
WantedBy =多用户目标

3 输入完以上几行后,我们即可保存文件。

要保存文件,请按 CTRL + X,然后按 Y ,然后按 Enter 键。

4 现已保存服务,我们现在应该启用它。

运行以下命令将使我们的节点导出器在设备开机时启动。

sudo systemctl启用 nodeexporter 

5 接下来,让我们立即启动 Prometheus 节点导出器,这样就不必等到重新启动。

sudo systemctl启动 nodeexporter 

6 要验证 Prometheus 节点导出器是否在您的设备上成功运行,您可以转到前面提到的 URL 或运行以下命令。

此命令将检索我们刚刚创建的服务的状态。

sudo systemctl status节点导出器

如果服务正常运行,您应该看到以下消息,” 活动:活动 (运行)”。

将节点添加到树莓派 Prometheus 节点

在这一点上,您现在应该有两个独立的工作。您应该使树莓派成功运行 Prometheus 软件。

此外,您还应该使用节点导出器设置设备,无论是树莓派还是其他设备。

在下一部分中,我们将向您展示如何在树莓派上配置 Prometheus ,以连接并从我们的节点读取数据。

请注意,在继续本节之前,您需要知道节点的 IP 地址。

1 让我们通过编辑 Prometheus 配置文件开始此过程。

您可以使用树莓派上的以下命令开始编辑此文件。

vim /home/pi/prometheus/prometheus.yml

2 在此文件中,您将看到一系列定义 Prometheus 工作方式的行。

我们感兴趣的是”scrape_configs“部分。本节将使我们能够添加其他要抓取的作业。 scrape _configs:# 作业名称作为标签”job =” 添加到从该配置中刮取的任何时间序列。
-job_name:’prometheus’

    #metrics_path默认为'/metrics'
    #scheme默认为'http'。

    static_configs:
    -目标:['localhost:9090']

3 在本节下面,让我们开始添加我们需要添加另一个节点的配置。

在这里,我们需要为要抓取的特定目标定义一个名称。通过定义名称,标签将添加到从此配置中抓取的数据中。

我们还需要使用此配置来指定目标端点。对于我们的节点,这将是设备的 IP 地址,后跟端口”9100”。

在文件中输入以下几行时,请确保将”[IPADDRESS]“替换为设备的 IP 。

  -job_name:"node1"

    static_configs:
    -目标:['[IPADDRESS]:9100']

4 在添加了新配置后,您应该最终得到一些类似于下面的内容。

#我的全局配置
全球:
  scrape_interval:15s#设置刮擦间隔为每 15 秒。默认值为每 1 分钟。
  Evaluation_interval:15s#每 15 秒评估一次规则。默认值为每 1 分钟。
  #scrape_timeout设置为全局默认值(10s)。

#Alertmanager配置
提醒:
  警报管理员:
  -static_configs:
    -目标:
      #-alertmanager:9093

#加载一次规则,并根据全局'evaluation_interval'定期评估它们。
rule_files:
  #-"first_rules.yml"
  #-"second_rules.yml"

scrape_configs:
  #作业名称作为标签"job ="添加到从此配置中刮取的任何时间序列。
  -job_name:'prometheus'

    #metrics_path默认为'/metrics'
    #scheme默认为'http'。

    static_configs:
    -目标:['localhost:9090']
  -job_name:"node1"

    static_configs:
    -目标:['192.168.0.193:9100']

5 当您满意地正确配置了所有内容后,就可以保存文件了。

按 CTRL + X,然后按 Y ,然后按 ENTER 保存。

6 当我们对 Prometheus 配置进行了更改时,我们需要重新启动软件。

由于我们已经在树莓派上为其创建了服务,因此重新启动就像运行以下命令一样简单。

sudo systemctl 重启普罗米修斯

7 如果返回到 Prometheus Web 界面,现在应该看到从节点提取的数据。

例如,我们可以在目标页面上看到我们的节点现在被视为可能的数据源。

结论

此时,您现在应该使用 Prometheus 监视软件来设置树莓派。

此外,您还应该学习如何在其他设备上设置节点导出器软件,并使树莓派从中读取数据。

Prometheus 是一款相当简单易用的软件,非常适合那些希望从其系统中获取指标的人。

此外,您可以将 Prometheus 与分析可视化工具,例如 Grafana 结合使用。 Grafana 可使您更轻松地查看数据并轻松创建有用的图形。最棒的是,它还可以在树莓派上运行。

如果让 Prometheus 在树莓派上运行时遇到任何问题,请在下面发表评论。

您还应该查看我们的一些其他树莓派项目,以了解如何使用设备。

分享到