WAF监控怎么做?该监控哪些指标

速读摘要:WAF 监控分三层——可用性监控(外部探针检查网站能否访问)、性能监控(QPS、带宽、延迟是否正常)、安全监控(拦截数、攻击类型变化)。关键指标包括 HTTP 状态、响应时间、回源成功率、证书有效期等。本文给出完整指标清单和告警阈值建议。
WAF 监控怎么做?
WAF 性能与稳定性篇 · 第 69 问 · 主机吧 WAF 知识库

一、为什么监控不能只看 WAF 控制台

WAF 控制台提供的是”WAF 视角”的数据。但你需要的是”用户视角”——从外部看你的网站到底能不能访问、快不快。这两者有时会不一致:WAF 显示正常,但用户实际访问不了(比如 DNS 问题、源站问题)。

所以要建立”外部 + 内部”结合的监控体系。

二、三层监控体系

2.1 第一层:可用性监控(最重要)

从外部多地探测你的网站,独立验证”用户能否访问”。这是最贴近真实体验的监控。

监控项:
  ├─ HTTP 状态码(期望 200)
  ├─ 响应时间(期望 < 3 秒)
  ├─ 首页内容校验(关键字是否存在)
  ├─ 多地探测(国内多城市 + 海外)
  ├─ 多运营商(电信/联通/移动)
  └─ 探测间隔(1-5 分钟)

推荐工具:
  ├─ 商业:UptimeRobot、阿里云站点监控、腾讯云拨测
  ├─ 自建:Prometheus + blackbox_exporter
  └─ 简易:crontab + curl + 告警脚本

2.2 第二层:性能监控

监控项:
  ├─ 总 QPS / 峰值 QPS
  ├─ 带宽使用(上行/下行)
  ├─ 并发连接数
  ├─ 平均响应时间 + P95/P99 分位
  ├─ 回源成功率
  ├─ 源站响应时间
  └─ 缓存命中率

2.3 第三层:安全监控

监控项:
  ├─ 拦截请求数(总量 + 趋势)
  ├─ 攻击类型分布变化
  ├─ Top 攻击源 IP
  ├─ 被攻击 URI 排行
  ├─ 人机验证触发次数
  └─ 异常规则命中

三、关键指标与告警阈值

指标正常值告警阈值告警级别
HTTP 状态200非 200P0
响应时间< 2s> 5s 持续 2 分钟P0
回源成功率> 99.9%< 99%P1
拦截数激增基线波动突增 300%P1
5xx 错误率< 0.5%> 3%P1
CPU(源站)< 60%> 85% 持续 5 分钟P1
带宽基线内> 基线 2 倍P2
证书有效期> 30 天< 15 天P1
并发连接基线内> 基线 3 倍P2

四、自建监控脚本示例

#!/bin/bash
# 简易可用性监控脚本
# 放入 crontab,每 2 分钟执行一次

URL="https://你的域名/"
LOG="/var/log/uptime.log"
WEBHOOK="你的企业微信机器人地址"

CODE=$(curl -sk -o /dev/null -w "%{http_code}" --max-time 10 "$URL")
TIME=$(curl -sk -o /dev/null -w "%{time_total}" --max-time 10 "$URL")

if [ "$CODE" != "200" ]; then
    MSG="⚠️ 站点异常!状态码:$CODE"
    curl -s -X POST "$WEBHOOK" \
      -H "Content-Type: application/json" \
      -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$MSG\"}}"
    echo "$(date) FAIL $CODE" >> $LOG
else
    # 响应超 5 秒也告警
    if (( $(echo "$TIME > 5" | bc -l) )); then
        MSG="⚠️ 站点响应过慢:${TIME}s"
        curl -s -X POST "$WEBHOOK" \
          -H "Content-Type: application/json" \
          -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$MSG\"}}"
    fi
    echo "$(date) OK $CODE ${TIME}s" >> $LOG
fi

五、监控的实施顺序

  1. 先上可用性监控:这是最基本的,任何站点都必须有
  2. 再上告警通道:企业微信/钉钉/短信,保证告警能触达
  3. 加性能监控:QPS、延迟、回源成功率
  4. 加安全监控:拦截数趋势、攻击类型变化
  5. 建看板:把关键指标集中展示,一眼看全貌
  6. 定期复盘:每周看监控数据,调整阈值

六、监控的两个误区

误区后果正确做法
只监控 WAF 控制台WAF 说正常但用户访问不了加外部探针监控
所有指标都告警告警风暴,真正重要的被忽略分级告警,P0 才电话
只看平均值掩盖了尖峰问题看 P95/P99 分位
探测点单一本地正常但外地不通发现不了多地点多运营商探测

七、小结

WAF 监控要建立”可用性 + 性能 + 安全”三层体系,重点是从外部验证用户视角的真实体验。可用性监控(HTTP 状态 + 响应时间)是最基本的一层,必须优先建设。告警要分级,避免风暴。配合多地点探测和分位数统计,才能真正发现问题而不是被平均值蒙蔽。

给TA打赏
共{{data.count}}人
人已打赏
在线客服
在线客服
热线电话
QQ客服
电子邮箱
suduwangluo