Linux环境下使用rsyslog管理日志(原文)
在 Linux 系统中,日志文件记录了系统中包括内核、服务和其它应用程序等在内的运行信息。
在我们解决问题的时候,日志是非常有用的,它可以帮助我们快速的定位遇到的问题。
在 Cent OS 6中,日志是使用rsyslogd
守护进程进行管理的,该进程是之前版本的系统中syslogd
的升级版,对原有的日志系统进行了功能的扩展,提供了诸如过滤器,日志加密保护,各种配置选项,输入输出模块,支持通过 TCP 或者 UDP 协议进行传输等。
rsyslog
的配置文件为 /etc/rsyslog.conf , 大多数日志文件都位于 /var/log/ 目录中。
定位日志文件
大多数日志文件都位于 /var/log/ 目录中。在该目录中,你可能注意到很多日志文件末尾包含一串数字(如 maillog-20150301 ),这说明这些日志文件经过了日志转储,这样可以避免日志文件过大。
在软件包
logrotate
中包含了一个定时任务,根据/etc/logrotate.conf
文件和/etc/logrotate.d/
目录中的的配置定期的转储日志文件。
Rsyslog基本配置
Rsyslog 的主要配置文件为 /etc/rsyslog.conf 文件,在配置文件中,我们通过配置 filter 以及 action 对日志进行管理。
在rsyslog
配置文件中,使用如下格式定义规则
filter action
rsyslog
发现符合 filter 规则的日志后,会将日志发送到 action 指定的动作进行处理。
Filter
在rsyslog
中,提供了三种方式的过滤器方法:
基于设施/优先级的过滤器 (Facility/Priority-based filters)
基于设施/优先级的过滤器是最常用的方法,语法如下:
FACILITY.PRIORITY
FACILITY
指定了产生日志消息的子系统,可选值为 auth , authpriv , cron , daemon , kern , lpr , mail , news , syslog , user , ftp , uucp , local0 ~ local7 。
PRIORITY
指定了日志消息的优先级,可用的优先级包含 debug (7) , info (6) , notice (5)