一款开源监控和警报平台:Prometheus

举报
wljslmz 发表于 2022/07/27 23:16:18 2022/07/27
【摘要】 Prometheus是一个开源监控和警报平台。 最初,Prometheus 是 Soundcloud 在 2012 年创建的,此后被一些著名公司 abe 采用的 Prometheus 项目成为一个更大的...

Prometheus是一个开源监控和警报平台。

最初,Prometheus 是 Soundcloud 在 2012 年创建的,此后被一些著名公司 abe 采用的 Prometheus 项目成为一个更大的项目,拥有非常活跃的开发者和社区。并且在 2016 年,Prometheus 项目在云原生计算基金会(CNCF)下毕业。

你必须知道的基本概念

基本上,Prometheus通过 HTTP 端点从目标服务器收集数据和指标,然后将所有数据存储为时间序列,在 Prometheus 中,时间序列数据由度量名称和键/值对标识。

Prometheus 通过 Prometheus 查询语言 (PromQL) 提供灵活性,您可以使用 PromQL 查询 Prometheus 时间序列数据库。

在目标服务器上,您必须安装向 Prometheus 公开所有数据和指标的“导出器”应用程序。“节点导出器”是监控 Linux 机器的常用导出器。

节点导出器从 Linux 机器公开硬件和内核相关的矩阵,它以单个二进制文件的形式出现,将向 Prometheus 服务器公开数据端指标。

先决条件

在本文中,您将学习如何在 Rocky Linux 8 系统上安装 Prometheus 监控工具和 Node Exporter。

在开始之前,请确保您已满足以下要求:

  • 操作系统:Rocky Linux 8.5
  • 根权限

在本例中,我们使用 IP 地址为“ 192.168.1.10 ”的 Rocky Linux 系统。

现在让我们开始吧。

添加新用户和目录

首先,您将创建一个新的系统用户“prometheus”,然后为 Prometheus 安装创建一个新的配置目录和数据目录。

1.执行以下命令创建一个新用户’ prometheus '。

sudo adduser -M -r -s /sbin/nologin prometheus

  
 
  • 1
  1. 之后,使用以下命令 创建一个新的配置目录’/etc/prometheus ‘和数据目录’ /var/lib/prometheus '。
sudo mkdir /etc/prometheus 
sudo mkdir /var/lib/prometheus

  
 
  • 1
  • 2

所有 Prometheus 配置都将在“ /etc/prometheus ”目录下可用,所有 Prometheus 数据将自动保存到“ /var/lib/prometheus ”目录下。

在 Rocky Linux 上安装 Prometheus

在此步骤中,您将从 tarball 或 tar.gz 文件手动安装 Prometheus 监控系统。

从此链接中选择 Prometheus 版本。对于这个例子,我们将安装 Prometheus 的最新版本。

  1. 将工作目录更改为“/usr/src”并使用以下命令下载 Prometheus 二进制文件。
cd /usr/src 
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz

  
 
  • 1
  • 2

下载过程完成后,解压缩 Prometheus 文件。

tar -xf prometheus-2.31.1.linux-amd64.tar.gz

  
 
  • 1

现在您将看到一个新目录“ prometheus-VERSION.OS ”。

2.接下来,将所有Prometheus配置复制到目录’/etc/prometheus’,二进制文件’ prometheus ‘复制到’ /usr/local/bin '目录。

将环境变量“ PROM_SRC ”设置到目录“/usr/src/prometheus-* ”。

export PROM_SRC=/usr/src/prometheus-*

  
 
  • 1

将 prometheus 配置“ prometheus.yml ”复制到目录“ /etc/prometheus ” 。

sudo cp $PROM_SRC/prometheus.yml/etc/prometheus/

  
 
  • 1

将二进制文件“ prometheus ”和“ promtool ”复制到目录“/usr/local/bin/ ”。

sudo cp $PROM_SRC/prometheus /usr/local/bin/ 
sudo cp $PROM_SRC/promtool /usr/local/bin/

  
 
  • 1
  • 2

将 Prometheus 控制台模板和库复制到“/etc/prometheus”目录。

sudo cp -r $PROM_SRC/consoles /etc/prometheus 
sudo cp -r $PROM_SRC/console_libraries /etc/prometheus

  
 
  • 1
  • 2
  1. 接下来,使用 nano 编辑器 编辑 Prometheus 配置“ /etc/prometheus/prometheus.yml” 。
nano /etc/prometheus/prometheus.yml

  
 
  • 1

在“ scrape_configs ”选项中,您可能需要添加监控作业以及如何从目标中抓取所有数据。

默认配置带有默认监控作业名称“prometheus”和目标服务器“ localhost ”,通过“ static_configs ”选项。

将目标从“localhost:9090”更改为服务器 IP 地址“ 192.168.1.10:9090 ”,如下所示。

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

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

    static_configs:
      - targets: ["192.168.1.10:9090"]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

保存配置并退出。

  1. 现在执行以下命令,将配置和数据目录更改为用户’ promethues '。
sudo chown prometheus:prometheus /etc/prometheus 
sudo chown prometheus:prometheus /var/lib/prometheus

  
 
  • 1
  • 2

现在您已经完成了基本的 prometheus 安装。

设置 Prometheus 服务文件

在这一步中,您将把 Prometheus 设置为 systemd 服务。

  1. 使用 nano 编辑器创建一个新的 systemd 服务文件 ‘/etc/systemd/system/prometheus.service’。
sudo nano /etc/systemd/system/prometheus.service

  
 
  • 1

复制并粘贴以下配置。

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

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

保存配置并退出。

  1. 接下来,重新加载 systemd 管理器以应用新配置。
sudo systemctl daemon-reload

  
 
  • 1
  1. 现在执行以下命令启动并启用 Prometheus 服务,然后检查它的当前状态。
sudo systemctl enable --now prometheus 
sudo systemctl status prometheus

  
 
  • 1
  • 2

如果安装成功,您将看到 prometheus 服务处于活动状态并正在运行,如下所示。

Prometheus 监控工具现在可以在 TCP 端口 ’ 9090上访问。

  1. 打开您的网络浏览器并在地址栏上输入 端口为“ 9090 ”的服务器 IP 地址。
http://192.168.1.10:9090/

  
 
  • 1

您将在下面看到 prometheus 仪表板查询。

现在您已经完成了 prometheus 的安装。转到下一步以安装 Node Exporter。

在 Rocky Linux 上安装节点导出器

节点导出器是 prometheus 项目的一部分。您可以使用节点导出器将 Linux 服务器的指标导出到 Prometheus 服务器。

在这一步中,您将通过 tar.gz 文件在 Rocky Linux 系统上安装节点导出器。

检查此链接以获取最新版本的节点导出器。在此示例中,我们将安装节点导出器版本 1.3.0。

  1. 将工作目录更改为“ /usr/src ”并使用以下命令下载节点导出器二进制文件。
cd /usr/src/ 
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz

  
 
  • 1
  • 2

如果下载过程完成,请提取节点导出器文件。

tar -xf node_exporter-1.3.0.linux-amd64.tar.gz

  
 
  • 1

现在您将获得一个新目录“node_exporter-VERSION.OS ”。

  1. 接下来,使用以下命令 将节点导出器二进制文件移动到目录’/usr/local/bin '。
mv node_exporter-*/node_exporter /usr/local/bin

  
 
  • 1

转到下一步将节点导出器设置为 systemd 服务。

将 Node_exporter 设置为服务

在创建节点导出器服务文件之前,创建一个新的系统用户“ node_exporter”。

  1. 执行以下命令创建一个新的系统用户。
sudo adduser -M -r -s /sbin/nologin node_exporter

  
 
  • 1
  1. 接下来,使用 nano 编辑器为节点导出器“/etc/systemd/system/node_exporter.service”创建一个新的服务文件。
sudo nano /etc/systemd/system/node_exporter.service

  
 
  • 1

复制并粘贴以下配置。

[Unit] 
Description=Node Exporter 
After=network.target 

[Service] 
User=node_exporter 
Group=node_exporter 
Type=simple 
ExecStart=/usr/local/bin/node_exporter 

[Install] 
WantedBy=multi-user.target

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

保存配置并退出。

  1. 现在重新加载 systemd 管理器以应用新配置。
sudo systemctl daemon-reload

  
 
  • 1
  1. 使用以下命令启动并启用服务“node_exporter”。
sudo systemctl enable --now node_exporter

  
 
  • 1

之后,检查服务“node_exporter”的当前状态。

sudo systemctl status node_exporter

  
 
  • 1

确保“ node_exporter ”服务处于活动状态且正在运行。

  1. 节点导出器在默认端口“ 9100 ”上运行。使用下面的 ss 命令进行验证。
ss -aplnt | grep node

  
 
  • 1

您将看到如下类似的输出。

State    Recv-Q   Send-Q     Local Address:Port     Peer Address:Port   Process
LISTEN   0        128              0.0.0.0:22            0.0.0.0:*       users:(("sshd",pid=683,fd=4))
LISTEN   0        128                    *:9090                *:*       users:(("prometheus",pid=709,fd=8))
LISTEN   0        128                    *:9100                *:*       users:(("node_exporter",pid=5786,fd=3))
LISTEN   0        128                 [::]:22               [::]:*       users:(("sshd",pid=683,fd=6))

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

并且您已经完成了在 Rocky Linux 系统上的 node exporter 的安装。

将 node_exporter 添加到 Prometheus

完成 Prometheus 和节点导出器安装后,将节点导出器添加到 Prometheus 服务器。

  1. 使用 nano 编辑器编辑 Prometheus 配置。
sudo nano /etc/prometheus/prometheus.yml

  
 
  • 1

在“ scrape_config ”部分下,使用以下配置添加一个新的 Prometheus 作业。并确保使用目标服务器更改服务器 IP 地址。

  - job_name: 'node_exporter_metrics'
    scrape_interval: 5s
    static_configs:
      - targets: ['SERVER-IP:9100']

  
 
  • 1
  • 2
  • 3
  • 4

保存配置并退出。

  1. 现在重启 Prometheus 服务以应用新配置。
sudo systemctl restart prometheus

  
 
  • 1

您已将节点导出器添加到 Prometheus 服务器。

验证 Prometheus 和节点导出器安装

1.回到Prometheus仪表板,点击菜单’ Status ‘并选择’ Targets '。

您将看到两个不同的端点,“ prometheus ”和“ node_exporter_metrics ”。

  1. 接下来,移动到菜单“图表”并在搜索栏上键入 PromQL 查询。对于此示例,使用查询“ node_os_info ”检查详细的操作系统。

您将看到有关当前操作系统的详细信息。

  1. 另一个例子,使用查询’ node_network_speed_bytes ‘检查网络速度,然后移动到选项卡’ Graph '。您将看到如下类似的输出。

现在您已经在 Rocky Linux 系统上成功安装了 Prometheus 和节点导出器。

文章来源: blog.csdn.net,作者:wljslmz,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_43025343/article/details/123302102

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。