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

如何配置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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:40:29