You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHEL 7中Rsyslog配置咨询:仅保留系统日志至/var/log/messages

在RHEL 7中配置Rsyslog过滤日志到/var/log/messages

我在RHEL 7环境下处理过很多日志过滤的需求,刚好能解决你遇到的问题。下面是一步步的配置方法,帮你精准保留系统相关日志到/var/log/messages,同时丢弃无关内容:

1. 先备份原有配置(重要!)

在修改配置前,先备份默认的rsyslog配置文件,防止配置出错无法恢复:

cp /etc/rsyslog.conf /etc/rsyslog.conf.bak

2. 编辑Rsyslog主配置文件

打开/etc/rsyslog.conf,先找到默认的/var/log/messages规则行,一般是这样的:

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

把这一行注释掉(在开头加#),然后替换成你需要的精准过滤规则。这里的核心是明确哪些是“系统相关日志”,通常包括内核、认证、系统守护进程、syslog自身的日志,你可以根据需求调整:

# 保留内核日志
kern.*                          /var/log/messages
# 保留认证/权限相关日志
authpriv.*                      /var/log/messages
# 保留系统守护进程日志
daemon.*                        /var/log/messages
# 保留syslog服务自身的日志
syslog.*                        /var/log/messages

如果需要更精细的级别控制(比如只保留info及以上级别,排除debug),可以写成:

kern.info;kern.!emerg           /var/log/messages
authpriv.info;authpriv.!emerg   /var/log/messages
daemon.info;daemon.!emerg       /var/log/messages
syslog.info;syslog.!emerg       /var/log/messages

3. 添加丢弃无关日志的规则

在上面的规则之后,添加一行来丢弃所有其他未匹配的日志:

# 丢弃所有未匹配的日志消息
*.*                             ~

注意:~是rsyslog传统的“丢弃”动作,在RHEL 7的rsyslog版本中完全有效。如果是更新的版本,也可以用:stop,但~在这里更直观。

4. 检查自定义配置目录

如果你的系统在/etc/rsyslog.d/目录下有自定义的配置文件,也要检查这些文件,确保没有冲突的规则(比如某些文件可能会强制把特定日志写到messages里)。如果有冲突,要么修改这些文件,要么删除不需要的规则。

5. 重启Rsyslog服务并验证

配置完成后,重启rsyslog服务让配置生效:

systemctl restart rsyslog

接下来验证效果:

  • 查看/var/log/messages,确认只有你指定的系统日志存在;
  • 用测试命令生成一条无关日志,比如用户级别的日志:
    logger -p user.info "This is a test user log"
    
    这条日志应该不会出现在/var/log/messages里,说明过滤生效了。

额外提示

如果需要调试过滤规则,可以在前台运行rsyslog,实时查看日志处理情况:

systemctl stop rsyslog
rsyslogd -n -f /etc/rsyslog.conf

这样就能看到哪些日志被匹配、哪些被丢弃,方便调整规则。

内容的提问来源于stack exchange,提问作者mokazo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:00:57