linux负载均衡监控平台用开源栈实现:prometheus采集nginx/haproxy/keepalived指标,grafana可视化,alertmanager告警,覆盖设备状态、后端健康、流量分发及高可用组件。

Linux 系统部署负载均衡器监控平台,核心是把「负载均衡器运行状态」和「后端服务器健康状况」可视化、可告警、可持续追踪。不依赖商业方案,用开源组合就能搭出实用可靠的监控体系。
监控平台要覆盖的关键维度
- 负载均衡器自身:CPU/内存/连接数/请求速率/错误率(5xx/4xx)
- 后端服务器(RS):是否在线、响应延迟、失败次数、权重变化
- 流量分发效果:各节点请求数占比、会话保持命中率(如用 ip_hash)、超时重试情况
- 高可用组件(如 Keepalived):VIP 是否漂移、主备状态、故障切换日志
推荐轻量高效的技术栈(生产验证过)
- 数据采集:Prometheus(拉取 Nginx/HAProxy/Keepalived 暴露的指标)
- 可视化:Grafana(接入 Prometheus 数据源,复用社区模板)
- 告警:Alertmanager(配置阈值规则,邮件/钉钉/企业微信推送)
- 指标暴露层:
- Nginx:启用
nginx-prometheus-exporter(官方推荐,监听/metrics) - HAProxy:开启内置 stats 接口(
stats uri /haproxy?stats),再用haproxy-exporter抓取 - Keepalived:通过
keepalived_exporter(需启用 vrrp stats socket)或解析/proc下状态文件
- Nginx:启用
快速落地三步操作
-
安装并配置 exporter
Zynq Linux Hardware Debug下载Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
# 以 nginx-exporter 为例(假设 Nginx 运行在本机 80 端口) wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.12.0/nginx-prometheus-exporter_0.12.0_linux_amd64.tar.gz tar -xzf nginx-prometheus-exporter_*.tar.gz ./nginx-prometheus-exporter -nginx.scrape-uri http://127.0.0.1:80/stub_status
注意:Nginx 需先启用
stub_status模块(在 server 块中加location /stub_status { stub_status; }) -
配置 Prometheus 抓取任务(
prometheus.yml)scrape_configs: - job_name: 'nginx' static_configs: - targets: ['localhost:9113'] # nginx-exporter 默认端口 - job_name: 'haproxy' static_configs: - targets: ['localhost:9101'] # haproxy-exporter 默认端口 -
导入 Grafana 监控看板
- 访问 grafana.com/dashboards 搜索关键词:
nginx exporter(ID 10525)、haproxy exporter(ID 12025)、keepalived exporter(ID 15772) - 在 Grafana 中 Import 对应 ID,选择正确的 Prometheus 数据源即可
- 访问 grafana.com/dashboards 搜索关键词:
必须做的安全与稳定性加固
- 所有 exporter 的 metrics 接口只允许内网访问(用防火墙或 Nginx 反向代理加 Basic Auth)
- Prometheus 的
scrape_timeout建议设为10s,避免因某台 RS 响应慢拖垮整个采集 - Alertmanager 至少配置两条告警规则:
-
haproxy_backend_servers_up == 0(后端全宕) -
nginx_http_requests_total{code=~"5.."}[5m] / nginx_http_requests_total[5m] > 0.05(5xx 错误率超 5%)
-
不复杂但容易忽略。










