温馨提示×

怎样过滤debian syslog

小樊
56
2026-09-26 20:33:40
栏目: 智能运维

在 Debian 里,“过滤 syslog”通常指查看/提取感兴趣的日志,或让 rsyslog 只记录/转发某些内容。下面按常见需求分别说明。


一、查看日志时过滤(最常用)

1. 用 journalctl(systemd 系统,推荐)

Debian 默认用 systemd + journald。

# 按服务过滤
journalctl -u ssh.service

# 按时间
journalctl --since "2024-01-01 00:00:00" --until "2024-01-02"

# 按优先级(err 及以上)
journalctl -p err

# 按关键字
journalctl | grep "Failed password"

2. 用 grep 过滤 /var/log/syslog

grep "sshd" /var/log/syslog
grep -i "error" /var/log/syslog

3. 实时过滤

tail -f /var/log/syslog | grep "cron"

二、按设施/优先级过滤(rsyslog 规则)

Debian 使用 rsyslog,配置文件在:

/etc/rsyslog.conf
/etc/rsyslog.d/*.conf

示例 1:只记录 mail 的 error 以上

mail.err    /var/log/mail.err

示例 2:忽略某服务的日志

:programname, contains, "systemd" stop

示例 3:把 ssh 日志单独存文件

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

修改后重启:

systemctl restart rsyslog

三、丢弃/屏蔽某些日志(减少噪音)

# 忽略 cron 的 session opened/closed
:msg, contains, "session opened for user" stop
:msg, contains, "session closed for user" stop

四、常用 syslog 过滤字段

  • programname:程序名(sshd、cron)
  • hostname:主机名
  • syslogfacility(auth, mail, cron…)
  • syslogpriority(info, warn, err…)
  • msg:日志内容

五、如果你说的是“日志太多想清理”

# 查看占用
du -h /var/log

# 清理旧日志
journalctl --vacuum-size=100M

如果你能具体说:

  • 是 看日志 还是 写日志时过滤
  • 想过滤 哪种内容(服务 / 关键字 / 级别)

我可以给你更精确的配置。

0 踩