温馨提示×

linux syslog怎么过滤

小樊
46
2026-09-04 20:23:43
栏目: 智能运维

在 Linux 里,“syslog 过滤”通常可以从 三个层面 来做,取决于你想过滤什么、在哪里过滤:


一、在 rsyslog / syslog-ng 里过滤(最常用)

1️⃣ rsyslog 过滤(最常见)

Facility + Priority 过滤

# 只记录 mail 的 error 以上
mail.err    /var/log/mail.err

# 忽略 cron 的 info
cron.info   ~

程序名(programname)

:programname, isequal, "sshd"    /var/log/sshd.log

内容(message)

:msg, contains, "error"    /var/log/error.log

丢弃某些日志

:msg, contains, "heartbeat"   stop

修改后:

sudo systemctl restart rsyslog

2️⃣ syslog-ng 过滤

filter f_ssh { program("sshd"); };
destination d_ssh { file("/var/log/ssh.log"); };
log { source(s_src); filter(f_ssh); destination(d_ssh); };

二、用 journalctl 过滤(systemd 系统)

按服务

journalctl -u nginx

按优先级

journalctl -p err

按时间

journalctl --since "10 min ago"

按关键字

journalctl | grep ssh

三、查看 / 分析时过滤(不修改配置)

实时过滤

tail -f /var/log/syslog | grep ssh

按字段过滤

grep "authentication failure" /var/log/auth.log

常见场景示例

只保留错误日志

*.err    /var/log/errors.log

屏蔽某程序日志

:programname, isequal, "dockerd"   stop

不同服务写不同文件

local0.*    /var/log/app.log

如果你能说清楚:

  • 用的是 rsyslog / syslog-ng / journald
  • 忽略 / 分离 / 高亮 哪类日志

我可以给你一份可直接用的配置

0