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
[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上工作时遇到了任何问题,请随时在下面留言。
欢迎转载,请留下出处链接:Labno3 » 如何在树莓派Raspberry Pi 4B上安装Prometheus