技术教程 · 2019年12月7日 0

如何在CentOS 8上安装Prometheus Monitoring和node_exporter

Prometheus是一个开源监视系统,可让您从任何已配置的目标系统收集度量。Prometheus实现了多维数据模型,具有强大的查询,出色的可视化效果,精确的警报功能以及许多集成。

Prometheus最初由SoundCloud于2012年创建,但现在已成为由开源社区独立维护的独立开源项目-所有组件都可以在Github上的Apache 2 License下获得。

在本教程中,我将向您展示如何安装和配置Prometheus和node_exporter。我们将安装Prometheus监视系统,然后配置node_exporter以从服务器收集指标。本教程指南将使用最新的CentOS 8服务器。

先决条件

  • CentOS 8服务器
  • 根特权

我们会怎样做?

  • 创建一个新用户并下载Prometheus
  • 将Prometheus配置为系统服务
  • 配置防火墙
  • 安装和配置node_exporter
  • 将node_exporter添加到Prometheus服务器
  • 测试中

步骤1-创建一个新用户并下载Prometheus

在本教程中,Prometheus服务将以非root用户身份运行。因此,我们需要在系统上创建一个新的非root用户。我们将创建一个名为“ prometheus”的新用户,所有prometheus服务将在prometheus用户下运行。

使用以下命令创建新的“ prometheus”用户。

useradd -m -s /bin/bash prometheus

已创建一个新用户。现在登录到用户,并使用wget命令下载prometheus。

su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz

下载Prometheus源代码

解压缩prometheus-xx.xxtar.gz文件,并将目录重命名为“ prometheus”。

tar -xf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64/ prometheus/

之后,创建一个新的“数据”目录,将其用作“ tsdb”存储。

mkdir -p ~/prometheus/data

现在,将prometheus下载到服务器,并且所有prometheus文件都位于“ / home / prometheus / prometheus”目录中。

提取档案文件

第2步-将Prometheus配置为系统服务

在此步骤中,我们将Prometheus配置为系统服务。我们将在“ / etc / systemd / system”目录中创建一个新的服务文件prometheus.service。

转到“ / etc / systemd / system /”目录,并使用vim编辑器创建新的服务文件“ prometheus.service”。

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

在下面粘贴prometheus服务配置。

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

[Service]
User=prometheus
Restart=on-failure

#Change this line if you download the 
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
  --config.file=/home/prometheus/prometheus/prometheus.yml \
  --storage.tsdb.path=/home/prometheus/prometheus/data

[Install]
WantedBy=multi-user.target

保存并退出。

现在,使用下面的systemctl命令重新加载systemd系统。

systemctl daemon-reload

启动prometheus服务,并使它每次在系统启动时启动。

systemctl start prometheus
systemctl enable prometheus

在systemd中配置Prometheus服务

Prometheus现在作为systemd服务运行,请使用以下命令对其进行检查。

systemctl status prometheus

确保您获得“正在运行”服务状态。

或使用下面的netstat命令检查它。

netstat -plntu

确保获得如下所示的结果。

检查普罗米修斯服务的状态

Prometheus默认情况下在端口“ 9090”下运行。

步骤3-配置防火墙

如果您在系统上使用Firewalld,请将端口9090添加到Firewalld列表端口。

使用下面的firewall-cmd命令打开端口9090以进行Prometheus访问。

firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload

现在检查firewalld的规则。

firewall-cmd --list-all

您将在列表中获得TCP端口“ 9090”。

配置防火墙

接下来,打开您的Web浏览器,并使用端口9090键入服务器IP地址。

http://10.5.5.15:9090/graph

在查询字段中输入“ prometheus_http_requests_total”,然后单击“执行”按钮。

Prometheus系统监视器仪表板

您将看到到Prometheus服务器的HTTP请求以及有关时间,HTTP状态代码和方法等的所有信息。

第4步-安装和配置node_exporter

node_exporter是可以在* Nix和Linux系统上运行的机器指标的导出器。

在本教程中,我们将在同一台服务器上安装node_exporter。我们将监视并获取Prometheus服务器的指标。

登录到prometheus用户并使用wget命令下载“ node_exporter”。

su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

提取node_exporter并将目录重命名为“ node_exporter”。

tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter

安装和配置node_exporter

接下来,我们将为node_exporter创建新的服务文件。返回根shell,转到“ / etc / systemd / system”目录,并使用vim创建新的node_exporter服务文件“ node_exporter.service”。

cd /etc/systemd/system/
vim node_exporter.service

粘贴以下配置。

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter

[Install]
WantedBy=default.target

保存并退出。

现在重新加载systemd系统。

systemctl daemon-reload

然后启动node_exporter服务,并使它每次在系统启动时启动。

systemctl start node_exporter
systemctl enable node_exporter

启动node_exporter

node_exporter服务现在正在服务器上运行-使用netstat命令检查它。

systemctl status node_exporter
netstat -plntu

您将获得节点导出器的启动并在默认端口9100上运行。

检查node_exporter状态

第5步-将node_exporter添加到Prometheus服务器

在此步骤中,我们将node_exporter添加到prometheus服务器。登录到prometheus用户并编辑配置“ prometheus.yml”文件。

登录到prometheus用户。

su - prometheus

转到“ prometheus”目录并编辑配置文件“ prometheus.yml”。

cd ~/prometheus/
vim prometheus.yml

在“ scrape_config”行下,通过复制粘贴以下配置来添加新的job_name node_exporter。

  - job_name: 'node_exporter'
    static_configs:
    - targets: ['localhost:9100']

保存并退出。

现在重新启动prometheus服务。

systemctl restart prometheus

node_exporter已添加到prometheus服务器。

重新启动普罗米修斯服务

步骤6-测试Prometheus和node_exporter

打开Web浏览器,然后输入服务器IP地址。

http://10.5.5.15:9090/

在查询字段中输入meminfo收集器“ node_memory_MemAvailable_bytes”,然后单击“执行”按钮。

您将得到如下结果。

测试普罗米修斯

您将在服务器实例’localhost:9100’和job_name’node-exporter’上获得可用内存。

或者,如果要访问node_exporter原始数据,则需要将node_exporter端口9100添加到firewalld。

firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --reload

然后键入带有端口9100的服务器IP地址。

http://10.5.5.15:9100/metrics

然后您将获得node_exporter原始数据,如下所示。

普罗米修斯度量

结果,在CentOS 8服务器上使用node_exporter完成了普罗米修斯监视系统的安装和配置。

参考