系统日志的记录
linux操作系统主要通过syslogd服务来记录日志信息。日志信息主要记录在/var/log/目录下。syslod用来记录系统运行产生的信息。klogd用来记录系统内核运行产生的信息。此外根据系统的配置,系统会在固定的时间,调用logrotate命令来更新日志信息。logrotate命令会根据/etc/logrotate.conf配置文件的设置。/etc/logrotate.conf会自动加载/etc/logrotate.d/文件夹的文件。
syslogd的配置文件是/etc/syslogd.conf,在syslogd.conf中可以定义日志信息。syslogd将日志信息划分为7个级别。分别是info notice warn err crit alert emerge.在系统中,可以定义来自不同地方的不同级别的信息记录到不同的地方。如
mail.info /var/log/messages 意思是将 mail产生的info及以上的信息记录下来
mail.* /var/log/messages 意思是将mail产生的所有信息都记录到/var/log/messages中。
mail.=info /var/log/messages 意思是将mail产生的info级别的信息记录到/var/log/messages中。
多个级别可以写在一起。
mail.=info;cron.=info /var/log/messages.如果是同一级别,还可以简写。mail,cron.=info
如果不想记录某个来源的信息,可以写成
*.* mail.none /var/log/messages
如果是不想记录某个来源的某个级别的日志信息,可以写成 mail。!warn /var/log/messages中。
此外日志还可以记录到某一台服务器上,此时这台服务器需要的syslog的启动模式要作一些改变,要改/etc/sysconfig/syslog,在里面的选项中加上-r ,让syslog以服务器的模式运行。而在客户机上。/etc/syslog.config里面,加上*.* @server就可以将日志信息保存到服务器端。
/etc/logrotate.conf里面主要写日志更新的配置文件。其中还支持脚本。如:
sharedscripts
prelogrotate
chattr -a /var/log/messages
endscripts
sharedscripts
postlogrotate
/bin/killall -1 syslogd
chattr +a /var/log/messages
endscripts