温馨提示×

如何过滤linux syslog

小樊
45
2026-07-15 13:17:40
栏目: 智能运维

在 Linux 中过滤 syslog 常见有几种方式,取决于你想实时查看、按条件搜索、还是长期过滤日志。下面按使用场景给你一份实用指南。


一、实时过滤 syslog(最常用)

1️⃣ 使用 tail + grep

适合快速查看当前日志

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

只显示包含 ssh 的日志。

忽略大小写

tail -f /var/log/syslog | grep -i error

多条件

tail -f /var/log/syslog | grep -E "ssh|login|fail"

二、按时间过滤 syslog

2️⃣ 查看某一天的日志

grep "2025-01-21" /var/log/syslog

3️⃣ 查看某时间段

grep "Jan 21 10:" /var/log/syslog

三、按服务 / 程序过滤

4️⃣ 按进程名(如 sshd)

grep sshd /var/log/syslog

5️⃣ 按服务单元(systemd 系统)

journalctl -u sshd

只看 ssh 服务日志(推荐)


四、使用 journalctl(systemd 系统)

6️⃣ 基本过滤

journalctl

7️⃣ 按服务

journalctl -u nginx

8️⃣ 按时间

journalctl --since "2025-01-21 10:00" --until "2025-01-21 12:00"

9️⃣ 按优先级(错误级别)

journalctl -p err

级别:

  • emerg
  • alert
  • crit
  • err
  • warning
  • notice
  • info
  • debug

五、按 IP / 关键词过滤

10️⃣ 过滤 IP

grep "192.168.1.100" /var/log/syslog

11️⃣ 排除某些内容

grep -v "cron" /var/log/syslog

六、只查看某类日志(推荐做法)

12️⃣ 常见 syslog 文件

/var/log/syslog        # Debian/Ubuntu
/var/log/messages      # RHEL/CentOS
/var/log/auth.log      # 登录、sudo、ssh

例如只看登录相关:

grep "Failed password" /var/log/auth.log

七、长期过滤(rsyslog 规则)

13️⃣ 按条件写入不同文件

编辑:

/etc/rsyslog.conf
或
/etc/rsyslog.d/10-custom.conf

示例:把 ssh 日志单独存放

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

重启:

systemctl restart rsyslog

八、快速选择方案 ✅

需求 推荐命令
实时看 `tail -f syslog
看某服务 journalctl -u 服务名
看错误 journalctl -p err
查历史 grep 关键词 /var/log/syslog
永久过滤 rsyslog 规则

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

  • Linux 发行版
  • syslog 还是 journald
  • 想过滤什么(如 ssh、错误、某个 IP)

我可以直接给你一条“可复制即用”的命令。

0