在分析 syslog 之前, 我们需要知道一点: centos6 起/etc/syslog.conf 不再有!而是/etc/rsyslog.conf 代替!
日志档案的一般格式
一般来说, 系统所产生的资讯经过 syslog 而记录下来的资料中, 每条资讯均会记录下面几个重要资料:
#事件发生的日期与时间;
#发生此事件的 WordPress 主机名;
#启动此事件的服务名; 或函式名称;
#该资讯的实际资料内容;
syslog 配置档案:/etc/rsyslog.conf
基本上,syslog 针对各种服务与资讯记录在某些档案的配置档案就是/etc/rsyslog.conf, 这个档案规定了” 什么服务的什么等级资讯以及需要被记录在哪里 (装置或档案)”.
命令格式 :
服务名称 [.=!] 资讯等级 资讯记录的档名或装置或 WordPress 主机
<1>服务名称
syslog 本身有设定一些服务, 你可以通过这些服务来储存系统的资讯.
syslog 设定的服务主要有:
服务型别
说明
auth(authpriv)
主要与认证有关的机制, 例如 login 、 ssh 、 su 等需要账号/密码
cron
记录计划任务 cron/at 等日志资讯
daemon
与各个 daemon 有关的资讯
kern
记录核心 (kernel) 产生的资讯
lpr
印表机相关的资讯
mail
记录与邮件收发相关的资讯
news
记录与新闻站群服务器相关的资讯
syslog
syslog 本身产生的资讯记录
user 、 uucp 、 local0~7
与 Unix like 机器本身有关的一些资讯
<2>连结符号
“.” 代表比后面还要高的等级 (含该等级) 都被记录下来;
“.=” 代表所需要的等级就是后面接的等级而已, 其他的不记录;
“.!” 代表不等于, 即是除了该等级外的其他等级均记录;
<3>资讯等级
同一个服务所产生的资讯也是有差别的. 基本上,syslog 将资讯分为 7 个主要的等级及 2 个特殊的等级.
依序是这样的:
等级
等级说明
说明
1
info
仅是一些基本的资讯说明
2
notice
除了 info 外还需要注意的一些资讯内容
3
warning
警告, 可能有问题, 但还不至于影响到某个 daemon 执行的资讯
4
err(error)
重大的错误资讯
5
crit(critical)
比 error 严重的错误资讯
6
alert
警告, 很严重的错误资讯, 比 crit 还要严重
7
emerg(panic)
“疼痛” 等级, 意指系统已经几乎要宕机的状态! 通常硬体出现问题导致整个核心无法顺利执行, 就会出现这样的等级
特
殊
debug
错误检测等级, 需要做一些错误检测, 应用该等级
none
忽略掉某些服务
<4>资讯记录的档名或装置或 WordPress 主机
通常, 我们使用的都是档案, 但是也可以输出装置, 例如印表机之类的.
常见:
档案的绝对路径 : 通常放在/var/log 目录下的档案;
印表机或其他 : 例如/dev/lp0 这个印表机装置;
使用者名称称 : 显示给使用者;
远端 WordPress 主机 : 例如 www.vbird.tsai, 当前也要对方 WordPress 主机也支援才行;
* : 代表目前线上的所有人;
常见例项
<1>如果我要将我的 mail 相关的资料写入/var/log/maillog 当中, 那么在/etc/rsyslog.conf 的语法如何写呢?
基本的写法是这样的:
mail.info /var/log/maillog
解析:mail.info 表示将高于 info 等级 (含 info 等级) 之上的资讯, 都会被写入后面接的档案中. 也就是将所有的 mail 的日志资讯都记录在/var/log/maillog 中.
<2>将新闻组 (news) 与计划任务 (cron) 的资讯都写入/var/log/cronnews 档案中, 而这两个程式的警告资讯则额外记录在/var/log/cronnews.warn, 那又该如何编辑 rsyslog.conf 呢?
写法:
news.*;cron.* /var/log/cronnews
news.=warn;cron.=warn /var/log/cronnews.warn
<3>messages 这个档案记录所有的资讯, 但是就是不想记录 cron 、 news 以及 mail 的资讯, 该如何写呢?
写法:
*.*;news,cron,mail.none /var/log/messages
或者
*.*;news.none;cron.none;mail.none /var/log/messages
解析: 使用”,” 分隔时, 那么等级只要接在最后一个即可! 如果使用”;” 来分隔的话, 那么就需要将服务与等级都写上去.