探针 Grafana + Prometheus 之比 Docker 更简单的部署流程

若无单独说明,按照文章代码块中命令的顺序,一条一条执行,即可实现目标。
适用系统:Debian 系发行版,包括 Ubuntu ,其他发行版按流程稍改命令一般也可。

完成部署预计时间:15 分钟 (但是看一遍也要 15 分钟,所以是 30分钟 ?)

文章里的一键脚本仅适用于 amd64 系统


image.png

GrafanaPrometheusNode Exporter 是一套流行的开源监控工具,用于收集,存储,查询系统和应用程序的各种使用率,并可视化显示。每个工具都有特定的功能:

  1. Grafana:是一款可视化程序,提供开源版和企业版。 Grafana 不从客户端收集任何数据,也不存储,它的功能是以直观且优美的格式显示 Prometheus 或其他数据源(SQL 等)收集的数据。 它允许用户自定义面板,支持警报、注释、仪表板变量、插件和身份验证。
  2. Prometheus:是一个开源的系统监控和警告程序,它使用 HTTP 协议轮询客户端以获取所需数据。维护结果的时间序列数据库,以预定义的时间间隔轮询每个客户端,进而能够构建客户端长期性能的概览。
  3. Node Exporter:在客户端节点上能使用各种收集器,但 Prometheus 推荐使用自己的 Node Exporter 工具。 它收集大量硬件和内核指标,如 CPU,磁盘 I/O,内存,网络等,收集的可用指标的完整列表可以在 Node Exporter GitHub page 页面上找到。

由于篇幅过长,更好的阅读体验,请移步博客: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/

资源使用率

Grafana 和 Prometheus 部署好后,内存使用量增加了 200MB 多;监控的客户端为 3 个的情况下,在运行一天之后,内存占用达到 300MB 。总的来说,资源消耗量较大,适合 2g 内存、20GB 磁盘空间的机子作为监控服务器。

通过 top 命令,node_exporter 占用了大约 20 MB 内存。

top -p $(pgrep node_exporter)

部署流程

默认,Grafana Web 界面使用端口 3000 访问,而 Prometheus 使用端口 9090 ,Node Exporter 使用端口 9100 。开放防火墙:

sudo ufw allow 9090 comment 'prometheus'
sudo ufw allow 3000 comment 'grafana'
# Node Exporter 有所不同,在后面

为了获得最佳结果,请在同一服务器上运行 Prometheus 和 Grafana。下面将托管 Prometheus 和 Grafana 的服务器的系统称为“监控服务器”。被监控的系统是“客户端”。


本文中的步骤是为非 root 用户编写的。需要提升权限的命令以 sudo 为前缀。

在监控服务器上开放防火墙,已完成✔

如果不想使用脚本,或者希望了解安装过程,请查看原文: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/ ,考虑篇幅过长,因此这么安排。

在监控服务器上安装 Prometheus 并作为服务运行

复制一键安装 Prometheus:(bash-script/install-prometheus.sh at main · AhFeil/bash-script (github.com)

wget -qO- 'https://raw.githubusercontent.com/AhFeil/bash-script/main/install-prometheus.sh' | sudo bash

若运行结束后,出现 active (running) ,则安装成功。

通过 http://ip_addr:9090 访问 Prometheus Web 界面和仪表板。将 ip_addr 替换为监控服务器的地址。

在所有客户端上安装 Node Exporter,并开放防火墙。

客户端可以是 Linux 发行版,也可以是 Windows 等,不过 Node Exporter 仅适用于 Linux。

在客户端只给 监控服务器IP 开放 9100 端口,记得修改监控服务器IP:

sudo ufw allow from 监控服务器IP to any port 9100 comment 'node_exporter'

复制一键安装 Node Exporter:(bash-script/install-node_exporter.sh at main · AhFeil/bash-script (github.com)

wget -qO- 'https://raw.githubusercontent.com/AhFeil/bash-script/main/install-node_exporter.sh' | sudo bash

若运行结束后,出现 active (running) ,则安装成功。

更新的话重新运行一遍就可以

配置 Prometheus 来监控客户端

客户端节点现在已准备好进行监控。要将客户端添加到 prometheus.yml ,请按照以下步骤操作:

在运行Prometheus的监控服务器上,打开 prometheus.yml 进行编辑。

sudo vim /etc/prometheus/prometheus.yml

找到 scrape_configs ,里面是作业列表。当前有一个名为 prometheus 的作业。此作业监视端口 9090 上的本地 Prometheus 任务。

prometheus 作业下方,添加第二个作业,其 job_nameremote_collector 。包括以下信息。

  • 设置抓取时间间隔: scrape_interval: 10s
  • 添加要监控的 IP 和 端口号 :9100 ,使用逗号分隔每个条目。
  • 要启用对本地服务器的监视,请将 localhost:9100 条目添加到列表中,并在本地安装 Node Exporter。

该条目应类似于以下示例。将 remote_addr 替换为客户端的实际IP地址。

...

  - job_name: "remote_collector"
    scrape_interval: 10s
    static_configs:
      - targets: ["remote_addr:9100", "localhost:9100"]

立即刷新 Prometheus,

sudo systemctl restart prometheus

使用 Web 浏览器重新访问监控服务器上端口 9090 的 Prometheus Web 门户。选择【Status】-【Targets】。将显示 remote_collector 作业的第二个链接,指向客户端上的端口 9100 。单击链接查看统计数据。

image.png

安装并部署 Grafana 服务器

Prometheus 收集的统计信息只能被视为原始数据转储。很难阅读,而且没有太大用处。

Grafana 提供了查看 Prometheus 收集的统计信息的界面。在运行 Prometheus 的同一服务器上安装 Grafana 并将 Prometheus 添加为数据源。

前置准备,

# 安装一些必需的实用程序
sudo apt-get install -y apt-transport-https software-properties-common
# 导入 Grafana GPG 密钥
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
# 添加 Grafana“稳定版本”存储库
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

安装 Grafana 的开源版本。

sudo apt-get update && sudo apt-get install grafana

重新加载 systemctl 守护进程。

sudo systemctl daemon-reload

加入开机自启,并立即启动

sudo systemctl enable --now grafana-server.service

查看状态

sudo systemctl status grafana-server

关联 Grafana 和 Prometheus

所有系统组件现已安装,但 Grafana 和 Prometheus 尚未关联。剩下的可以使用 Grafana Web 界面完成。

要集成 Grafana 和 Prometheus,请按照以下步骤操作:

  1. 浏览器访问监控服务器的 3000 端口。例如,输入 http://ip_addr:3000 ,将 ip_addr 替换为实际 IP 地址。
  2. Grafana 显示登录页面。使用用户名和默认密码 都是 admin 。当出现提示时,将密码更改为更安全的值。
  3. 成功更改密码后,Grafana 将显示 Grafana 仪表板。
  4. 要将 Prometheus 添加为数据源,请单击齿轮符号(代表配置),然后选择数据源。

image.png

  1. 在下一个显示中,单击“添加数据源”按钮。
  2. 选择Prometheus作为数据源。
  3. 对于本地 Prometheus 源,将 URL 设置为 http://localhost:9090 。大多数其他设置可以保留默认值。

image.png

  1. 对设置满意后,选择屏幕底部的【Save & test】按钮。
  2. 如果所有设置均正确,Grafana 会确认 Data source is working

使用 Grafana ,导入仪表板模板

可以创建自定义仪表板。然而,Prometheus 已经创建了一个仪表板来支持 Node Exporter,名为 Node Exporter Full ,下面是导入的流程。

要创建自定义仪表板,请单击仪表板按钮,该按钮类似于四个正方形。然后选择+新建仪表板。有关更多信息,请参阅 Grafana 构建仪表板指南。

  1. 在 Grafana 仪表板。选择由四个正方形组成的仪表板图标,

image.png

  1. 右边【New】-【Import】。

image.png

  1. 然后在 【Import via grafana.com】, 输入上一步中的 ID 1860 。然后选择【Load】。

image.png

  1. 在下一个屏幕确认导入详细信息。选择 Prometheus 作为数据源,然后单击【Import】按钮。

image.png

  1. Node Exporter Full 仪表板立即生效。它显示客户端节点的性能指标和状态,包括内存、RAM 和 CPU 详细信息。

image.png


原文链接: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/
版权声明:本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 承飞之咎 (blog.vfly2.com)

如果你认为我的文章有帮助,欢迎使用 RSS 订阅,也欢迎留言指正。

本文由mdnice多平台发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值