首页 > 代码库 > 日志生成控制文件syslog.conf

日志生成控制文件syslog.conf

1: syslog.conf的介绍

对于不同类型的Unix,标准UnixLog系统的设置,实际上除了一些关键词的不同,系统的syslog.conf格式是相同的。syslog采用可配置的、统一的系统登记程序,随时从系统各处接受log请求,然后根据/etc/syslog.conf中的预先设定把log信息写入相应文件中、邮寄给特定用户或者直接以消息的方式发往控制台。值得注意的是,为了防止入侵者修改、删除messages里的记录信息,可以采用用打印机记录或采用方式来挫败入侵者的企图。

syslogd与klogd(监控linux内核提交的消息)守护进程负责记录,发送系统或工具产生的信息,二者的配置文件都是/etc/syslog.conf.当系统内核或工具产生信息时,通过调用相关函数将信息发送到syslogd或klogd守护进程.syslogd与klogd守护进程会根据/etc/syslog.conf中的配置信息,对消息的去向作出处理

2: syslog.conf的格式

    可以参考man [5] syslog.conf。这里是对syslog.conf的简单介绍。

    /etc/syslog.conf文件中的一项配置记录由“选项”(selector)和“动作”(action)两个部分组成,两者间用tab制表符进行分隔(使用空格间隔是无效的)。而“选项”又由一个或多个形如“类型.级别”格式的保留字段组合而成,各保留字段间用分号分隔。如下行所示:

        类型.级别 [;类型.级别] `TAB` 动作

2.1 类型

    保留字段中的“类型”代表信息产生的源头,可以是:

    auth    认证系统,即询问用户名和口令

    cron    系统定时系统执行定时任务时发出的信息

    daemon  某些系统的守护程序的syslog,如由in.ftpd产生的log

    kern    内核的syslog信息

    lpr     打印机的syslog信息

    mail    邮件系统的syslog信息

    mark    定时发送消息的时标程序

    news    新闻系统的syslog信息

    user    本地用户应用程序的syslog信息

    uucp    uucp子系统的syslog信息

    local0..7 种本地类型的syslog信息,这些信息可以又用户来定义

    *       代表以上各种设备

2.2 级别

    保留字段中的“级别”代表信息的重要性,可以是:

    emerg   紧急,处于Panic状态。通常应广播到所有用户;

    alert   告警,当前状态必须立即进行纠正。例如,系统数据库崩溃;

    crit    关键状态的警告。例如,硬件故障;

    err     其它错误;

    warning 警告;

    notice  注意;非错误状态的报告,但应特别处理;

    info    通报信息;

    debug   调试程序时的信息;

    none    通常调试程序时用,指示带有none级别的类型产生的信息无需送出。如*.debug;mail.none表示调试时除邮件信息外其它信息都送出。

2.3 动作

动作(action)

        动作确定了syslogd与klogd守护进程将日志消息发送到什么地方去.有以下几种选择:

     普通文件        使用文件的绝对路径来指明日志文件所在的位置,例如:/var/log/cron.

     终端设备        终端可以是/dev/tty0~/dev/tty6,也可以为/dev/console.

        用户列表        例如动作为“root hackbutter”,将消息写入到用户root与hackbutter的计算机屏幕上.

    远程主机        将信息发往网络中的其他主机的syslogd守护进程,格式为“@hostname”. @符号后面可以是ip,也可以是域名,默认在/etc/hosts文件下loghost这个别名已经指定给了本机。

        user1,user2 指定用户。如果指定用户已登录,那么他们将收到信息;

    *           所有用户。所有已登录的用户都将收到信息。

3: 具体实例

    我们来看看/etc/syslog.conf文件中的实例:

    NTP-SERVER:/#vi /etc/syslog.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

将info或更高级别的消息送到/var/log/messages,除了mail,authpriv,cron以外.

        //其中*是通配符,代表任何设备;none表示不对任何级别的信息进行记录.

# 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                                                 *

//将任何设备的emerg(系统不可用)级别的信息发送给所有正在系统上的用户.

 

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

# 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

//将和系统启动相关的信息记录到/var/log/boot.log文件中.

 

 配置文件的语法说明
               (1)    *用作设备或优先级时,可以匹配所有的设备或优先级.
               (2)    *用作动作时,将消息发送给所有的登录用户.
               (3)    多个选择器可在同一行中,并使用分号分隔开,且后面的会覆盖前面的.如,uucp,news.crit.
               (4)    关键字none用作优先级时,会屏蔽所有来自指定设备的消息.
               (5)    通过使用相同的选择器和不同的动作,同一消息可以记录到多个位置.
               (6)    syslog.conf文件中后面的配置行不会覆盖前面的配置行,每一行指定的动作都独立的运作.

日志生成控制文件syslog.conf