从 Red Hat Enterprise Linux 7 开始,已经从传统的 syslog 迁移到 rsyslog,因此在 syslog 的工作方式方面有多个语法更改。
假设我的 syslog 文件满了。
但是包含很多我不需要保留的日志消息,
那么我想把这些不重要的日志单独保存在单独的文件,以便 syslog 仅包含日常使用的重要消息,并避免频繁的日志轮换 syslog。
下面是操作示例
假设syslog中有很多下面这样的日志:
Jun 27 08:10:01 Ban17-inst01-a systemd: Started Session 2218 of user root. Jun 27 08:10:01 Ban17-inst01-a systemd: Starting Session 2218 of user root. Jun 27 08:10:01 Ban17-inst01-a systemd: Started Session 2219 of user root.
我们想要将所有这些日志消息重定向到一个单独的文件。
在 /etc/rsyslog.d 中创建单独的配置文件
注意:默认情况下,/etc/rsyslog.d 中的所有配置文件都被 rsyslog.conf 考虑
我们可以通过在 /etc/rsyslog.conf 中查找此条目来验证这一点
# Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*
所以我们创建一个文件
# touch /etc/rsyslog.d/rsyslog_loginauth.conf # vim /etc/rsyslog.d/rsyslog_loginauth.conf if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-") then /var/log/login_auth & stop
重启rsyslog服务
# systemctl restart rsyslog
通过与节点建立新的 ssh 连接来验证新更改,所有这些日志消息都将重定向到 /var/log/login_auth 而不是 /var/log/messages
日期:2020-06-02 22:17:03 来源:oir作者:oir