在Linux服务器上搭建高可用负载均衡器后,配置完善的监控体系是保障服务稳定性的关键,能够实时掌握负载均衡器的运行状态、节点健康情况以及流量分布,及时发现潜在故障。

监控核心指标梳理
配置监控前需要先明确需要采集的核心指标,避免监控遗漏或冗余:
- 负载均衡器节点状态:包括主备节点的存活状态、Keepalived等高可用组件的切换状态
- 流量相关指标:每秒请求数、并发连接数、入站出站带宽、请求响应延迟
- 后端节点健康度:后端服务器的存活状态、健康检查失败次数、请求转发成功率
- 系统资源指标:负载均衡器节点的CPU使用率、内存使用率、磁盘IO、网络丢包率
监控工具选型
常用的监控组合为Prometheus+Grafana+Exporter,该方案开源易用,适配大多数Linux环境:
- Prometheus:负责指标采集和存储,支持灵活的查询语法
- Grafana:负责监控数据可视化,可自定义仪表盘
- Exporter:针对不同的监控对象提供对应的采集器,比如Node Exporter采集系统指标,Nginx Exporter采集Nginx负载均衡指标
具体配置步骤
1. 部署Prometheus
首先在Linux节点下载并解压Prometheus安装包:
# 下载Prometheus安装包 wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz # 解压安装包 tar -zxvf prometheus-2.45.0.linux-amd64.tar.gz # 移动到/usr/local目录 mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus
修改Prometheus配置文件prometheus.yml,添加监控目标:
global:
scrape_interval: 15s
scrape_configs:
# 监控Prometheus自身
- job_name: "prometheus"
static_configs:
- targets: ["127.0.0.1:9090"]
# 监控负载均衡器节点系统指标
- job_name: "lb_nodes"
static_configs:
- targets: ["192.168.0.1:9100", "192.168.0.2:9100"]
# 监控Nginx负载均衡指标
- job_name: "nginx_lb"
static_configs:
- targets: ["192.168.0.1:9113", "192.168.0.2:9113"]
启动Prometheus服务:
# 进入Prometheus目录 cd /usr/local/prometheus # 启动服务,后台运行 ./prometheus --config.file=prometheus.yml > prometheus.log 2>&1 &
2. 部署Exporter采集器
在所有负载均衡器节点部署Node Exporter采集系统指标:
# 下载Node Exporter wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz # 解压并移动 tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz mv node_exporter-1.6.1.linux-amd64 /usr/local/node_exporter # 启动Node Exporter,默认端口9100 cd /usr/local/node_exporter ./node_exporter > node_exporter.log 2>&1 &
如果负载均衡器使用Nginx,还需要部署Nginx Exporter,首先确保Nginx开启了状态统计模块,在Nginx配置中添加:
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
然后部署Nginx Exporter:
# 下载Nginx Exporter wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v1.1.0/nginx-prometheus-exporter_1.1.0_linux_amd64.tar.gz # 解压并启动,指定Nginx状态地址 tar -zxvf nginx-prometheus-exporter_1.1.0_linux_amd64.tar.gz ./nginx-prometheus-exporter --nginx.scrape-uri=http://127.0.0.1/nginx_status > nginx_exporter.log 2>&1 &
3. 部署Grafana可视化
下载并安装Grafana:
# 添加Grafana源 cat <<EOF > /etc/yum.repos.d/grafana.repo [grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt EOF # 安装Grafana yum install grafana -y # 启动Grafana服务 systemctl start grafana-server systemctl enable grafana-server
访问ipipp.com:3000进入Grafana页面,默认账号密码为admin/admin,添加Prometheus数据源后,可导入现成的负载均衡器监控仪表盘模板,快速展示各项监控指标。
4. 配置告警规则
在Prometheus配置文件中添加告警规则文件路径:
rule_files: - "alert_rules.yml"
创建alert_rules.yml文件,定义常见告警规则:
groups:
- name: lb_alerts
rules:
# 负载均衡器节点宕机告警
- alert: LbNodeDown
expr: up{job="lb_nodes"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "负载均衡器节点 {{ $labels.instance }} 宕机"
description: "节点已离线超过1分钟,请立即排查"
# 后端节点健康检查失败告警
- alert: BackendHealthCheckFail
expr: nginx_http_upstream_health_checks_failed_total > 5
for: 2m
labels:
severity: warning
annotations:
summary: "后端节点健康检查失败次数过多"
description: "2分钟内健康检查失败次数超过5次,请检查后端服务状态"
# 高可用切换告警
- alert: HaSwitch
expr: keepalived_vrrp_state{state="master"} != 1
for: 30s
labels:
severity: critical
annotations:
summary: "负载均衡器高可用发生切换"
description: "主节点状态异常,备节点已切换为主节点,请排查原主节点问题"
重启Prometheus使告警规则生效,可配合Alertmanager实现邮件、短信等告警通知。
注意事项
- 所有监控组件的端口需要在防火墙中开放,避免采集失败
- 监控数据采集间隔可根据业务需求调整,核心指标建议设置为15秒到30秒
- 定期清理Prometheus的历史数据,避免磁盘空间占满
- 高可用负载均衡器的主备节点都需要部署相同的监控配置,确保监控无死角