温馨提示×

如何过滤CentOS message信息

小樊
49
2026-07-20 16:04:14
栏目: 智能运维

在 CentOS 中,/var/log/messagesrsyslog 记录的系统日志(包含内核、服务、通用信息)。如果你是想过滤、查看或屏蔽某些 message 信息,常见做法如下:


一、查看 /var/log/messages 时过滤内容

1️⃣ 使用 grep 过滤关键词

grep "error" /var/log/messages
grep -i "fail" /var/log/messages

只看某服务:

grep "sshd" /var/log/messages

排除某些内容:

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

2️⃣ 实时查看并过滤

tail -f /var/log/messages | grep sshd

二、使用 journalctl(CentOS 7+)

CentOS 7 以后很多日志由 systemd-journald 管理。

1️⃣ 查看系统日志

journalctl

2️⃣ 按服务过滤

journalctl -u sshd
journalctl -u nginx

3️⃣ 按时间过滤

journalctl --since "2025-01-01" --until "2025-01-10"
journalctl --since "1 hour ago"

4️⃣ 按优先级过滤(推荐)

journalctl -p err
journalctl -p warning

优先级:

0 emerg
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug

三、从 rsyslog 层面过滤(不再记录某些日志)

1️⃣ 编辑 rsyslog 配置

vim /etc/rsyslog.conf
# 或
vim /etc/rsyslog.d/filter.conf

2️⃣ 示例:屏蔽包含某关键词的日志

:msg, contains, "cron" stop

或屏蔽某服务:

:programname, isequal, "sshd" stop

3️⃣ 重启 rsyslog

systemctl restart rsyslog

⚠️ 注意:

  • 这是 丢弃日志,不是隐藏
  • 配置错误可能导致日志丢失

四、只记录指定级别日志

*.info;mail.none;authpriv.none;cron.none    /var/log/messages

含义:

  • 记录 info 及以上
  • 排除 mail / authpriv / cron

五、按场景推荐方案

需求 推荐方式
临时查看 grep / journalctl
实时查看 tail -f + grep
按服务查 journalctl -u
永久屏蔽 rsyslog 规则
生产环境 不建议直接丢弃日志

六、排查建议

如果 /var/log/messages 日志太多,通常原因:

  • 某个服务疯狂打印日志
  • kernel / network / disk 报错
  • cron / systemd 重复执行

可以先用:

journalctl -p err

定位问题源头。


如果你能具体说明:

  • ✅ CentOS 版本(6 / 7 / 8 / Stream)
  • ✅ 想过滤的是 哪类日志
  • ✅ 是 临时查看 还是 永久屏蔽

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

0