温馨提示×

温馨提示×

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

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

如何过滤Syslog无效日志

发布时间:2026-09-09 18:38:59 来源:亿速云 阅读:97 作者:小樊 栏目:系统运维

过滤 Syslog 中的“无效日志”通常指丢弃噪声、重复、无关或不符合规范的日志,只保留有价值的信息。可以从采集端、服务端、分析端三个层面来做。下面按“实践可落地”的方式说明。


一、先明确:什么是“无效日志”

常见类型包括:

  • 调试/测试日志(debug、noise)
  • 重复日志(同一错误刷屏)
  • 非业务系统日志(如容器心跳)
  • 不符合 RFC3164 / RFC5424 格式
  • 低优先级日志(如 info 但无价值)
  • 已知白名单事件(如健康检查)

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

1. rsyslog 过滤(最常用)

按优先级过滤

# 丢弃 debug 级别
if ($syslogseverity <= 7) then stop

按程序名过滤

if ($programname == "cron") then stop

按正则过滤

if ($msg contains "heartbeat") then stop

丢弃不符合格式

if ($syslogfacility-text == "kern" and $msg == "") then stop

2. syslog-ng 过滤

filter f_noise {
    not match("heartbeat") and
    not priority(debug);
};

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

三、服务端过滤(集中式 Syslog)

1. 使用 logstash(ELK 场景)

filter {
  if [priority] == 7 {
    drop {}
  }

  if [message] =~ /heartbeat/ {
    drop {}
  }
}

2. 使用 Vector

[transforms.filter]
type = "filter"
condition = '.message contains "noise"'

四、按“规则维度”系统过滤

维度 示例
主机 丢弃测试机日志
程序 丢弃 dockerd
级别 只保留 warning+
关键字 丢弃 ping ok
频率 同类日志限流

频率限流(rsyslog)

module(load="impstats")
if ($programname == "sshd") then {
    if (repeated_msg_reduction()) then stop
}

五、格式校验(防无效数据)

  • 启用 RFC5424
  • 丢弃:
    • 无 timestamp
    • 无 host
    • 无 tag

rsyslog 示例:

if ($timereported == "") then stop

六、推荐实践方案(简单有效)

小规模

rsyslog 本地规则 + 白名单

中大型

采集端粗过滤 → 服务端细过滤 → 分析端采样

云平台

Syslog → Kafka → Flink 去重 → ES


七、常见误区

  • ❌ 只靠分析端过滤(太晚、太贵)
  • ❌ 一刀切丢弃 debug(可能漏问题)
  • ❌ 正则太复杂(性能差)

如果你能告诉我:

  • 用的 rsyslog / syslog-ng / 云平台
  • 日志量(条/秒)
  • 什么是你眼中的“无效”

我可以直接给你可复制的配置。

向AI问一下细节

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

AI
助
手