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=”http://www.rsyslog.com”] start
是不是很简单, 这样所有的资讯都会写入/var/log/test.log 档案里面了!