Prometheus+Grafana监控大屏查看中转流量
当你手上有中转节点(例如代理转发服务器、VPN出口),实时掌握它的带宽使用情况非常重要。
本文用Prometheus + Grafana这套经典组合,帮你把中转流量变成一目了然的大屏图表。
整套流程对新手友好,每一步都给出了命令和配置示例。
准备工作:确认环境与关键信息
操作前请先确保两件事:
- Prometheus 和 Grafana 已安装。如果没有,优先部署新版(参考官方文档),本文不重复安装步骤。
- 获取中转节点的外网网卡名称。登录中转服务器执行
ip a或ifconfig,找到代表公网流量的接口,常见的是eth0、ens3或bond0,记下这个名字,后面会用到。
安装 Node Exporter 采集网络流量
Prometheus 不会直接从系统拿数据,需要通过 Exporter 采集。
这里我们用最通用的 Node Exporter。
- 下载并解压 Node Exporter(以 Linux amd64 为例):
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvf node_exporter-1.7.0.linux-amd64.tar.gz
sudo cp node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
- 创建 systemd 服务(以便开机自启和管理):
sudo cat > /etc/systemd/system/node_exporter.service << 'EOF'
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=nobody
ExecStart=/usr/local/bin/node_exporter --collector.netstat --collector.network
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter
- 确认 Exporter 正常运行:
sudo systemctl status node_exporter,并验证抓取端口(默认 9100):curl http://localhost:9100/metrics | grep node_network。能看到大量node_network_receive_bytes_total等指标表示成功。
注意:--collector.network 默认已启用,这里显式声明确保采集网卡流量。
配置 Prometheus 抓取节点数据
在 Prometheus 服务器上修改其配置文件 prometheus.yml,加上中转节点的 job:
scrape_configs:
- job_name: 'transit_node'
static_configs:
- targets: ['中转IP:9100']
将 中转IP 换成实际中转服务器的内网或公网 IP(确保 9100 端口可达)。
然后重启 Prometheus:sudo systemctl restart prometheus,等待几秒。
在 Grafana 上搭建流量大屏
- 登录 Grafana(默认 http://服务器IP:3000,账号 admin/admin)。
- 添加 Prometheus 数据源:Configuration > Data Sources > Add data source,填写 Prometheus 地址(例如
http://Prometheus服务器IP:9090),保存并测试。 - 导入现成仪表盘:Grafana 社区有大量网络监控面板。推荐使用仪表盘 ID 12633(Node Exporter Full),直接通过 + > Import 导入,选择刚创建的数据源。
- 进入仪表盘后找到 Network(网络)部分,你会看到多个网卡的实时流量图。通过左上角的下拉菜单选择你的外网网卡(如 eth0),即可看到中转流量的实时速率、总流入/出流量。
常见问题与避坑指南
- 仪表盘中看不到任何数据:检查 Data Source 是否连通;确认 Prometheus 的 target 状态(Status > Targets),应为 UP;如果 target 是 UP 但没有指标,检查中转服务器的防火墙是否放行 9100 端口。
- 流量显示为 0:很可能选错了网卡接口。回
ip a确认正确的接口名,并在仪表盘变量里切换。 - 想监控多台中转节点:直接在 Prometheus job 的
targets列表里添加多个 IP:9100,Grafana 仪表盘支持多实例切换。 - 数据保留时间太短:默认 Prometheus 本地存储 15 天,如果需要更长时间,修改
--storage.tsdb.retention.time参数(例如60d)。
验证监控效果
完成上述步骤后,在 Grafana 大屏上,你应该能看到一条实时曲线,随着你向中转节点发送测试流量(例如用 iperf3 或直接下载文件),曲线会立即抬升。
如果一切正常,你的中转流量监控大屏就搭建成功了。
如果你还需要监控其他维度(如 CPU、内存),同一块仪表盘已自动包含;
若需定制预警规则,可以基于 Prometheus 配置告警,再配合 Grafana 告警通知。
建议先从本文基础方案开始,逐步扩展。