技术日志

记录分享邓杰律师从事网络技术工作点点滴滴。

利用rsyslog 实时提取 444/403 日志

点击复制标题网址

——温馨提示——

已复制到剪贴板,可粘贴到下一处。


时间:   查看:1022

编者按:

rsyslog(Rocket-fast System Log)是一个开源、高性能、模块化的日志处理系统,广泛用于 Linux/Unix 系统中,是传统 syslog 的现代化增强替代品。

第一步  创建文件

/etc/rsyslog.d/99-waf-filter.conf

在文件中输入:

# 加载 imfile 模块(监控普通日志文件) module(load="imfile") # 定义原始日志格式模板(不加额外时间戳) template(name="RawMsg" type="string" string="%msg% ") # 监控宝塔所有站点的 access log input(type="imfile"      File="/www/wwwlogs/*.log"      Tag="bt-nginx"      Severity="info"      Facility="local7"      readMode="2"      freshStartTail="on") # 过滤包含 " 444 " 或 " 403 " 的行(注意空格!) if $syslogtag == 'bt-nginx' and ($msg contains ' 444 ' or $msg contains ' 403 ') then {    action(type="omfile" file="/www/wwwlogs/waf_block.log" template="RawMsg")    stop }

💡 说明:

Tag="bt-nginx":自定义标签,用于后续匹配

readMode="2":按行读取,兼容 Nginx 日志格式

freshStartTail="on":首次运行时从文件末尾开始,避免导入历史日志

保存并退出

第二步  创建目标日志文件

/www/wwwlogs/waf_block.log

第三步  重启

systemctl restart rsyslog

第四步 验证是否生效

curl -H "User-Agent: python-requests" https://你的域名/1234.php


本文标签

发表评论:

评论记录:

未查询到任何数据!