如何配置Rsyslog:记录Web服务器全量日志但排除80端口接收日志
Rsyslog服务器配置:接收Web服务器日志并排除80端口内容
以下是具体操作步骤:
编辑Rsyslog配置文件:
你可以直接修改主配置文件/etc/rsyslog.conf,或者在/etc/rsyslog.d/目录下新建独立配置文件(比如web-filter.conf),后者更便于后续维护。添加过滤与记录规则:
根据Web服务器(如Apache、Nginx)的实际日志格式,编写规则排除包含80端口的日志条目,同时将剩余日志写入指定文件。示例如下:# 针对Apache:排除含":80"的日志,剩余内容写入指定文件 if $programname == 'apache2' and not ($msg contains ':80') then /var/log/web-server/all-except-80.log & stop # 针对Nginx:替换programname为nginx即可 # if $programname == 'nginx' and not ($msg contains ':80') then /var/log/web-server/all-except-80.log # & stop注:如果你的Web服务器日志里端口标识是其他形式(如
port 80、80/tcp),请把':80'替换为对应的匹配关键词。创建日志存储目录:
执行命令创建存放过滤后日志的目录,避免Rsyslog因目录不存在报错:mkdir -p /var/log/web-server重启Rsyslog服务:
让新配置生效:systemctl restart rsyslog验证配置:
手动发送测试日志验证规则是否生效:# 发送一条含80端口的测试日志(不应被记录) logger -t apache2 "GET /index.html HTTP/1.1" 192.168.1.100:80 # 发送一条非80端口的测试日志(应被记录) logger -t apache2 "GET /admin.html HTTP/1.1" 192.168.1.100:443查看
/var/log/web-server/all-except-80.log,确认只有非80端口的日志被写入。
内容的提问来源于stack exchange,提问作者Jonas Lindberg
相关产品推荐
相关产品推荐

