Rsyslog 是 Linux 系统中广泛使用的日志处理工具,它提供了强大的日志处理功能,包括日志收集、过滤、转发等。下面我们将深入探讨您提供的 rsyslog 配置文件中的每个部分及其作用。
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$SystemLogRateLimitInterval 0 # turn off rate limit
$SystemLogRateLimitBurst 0 # turn rate limit off
module(load="imfile")
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile /run/log/journal/imjournal.state
*.info;mail.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
daemon.debug /var/log/daemon.log
cron.info /var/log/cron
kern.emerg /var/log/kern_emerg.log
kern.emerg /dev/console
kern.* /var/log/kernel.log
auth.info;mail.info /var/log/secure.log
mail.* -/var/log/mail
mail.info -/var/log/mail.info
mail.warning -/var/log/mail.warn
mail.err /var/log/mail.err
news.crit -/var/log/news/news.crit
news.err -/var/log/news/news.err
news.notice -/var/log/news/news.notice
*.=warning;*.=err -/var/log/warn
*.crit /var/log/warn
*.*;mail.none;news.none -/var/log/messages
local0,local1.* -/var/log/localmessages
local2,local3.* -/var/log/localmessages
local4,local5.* -/var/log/localmessages
local6,local7.* -/var/log/localmessages
$FileCreateMode 0640
$ModLoad imtcp
基本模块加载
-
$ModLoad imuxsock:此命令加载
imuxsock
模块,它提供对本地系统日志的支持,比如通过logger
命令生成的日志。 -
$ModLoad imjournal:加载
imjournal
模块,使 rsyslog 能够访问 systemd 的日志系统(journal)。
日志速率限制
- S y s t e m L o g R a t e L i m i t I n t e r v a l 0 ∗ ∗ 和 ∗ ∗ SystemLogRateLimitInterval 0** 和 ** SystemLogRateLimitInterval0∗∗和∗∗SystemLogRateLimitBurst 0:这两个设置一起工作,关闭了日志的速率限制功能。这意味着不论日志量有多大,rsyslog 都会处理所有日志,而不会丢弃或延迟处理。
文件和模板设置
-
$WorkDirectory:设置 rsyslog 工作目录为
/var/lib/rsyslog
,用于存储状态文件等。 -
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat:定义默认的日志模板为传统格式。
-
$IncludeConfig /etc/rsyslog.d/*.conf:包含
/etc/rsyslog.d/
目录下所有.conf
结尾的配置文件,实现配置的模块化管理。 -
$OmitLocalLogging on:关闭本地消息的日志记录。
-
$IMJournalStateFile:指定 systemd journal 状态文件的位置。
日志规则和目标
以下是配置文件中定义的各种日志规则和它们的目的地:
-
不同优先级日志的目的地:
- 如
*.info;mail.none
指定信息级别(除邮件外)的日志文件路径为/var/log/messages
。 authpriv.*
指定安全和隐私相关的日志存放在/var/log/secure
。mail.*
、cron.*
等指定了不同类型的日志应存放在哪里。
- 如
-
特殊日志处理:
*.emerg :omusrmsg:*
表示紧急级别的日志会发送给所有在线用户。uucp,news.crit
指定特定应用的日志存放路径。
-
日志文件的创建模式:
$FileCreateMode 0640
设置新创建的日志文件权限为 0640。
网络模块加载
- $ModLoad imtcp:加载
imtcp
模块,允许 rsyslog 接收通过 TCP 协议发送的日志。
总结
这个配置文件展示了 rsyslog 的强大和灵活性。通过精确控制日志的记录方式和目的地,系统管理员可以确保关键信息被妥善处理和存储,同时避免信息泛滥。不论是本地日志、系统日志还是网络日志,rSyslog 都提供了有效的管理方法。此外,配置文件中的模块化和文件包含策略,使得日志系统的维护变得更加容易和高效。