前言
一直以来都想做一个自己喜欢的面板,自从看到 探针 Grafana + Prometheus 之比 Docker 更简单的部署流程 和 Grafana + Prometheus + fping-exporter 搭建网络监控 这两篇帖子,便决定用 Grafana 来实现我的愿望,做出来了的同时也 push 上了 Grafana 的官网 (Dashboard ID 22403),大家可以方便地导入到自己的 Grafana 里^ ^
面板功能
这是一个基于 Grafana,通过 Node Exporter 和 Prometheus 来获取并收集被监控数据并投射的面板。主要功能有 CPU / 内存 / 硬盘使用率、网络速率 / 粗略流量统计 / 重传率 等信息的查看,其中通过各式图表得到几种不同的分析视角。上层板块是所有在线机器的总数据,下层折叠板块是选定机器更详细的资源信息。
图例如下:
安装方式
1️⃣ Grafana (来自 Grafana.com) on Debian/Ubuntu [主机]
- 安装必要的软件包
sudo apt-get install -y apt-transport-https software-properties-common wget
- 载入 GPG 密钥
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
- 选择稳定版
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
- 安装
sudo apt-get update && sudo apt-get install grafana
- 反代 可搜索相关教程
2️⃣ Prometheus [主机]
wget -qO- 'https://raw.githubusercontent.com/AhFeil/bash-script/main/install-prometheus.sh' | sudo bash
3️⃣ Node Exporter [主机 + 被监控机器]
wget -qO- 'https://raw.githubusercontent.com/AhFeil/bash-script/main/install-node_exporter.sh' | sudo bash
同时也推荐通过防火墙仅为监控服务器放行,命令参考(ufw):
sudo ufw allow from 监控服务器IP to any port 9100 comment 'node_exporter'
使用方式
参考 探针 Grafana + Prometheus 之比 Docker 更简单的部署流程,将面板ID
1860
改为我的
22403
/etc/prometheus/prometheus.yml 中添加名为 node_exporter 的 job,可参考:
- job_name: "node_exporter"
scrape_interval: 10s
static_configs:
- targets: ["IP1:9100"]
labels:
instance: '实例1'
- targets: ["IP2:9100"]
labels:
instance: '实例2'
限于篇幅,更详细教程请参考原帖,或自行搜寻
硬件要求 (个人经验)
10台机器在 1C / 1G内存 / 10G硬盘 的环境下堪堪够用,如果需要监控更多机器,需考虑更高的主机配置
已知问题
- 网络速率和流量统计限定了 eth. ens. 等五个常见接口来统计出入站数据,可能会有部分机器(比如一些 AWS)的网络接口不在我的收集范围内,从而显示不出一些网络数据,之后我想好该怎么限定(或者要不要限定)后会更新,也欢迎大佬建议
- "provide" 不是正确的第三人称单数...
其他面板
本帖的 Node Information 是我目前唯一"算是"完整制作好的面板,也许会有一些 bug 以及不完善的地方,大家如果使用过程中遇到了,也欢迎告诉我。感兴趣的伙伴也关注一下 Grafana 面板,目前已知能做且比较现成的还有延迟测试和流媒体解锁测试的功能,或许 Grafana 就这么流行起来了呢?我自己还在弄用 Fping Exporter 来记录延迟的面板,以及本面板的中文版本,满意了会再发布~