如何在CentOS 7上安装Prometheus和node_exporter

Prometheus是一个开源监控系统,允许您从任何已配置的目标系统收集指标。Prometheus实现了多暗......

如何在CentOS 7上安装Prometheus和node_exporter

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

Prometheus最初是由SoundCloud在2012年创建的,但现在已经成为一个由开源社区独立维护的独立开源项目 - 所有组件都在Github上的Apache 2 License下提供。

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

先决条件

  • CentOS 7服务器
  • Root权限

我们会怎样做?

  1. 创建一个新用户并下载Prometheus
  2. 将Prometheus配置为系统服务
  3. 配置Firewalld
  4. 安装和配置node_exporter
  5. 将node_exporter添加到Prometheus服务器
  6. 测试

第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.2.1/prometheus-2.2.1.linux-amd64.tar.gz

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

tar -xzvf prometheus-2.2.1.linux-amd64.tar.gz
mv prometheus-2.2.1.linux-amd64/ prometheus/

Prometheus下载到服务器,所有prometheus文件都在'/ home / prometheus / prometheus'目录下。

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

在此步骤中,我们将prometheus配置为systemd服务。 我们将在'/ 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是否正在运行

Prometheus默认在端口'9090'下运行。

第3步 - 配置Firewalld

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

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

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

现在打开Web浏览器并使用端口9090键入服务器IP地址。

http://192.168.33.10:9090/graph

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

Prometheus图

您将看到prometheus服务器的HTTP请求,其中包含有关时间,HTTP状态代码和方法等的所有信息。

第4步 - 安装和配置node_exporter

node_exporter是可以在* Nix和Linux系统上运行的计算机度量标准的导出器。

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

登录prometheus用户并使用wget命令下载'node_exporter'。

su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0-rc.1/node_exporter-0.16.0-rc.1.linux-amd64.tar.gz

解压缩node_exporter并将目录重命名为“node_exporter”。

tar -xzvf node_exporter-0.16.0-rc.1.linux-amd64.tar.gz
mv node_exporter-0.16.0-rc.1.linux-amd64 node_exporter

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

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

在那里,粘贴node_exporter服务配置如下。

[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 systemd单元

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

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']

保存并退出。

将node_exporter添加到Prometheus服务器

现在重启prometheus服务。

systemctl restart prometheus

node_exporter已添加到prometheus服务器。

第6步 - 测试Prometheus和node_exporter

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

http://192.168.33.10:9090/

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

你将得到如下结果。

node_memory_MemAvailable_bytes的结果

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

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

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

然后使用端口9100键入服务器IP地址。

http://192.168.33.10:9100/metrics

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

结果指标

使用CentOS 7上的node_exporter安装和配置prometheus监控系统已成功完成。

参考