了解如何将 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 在树莓派上运行时遇到任何问题,请在下面发表评论。
您还应该查看我们的一些其他树莓派项目,以了解如何使用设备。