如何在树莓派Raspberry Pi 4B上安装Prometheus

Prometheus是一个开源的系统监控软件,可以轻松地跟踪树莓派的系统指标。

它还可以设置一个叫“node exporter”的东西,这样就可以在其他设备上读取系统的状态,并且把数据回传到安装了Prometheus的设备上。

Prometheus还内置了报警管理器,这样就可以根据收到的数据发送报警通知。

该监控软件甚至还内置了对Grafana的支持,让您可以轻松地将Prometheus采集的数据可视化。

由于Prometheus不需要额外的依赖,因此设置起来超级简单。

设备清单

下面是我在树莓派4B上安装Prometheus软件时使用的设备清单

必须的设备

  • 树莓派
  • SD卡,至少8G
  • 网络

可选的设备

  • 树莓派外壳
  • USB 鼠标
  • USB 键盘

下载Prometheus到树莓派上

首先我们下载适用树莓派硬件的Prometheus,这些步骤将适用于任何使用ARMv7架构的设备。

1、开始所有步骤前,确保系统的软件包是最新的

这可以保证我们是在一个干净的环境中开始软件安装,不会让过时的软件包导致依赖问题。

要升级所有的软件包,在Raspberry Pi上运行下面命令即可

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命令,下载github仓库中的 2.22.0 版本的Prometheus

3、解压Prometheus软件包

用tar命令把刚刚下载的软件包解压

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

4、重命名软件包

重名了软件包,这样好看一些

mv prometheus-2.22.0.linux-armv7/ prometheus/

5、最后一步是清理环境

做一些打扫工作,把之前下载的软件包删掉就可以了,你也可以不删除,说不定什么时候还会用到。

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

这些都做完之后,我们就把Prometheus安装到了我们的树莓派上

把Prometheus设置为系统服务

把Prometheus设置为系统服务后就可以开机自启动,通过service命令进行管理

1、在/etc/systemd/system/中创建一个新文件

默认的系统服务都在这里,我们使用nano编辑器创建文件,命令如下:

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

2、在这个文件里写入内容

这个文本内容描述了系统服务是怎么工作的,指定了要执行的软件是Prometheus

[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
User=pi
Restart=on-failure

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

[Install]
WantedBy=multi-user.target

配置文件告诉树莓派一旦连接上网络就运行Prometheus。

Prometheus的执行位置在/home/pi/prometheus/prometheus。

我们同时指定了监控软件所需配置文件的位置和数据库的存储位置,如果你想更改配置文件,可以去这里修改/home/pi/prometheus/prometheus.yml

3、保存service配置文件

按CTRL + X,然后按Y,接着按ENTER键保存并退出文件。

4、启用新服务

执行下面的命令启用Prometheus服务

sudo systemctl enable prometheus

启用该服务是为了让它在Raspberry Pi启动时启动。

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

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

sudo systemctl start prometheus

6、检查Prometheus的状态来验证Prometheus是否已经在Raspberry Pi上成功启动。

在Raspberry Pi上键入以下命令来检索服务的状态。

sudo systemctl status prometheus

7、如果一切正常启动,你应该看到状态命令返回的以下内容。

Active: active (running)
如果状态没有显示为运行,请在下面留言。

加载Prometheus网络界面

现在已经在树莓Pi上安装并设置了Prometheus,可以看看它的Web界面。

1、继续之前,需要知道你Raspberry Pi的IP地址。

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

hostname -I

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

2. 在网页浏览器中,输入以下地址,进入Prometheus的web界面。

http://[PIADDRESS]:9090

3、主页长下面这个样子

这个界面可以对指标进行查询,并以原始数据或基于时间的图表的形式显示出来。

4、你也可以使用这个网页界面来查看Prometheus的子节点设备。

点击顶部菜单栏的 “status “选项可以进入子节点界面(1).

然后在下拉的菜单中点击弹出的“Targets”

5、接下来会显示您当前连接到Raspberry Pi的安装了Prometheus的所有设备。

您可以看到每个可用目标的状态,最后一次连接的时间以及连接持续的时间。

由于我们才刚刚将Prometheus安装到我们的Pi上,所以我们只有当前设备可用。

将设备设置为 Prometheus 节点

在本节中,我将向您展示如何在您的Raspberry Pi上设置另一个设备作为Prometheus的节点。

在这个例子中,我将设置节点导出软件,在另一个Raspberry Pi上查看Prometheus报告。

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

在继续之前,请确保您的设备有一个静态的IP地址。如果您的IP地址被动态分配,很可能会导致与该节点的连接中断。

安装Node Exporter软件

1. 首先,使用下面的命令在”/opt “中新建一个目录。

这个目录是我们保存Node Exporter的地方。

sudo mkdir /opt/node-exporter

2、然后,进入这个新目录中

执行下面的命令,之后我会在这个目录下工作

cd /opt/node-exporter

3、下载Prometheus Node exporter安装包到节点设备

需要下载设备对应的版本,例如,使用的是Raspberry Pi 4,下载Prometheus exporter的ARMv7版本。

确保你知道你的设备和操作系统使用的是什么架构。

ARMv7 (E.G. Raspberry Pi 2, 3, 4)

使用下面的命令将 node exporter 的 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 (E.G. Raspberry Pi 1, Zero, CM1)

ARMv6构建对于较老的物联网ARM设备(如Raspberry Pi 1)非常有用。如果您不确定您的设备使用的是什么架构,查找一下可能会有所帮助。

通过使用以下命令,您可以下载node exporter的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 (E.G. Raspberry Pi 3, 4, Rock64)

ARM64版本的Prometheus Node exporter纯粹是针对运行64位操作系统的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

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、安装完毕后的清理工作

清理是个好习惯,把之前下载的安装包删掉保持环境整洁,执行下面的命令做这个操作

sudo rm node-exporter.tar.gz

6、最后,运行下面的命令,启动节点

./node-exporter

7、验证节点是否工作正常

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

http://[YOURIPADDRESS]:9100

当你进入这个地址时,你会看到Prometheus报告的所有指标。

将Node Exporter设置为服务。

现在,我们已经在设备上运行了node exporte,把它配置为服务,将在启动时自动启动,让你更容易管理。

1. 从编写定义服务的文件开始。

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

sudo nano /etc/systemd/system/nodeexporter.service
2. 在该文件中,输入以下代码
[Unit]
Description=Prometheus Node Exporter
Documentation=https://prometheus.io/docs/guides/node-exporter/
After=network-online.target

[Service]
User=pi
Restart=on-failure

ExecStart=/opt/node-exporter/node_exporter

[Install]
WantedBy=multi-user.target

3. 以上几行输入完成后,就可以保存文件了

要保存文件,按CTRL + X,然后按Y,接着按ENTER键。

4. 保存了服务之后启用它。

运行下面的命令会让node exporter在设备开机时启动。

sudo systemctl enable nodeexporter

5. 接下来,让我们现在就启动Prometheus node exporter,这样我们就不用等到重启了。

sudo systemctl start nodeexporter

6. 要验证Prometheus node exporter是否在你的设备上成功运行,你可以进入我们前面提到的URL或运行以下命令。

sudo systemctl status nodeexporter

如果服务工作正常,你应该看到以下消息:”Active: active (running)”。

Raspberry Pi Prometheus添加节点

这个时候,你应该有两个独立工作的Prometheus。

Raspberry Pi成功运行着Prometheus软件。

此外,还应该有一个设备设置了Node exporter,无论是Raspberry Pi还是其他设备。

在接下来的这一节中,我们将向您展示如何在您的Raspberry Pi上配置Prometheus,连接并从节点上读取数据。

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

1、首先编辑Prometheus配置文件

执行下面的命令开始编辑

nano /home/pi/prometheus/prometheus.yml

2、在这个文件中定义Prometheus如何工作。

我们感兴趣的是 “scrape_configs “部分。

scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

3、我们开始添加需要添加的另一个节点的配置。

在这里,需要为特定目标定义一个名称。

我们还需要用这个配置来指定我们的目标端点。就我们的节点而言,就是设备的IP地址,然后是端口9100。

请注意要把”[IPADDRESS]”替换为设备的IP。

  - job_name: 'node1'

    static_configs:
    - targets: ['[IPADDRESS]:9100']

4. 添加了新的配置后的配置文件如下

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'node1'

    static_configs:
    - targets: ['192.168.0.193:9100']

5、保存配置文件

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

6. 由于我们对Prometheus的配置进行了修改,所以需要重新启动软件。

执行下面的命令进行服务重启

sudo systemctl restart prometheus

7. 返回到Prometheus的Web界面,现在应该看到数据正从节点拉入

例如,我们可以看到,我们的节点现在在target页面上被看作是一个可能的数据源。

总结

这个时候您现在应该已经将您的Raspberry Pi设置为Prometheus监控软件。

此外,你应该已经学会了如何在额外的设备上设置节点导出软件,并让你的Raspberry Pi从中读取数据。

Prometheus是一款相当简单易用的软件,对于那些想要从系统中获取指标的人来说是非常好用。

此外,你还可以将Prometheus与Grafana这样的分析可视化工具结合起来。Grafana会让你更容易查看数据,并轻松创建有用的图表。最重要的是,它还可以在Raspberry Pi上工作。

如果您在让Prometheus在您的Raspberry Pi上工作时遇到了任何问题,请随时在下面留言。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 如何在树莓派Raspberry Pi 4B上安装Prometheus

赞 (0)

评论

8+9=