You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:通过Fail2Ban匹配HAProxy日志429错误封禁IP的正则

解决Fail2Ban封禁HAProxy 429错误IP的正则问题

问题分析

你提供的正则未生效,核心原因是没匹配到HAProxy日志中IP地址和429状态码的正确位置:

  • 第一个正则里<HOST>的位置错误,日志里IP是直接出现在冒号前,不是:<HOST>的形式
  • 第二个正则引入了<NOSRV>字段,但你的日志示例里没有该内容,导致匹配失败

正确的正则规则

针对你给出的HAProxy日志格式,使用以下failregex即可匹配:

failregex = ^%(__prefix_line)s<HOST>:\d+ \[.*\] .* \d+/\d+/\d+/\d+/\d+ 429

规则说明

  • ^%(__prefix_line)s:匹配日志前缀部分(日期、主机名、进程信息),保证和HAProxy日志格式兼容
  • <HOST>:\d+:匹配客户端IP和端口号,对应日志里的158.118.198.219:42990
  • \[.*\]:匹配HAProxy的时间戳字段,比如[16/Feb/2023:07:43:50.242]
  • .*:匹配中间的代理、服务器等无关字段
  • \d+/\d+/\d+/\d+/\d+:匹配HAProxy的时间统计字段,对应0/0/0/1181/1181
  • 429:精准匹配目标状态码

验证方法

用fail2ban-regex工具测试正则是否生效,命令如下:

fail2ban-regex '/var/log/haproxy.log' '^%(__prefix_line)s<HOST>:\d+ \[.*\] .* \d+/\d+/\d+/\d+/\d+ 429'

如果输出显示Matches found: 1(对应你提供的日志示例),则说明正则有效。

内容的提问来源于stack exchange,提问作者Ehsan Hajian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 00:26:00