若无单独说明,按照文章代码块中命令的顺序,一条一条执行,即可实现目标。
适用系统:Debian 系发行版,包括 Ubuntu ,其他发行版按流程稍改命令一般也可。
完成部署预计时间:15 分钟 (但是看一遍也要 15 分钟,所以是 30分钟 ?)
文章里的一键脚本仅适用于 amd64 系统
Grafana,Prometheus 和 Node Exporter 是一套流行的开源监控工具,用于收集,存储,查询系统和应用程序的各种使用率,并可视化显示。每个工具都有特定的功能:
由于篇幅过长,更好的阅读体验,请移步博客: blog.vfly2.com/2023/07/a-s…
资源使用率
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
为前缀。
在监控服务器上开放防火墙,已完成✔
如果不想使用脚本,或者希望了解安装过程,请查看原文: blog.vfly2.com/2023/07/a-s… ,考虑篇幅过长,因此这么安排。
在监控服务器上安装 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_name
为 remote_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
。单击链接查看统计数据。
安装并部署 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,请按照以下步骤操作:
3000
端口。例如,输入 http://ip_addr:3000
,将 ip_addr
替换为实际 IP 地址。admin
。当出现提示时,将密码更改为更安全的值。http://localhost:9090
。大多数其他设置可以保留默认值。Data source is working
。使用 Grafana ,导入仪表板模板
可以创建自定义仪表板。然而,Prometheus 已经创建了一个仪表板来支持 Node Exporter,名为 Node Exporter Full
,下面是导入的流程。
要创建自定义仪表板,请单击仪表板按钮,该按钮类似于四个正方形。然后选择+新建仪表板。有关更多信息,请参阅 Grafana 构建仪表板指南。
1860
。然后选择【Load】。Prometheus
作为数据源,然后单击【Import】按钮。Node Exporter Full
仪表板立即生效。它显示客户端节点的性能指标和状态,包括内存、RAM 和 CPU 详细信息。原文链接: blog.vfly2.com/2023/07/a-s…
版权声明:本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 承飞之咎 (blog.vfly2.com) 。
如果你认为我的文章有帮助,欢迎使用 RSS 订阅,也欢迎留言指正。
本文使用 文章同步助手 同步