rsyslog.conf日志分析与新增

rsyslog.conf是rsyslogd的主配置文件,rsyslog是*nix系统上用来记录系统日志的.rsyslog.conf向后兼容syslogd的syslog.conf文件,所以可以直接使用syslog.conf.

 

测试系统:CentOS 6.4

/etc/rsyslog.conf 关于日志记录默认设置如下:

 

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.*                                         /dev/console

 

# Log anything (except mail) of level info or higher.

# Don’t log private authentication messages!

*.info;mail.none;authpriv.none;cron.none              /var/log/messages

 

# The authpriv file has restricted access.

authpriv.*                                       /var/log/secure

 

# Log all the mail messages in one place.

mail.*                                          -/var/log/maillog

 

 

# Log cron stuff

cron.*                                           /var/log/cron

 

# Everybody gets emergency messages

*.emerg                                          *

 

# Save news errors of level crit and higher in a special file.

uucp,news.crit                                    /var/log/spooler

 

# Save boot messages also to boot.log

local7.*                                          /var/log/boot.log

 

 

<1>#kern.* : 只要是内核产生的信息,全部都送的console(终端机)去;

<2>*.info;mail.none;authpriv.none;cron.none : 由于mail,auth,authpriv,cron等类型

生成的信息较多,因此不记录在/var/log/messages中,除此之外的信息都写入

messages中;

<3>authpriv.* : 认证方面的信息均写入/var/log/secure文件;

<4>mail.* : 邮件方面的信息均写入/var/log/maillog文件;

<5>cron.* : 计划任务方面信息均写入/var/log/cron文件;

<6>*.emerg : 当产生最严重的错误等级时,将该等级的信息以wall的方式广播给所有系统登录的账号,要这么做的原因是希望在线的用户能够赶紧通知系统管理员来处理这个问题;

<7>uucp,news.crit : uucp是早期Unix-like系统进行数据传递的协议,后来常用在新闻组的用途中.news是新闻组,当新闻组方面的信息出现有严重错误时就写入/var/log/spooler这个文件中;

<8>local7.* : 将本机开机时应该显示到屏幕的信息写入到/var/log/boot.log文件中;

注意:

在记录的文件/var/log/maillog前面还有个减号”-”,由于邮件所产生的信息比较多,因此我们希望邮件产生的信息先存储在速度较快的内存中(buffer),等到数量够大了才一次性将所有数据都填入磁盘中,这样有助于日志文件的访问性能.只不过由于信息是暂存在内存中,因此若不正常关机导致日志信息未填到日志文件中,可能会造成部分数据的丢失.

 

 

同样,我们也可以自增加日志文件:

例如: 我们将所有的信息都额外写入/var/log/test.log 这个文件中.

首先,/etc/rsyslog.conf中做相应设置.如下:

 

[root@sqj ~]# vi /etc/rsyslog.conf

#Test 2016-07-16

*.info                                    /var/log/test.log

 

创建test.log文件,如下:

[root@sqj ~]# cd /var/log/

[root@sqj log]# touch test.log

 

测试:

重启下 rsyslog服务,然后在查看test.log文件,如下:

[root@sqj log]# service rsyslog restart

Shutting down system logger: [  OK  ]

Starting system logger: [  OK  ]

[root@sqj log]# vi test.log

 

Jul 15 13:35:16 sqj kernel: imklog 5.8.10, log source = /proc/kmsg started.

Jul 15 13:35:16 sqj rsyslogd: [origin software=”rsyslogd” swVersion=”5.8.10″ x-pid=”25017″ x-info=”https://www.rsyslog.com”] start

 

是不是很简单,这样所有的信息都会写入/var/log/test.log文件里面了!