速读摘要:WAF 告警的价值在于"第一时间知道出事了"。配置要点是分级通知——DDoS、站点不可用走电话/短信,大量拦截、暴力破解走企微,一般异常用邮件即可。阈值设置要避免告警风暴,也要防止漏报。本文讲清告警分级、渠道选择和阈值建议。

一、告警的意义:抢时间
攻击发生时,你越早知道,损失越小。没人盯着的 WAF 只能事后追溯,不能及时处置。所以告警配置和防护规则同等重要。
二、告警分级模型
| 级别 | 典型事件 | 通知渠道 | 响应要求 |
|---|---|---|---|
| P0 紧急 | DDoS 攻击、站点 5xx 激增、域名不可访问 | 电话 + 短信 + 企微 | 立即处理 |
| P1 重要 | 暴力破解、大规模 CC、Webshell 上传告警 | 短信 + 企微 | 30 分钟内 |
| P2 一般 | 单类攻击量明显上升、规则命中异常 | 企微 + 邮件 | 当天处理 |
| P3 提示 | 零散可疑请求、新出现的扫描源 | 仅记录,周报汇总 | 按周复盘 |
分级的核心目的是避免告警疲劳——如果所有事件都发短信,你会很快开始忽略它们,真正重要的告警反而被淹没。
三、必设的几类告警
3.1 可用性告警(最高优先级)
监控项:
├─ 网站返回码 5xx 比例 > 5%
├─ 网站平均响应时间 > 5 秒
├─ 站点无法访问(连续 3 次探测失败)
└─ SSL 证书剩余有效期 < 15 天
动作:电话 + 短信
3.2 攻击量告警
监控项:
├─ 单分钟拦截数 > 500 次
├─ 单 IP 被拦次数 > 100 次 / 分钟
├─ 某攻击类型(如 SQL 注入)突增 300%
└─ 流量带宽突增 > 基线 3 倍
动作:短信 + 企微
3.3 业务安全告警
监控项:
├─ 登录失败次数激增(可能被爆破)
├─ 后台登录来自非常用 IP
├─ 检测到 Webshell 上传尝试
└─ 敏感文件被访问(.env/.git/.sql)
动作:企微 + 邮件
四、阈值怎么定
阈值没有标准答案,要根据自己的业务量来定。方法是:统计正常情况下的峰值,把阈值设在峰值的 2-3 倍。
# 先统计基线:连续 7 天每小时的请求量峰值
awk '{print $4}' /www/wwwlogs/access.log | cut -d: -f1,2 \
| sort | uniq -c | sort -rn | head -10
# 假设正常峰值是 5000 次/小时
# 则告警阈值可设为 12000-15000 次/小时
| 指标 | 阈值建议 |
|---|---|
| 请求量 | 正常峰值 × 2.5 |
| 单 IP 频率 | 正常用户 × 5 |
| 拦截比例 | 拦截数 > 总请求数 20% |
| 5xx 比例 | > 5% 持续 1 分钟 |
| 响应时间 | > 3 秒持续 2 分钟 |
五、通知渠道的选择
| 渠道 | 优点 | 缺点 | 适用级别 |
|---|---|---|---|
| 电话 | 必达,无法忽略 | 打扰性强 | P0 |
| 短信 | 必达性较好 | 有成本 | P0/P1 |
| 企业微信/钉钉 | 免费、可富文本、有群 | 可能被静音 | P1/P2 |
| 邮件 | 可归档、可长文 | 及时性差 | P2/P3 |
| Webhook | 可对接自建系统 | 需开发 | 任意 |
建议至少配两个渠道互为备份。
六、避免告警风暴
- 设置”抑制期”:同一事件 5 分钟内只通知一次
- 设置”聚合”:多个相似事件合并成一条通知
- 分级投递:P3 只进日报,不进实时通道
- 定期复盘:把长期不处理的告警降级或关闭
- 设置值班轮转:避免所有人都以为”别人会看”
七、小结
告警配置的核心是”分级 + 精准 + 不过载”。P0 事件走电话保证必达,P1 走短信,其余走企微和邮件。阈值定在正常峰值的 2-3 倍,并设置抑制期避免刷屏。定期复盘告警有效性,才能让每一条通知都值得你睁眼看一眼。
