温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何过滤Syslog无用日志

发布时间:2026-09-30 07:37:14 来源:亿速云 阅读:104 作者:小樊 栏目:系统运维

过滤 Syslog 中的“无用日志”通常可以从采集端、服务端、存储/分析端三个层面来做。下面按常见场景给出可落地的方法。


一、明确什么是“无用日志”

先定义要过滤的内容,常见包括:

  • 重复频率极高的日志(如心跳、健康检查)
  • 低级别噪声(如大量 debug、info)
  • 无关设备或模块(如某台机器的 cron)
  • 已知无价值内容(如某些扫描器日志)
  • 测试环境日志混入生产

二、采集端过滤(推荐,最省资源)

1. rsyslog 过滤

按设施/级别过滤

# 丢弃 mail.debug
:programname, contains, "cron" stop
*.debug;mail.none;authpriv.none /var/log/messages

按内容丢弃

# 丢弃包含特定关键字的日志
:msg, contains, "health check" stop

只收重要级别

*.err    /var/log/error.log

重启:

systemctl restart rsyslog

2. syslog-ng 过滤

filter f_noise {
    not message("heartbeat") and
    not facility(cron) and
    level(info..emerg);
};

log {
    source(s_src);
    filter(f_noise);
    destination(d_file);
};

三、服务端 / 集中式日志过滤

1. Logstash 过滤(ELK)

filter {
  if [message] =~ /heartbeat/ {
    drop {}
  }
  if [level] == "debug" {
    drop {}
  }
}

2. Fluentd 过滤

<match **>
  @type grep
  <exclude>
    key message
    pattern /health check/
  </exclude>
</match>

四、存储与查询层过滤

1. 只索引需要的字段

  • 不索引 message 全文(改为 keyword)
  • 关闭 debug 日志索引

2. 查询时过滤

level: error and not program: cron

五、运维建议(很重要)

  • 不要一开始就全丢:先观察 1–2 周
  • 用采样而不是全丢(如只保留 10% debug)
  • 对安全/审计日志谨慎过滤
  • 保留“过滤规则说明”,方便回溯

六、一个简单实战示例

目标:只保留 error 以上 + 关键业务日志

rsyslog:

*.err    /var/log/syslog_important.log
:msg, contains, "order failed" /var/log/syslog_important.log
*.* stop

如果你愿意,可以告诉我:

  • 用的是 rsyslog / syslog-ng / 云日志
  • 是 Linux 本地 还是 集中式平台
  • 哪些日志你觉得“无用”

我可以直接帮你写可用的配置。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手