跳到主要内容

22、Linux 教程:日志

日志

系统日志

linux中的日志服务是rsyslogd,它取代了原来的的syslogd,rsyslogd服务是默认自启动的。

常见日志的作用:

 

 

除了系统默认的日志之外,采用RPM方式安装的系统服务也会默认把日志记录在/var/log/目录中(源码包安装的服务日志是在源码包指定目录中)。不过这些日志不是由rsyslogd服务来记录和管理的,而是各个服务使用自己的日志管理文档来记录自身日志。

基本日志格式一般是事件发生的时间+主机名+服务名或程序名+事件的具体信息,如/var/log/secure:

 

配置文件/etc/rsyslog.conf记录系统日志的作用和位置:

 

白字代表一种日志,如authpriv.* /var/log/secure,它是按照:服务名称[连接符号]日志等级 日志记录位置来记录的,authpriv代表这是认证相关服务,其他服务如下:

 

 

连接符:

 

.*代表所有日志等级都记录,*实际上不是日志等级,而是通配符。

日志等级:

 

从debug到emerg日志等级越来越高,等级越高记录的内容越少,优先处理的级别越高,危害越大。

日志记录位置:

 

日志轮替

日志文件很大时打开可能会死机,保持日志可用一般要同时采用两项措施:

1、 日志切割把每天或每周的日志单独保存为一个文件,保证文件不过大;

2、 日志删除把多余的日志定期删除,防止占满磁盘;

如果配置文件中拥有“dateext”参数,那么日志会用日期来作为日志文件的后缀,例如“secure-20130605”,最新生成的日志文件名总是secure,当重复生成日志时,前一个日志会被命名,而新日志名依然是secure。

如果配置文件中没有“dateext”参数,那么日志会简单的加上数字来区分,如“secure.1”,新生成的日志名总是secure,每次新生成都会依次修改所有日志名,即secure改名为secure.1,secure.1改名为secure.2。

配置文件/etc/logrotate.conf中记载了日志轮替相关设置,其中关键字如下:

 

 

源码包的日志轮替需要手动设置,以apache为例,应该在上述配置文件中加入:

/usr/local/apache2/logs/access_log {
	daily
	create
	rotate 30
}

第一行是要备份的日志,一个应用可能存在多个需要备份的日志,大括号内的词代表每天备份一次,建立新日志,保留日志文件的个数为30。