第三章Solaris操作环境系统日志

syslog工具
syslog()函数通过内核传送信息,并且系统生效到syslogd守护进程。这依赖于配置文档/etc/syslog.conf。这个守护进程能够:
l将信息写入系统日志
l将信息写入系统控制台
l将信息发送到用户的列表
l将信息发送到在网络上的其他主机的syslogd

syslog最有价值的功能是帮助您控制系统日志。这能够帮助您决定哪个信息是被保存的,和信息将保存在哪里
书上有图在3-3,描述了syslogd的运做工程。

控制syslogd运做
在动作回应,或在操作期间遭遇的情况中,许多进程能够在不同的重要级别上产生可编程的信息。

您能够通过修改/etc/syslog.conf来控制syslogd按照您的习惯去管理这些信息。通过这个配置文档,您能够告诉syslogd通过他们的资源或他们的重要性并且指定一个目的地来进行分类。

配置/etc/syslog.conf文档
在/etc/syslog.conf中的一个配置条目包括两个部分的区域:selector和action

在selector区域包括一个事件和一个级别,facility.level。事件表现的是能够产生信息的系统进程的类别。级别是表示安全的或重要的信息

action区域决定了往哪里传送信息。

比如,在/etc/syslog.conf文档中有下列条目,需要将任何事件的错误信息都传送到文档/var/adm/messages中。

*.err /var/adm/messages

*.err:是selector区域;*代表的是事件,.是分隔符,err是信息的级别。
/var/adm/messages:是action区域

警告:/etc/syslog.conf文档中的空白部分是用tab分开的。

Selector区域
Selector区域是使用分号在表中列出优先权:
Facility.level;facility.level

Facility是个系统通过下面表显示中的定义的事件

Kern通过内核产生的信息
User通过用户进程产生的信息。这是个不在文档中列出的默认优先权的信息。
Mail邮件系统
Daemon系统守护进程,例如in.ftpd和telnetd
Auth授权系统,包括login,su和getty
Syslogsyslogd信息产生中央
Lpr在线打印机交换系统lpr和lpc
News为USENET网络新闻系统保留的文档
UucpUNIX-to-UNIX拷贝系统;不使用syslog
Croncron和at工具,包括crontab,at和cron
Local0-7为本地使用保留的区域
Mark通过syslogd产生的时间标记信息
*任何事件,除了mark事件
注:可是使用*选择任何事件,但是不能使用*选择任何的级别

level是个严格的信息。在下面的级别中,级别的能力是递减的
emerg没有任何理由而正常的广播到用户
alert即将被纠正,比如数据库崩溃
crit临界状态警告。例如硬件错误
err其他错误
warning警告信息
notice没有错误,但是需要指定
info情报信息
debug只有当调试程式时,正常使用的信息

none信息是只当在调试程式的时候使用的。当信息不从指定的事件传送到文档的时候,使用none信息。比如,一个selector是*.debug;mail.none传送任何信息,除了mail信息到选择的文档。

Action区域
Action区域定义了信息将被保存的地方。他能够是下面任何一种格式
l/filename
日志文档的绝对路径
l@host
您必须在主机名或IP地址之前加一个@标志。信息会发送到远程主机的syslogd
luser1,user2
假如用户1和用户2登陆,就会收到信息
l*
任何登陆的用户,都会收到信息

/etc/syslog.conf文档
#ident "@(#)syslog.conf 1.5 98/12/14 SMI" /* SunOS 5.0 */
#
# Copyright (c) 1991-1998, by Sun Microsystems, Inc.
# All rights reserved
#
# syslog configuration file.
#
# This file is processed by m4 so be careful to quote (‘’) names
# that match m4 reserved words. Also, within ifdef's, arguments
# containing commas must be quoted.
#
*.err;kern.notice;auth.notice /dev/sysmsg
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
*.alert;kern.err;daemon.err operator
*.alert root
*.emerg *
# if a non-loghost machine chooses to have authentication messages
# sent to the loghost machine, un-comment out the following line:
#auth.notice ifdef(‘LOGHOST’, /var/log/authlog, @loghost)
mail.debug ifdef(‘LOGHOST’, /var/log/authlog, @loghost)
#
# non-loghost machines will use the following lines to cause "user"
# log messages to be logged locally.
#
ifdef (‘LOGHOST’, ,
user.err /dev/sysmsg
user.err /var/adm/messages
user.alert ‘root, operator’
user.emerg *
)

启动和停止syslogd
每次syslogd启动,都会读配置文档。每次系统启动,都会利用/etc/rc2.d/S74syslog来启动syslogd。

假如配置文档被更改了,您能够手动启动或停止syslogd。使用命令:
# /etc/init.d/syslog start | stop

syslogd和m4宏处理器

syslogd,m4宏处理器和/etc/syslog.conf文档是互相作用的,在概念上,决定信息的正确去向。这些概念上的描述是:
1.sylogd运行m4
2.m4处理在/etc/syslog.conf中的ifdef语句
3.syslogd使用m4将路由信息输出到适当的位置
按最初的估计,syslogd守护进程从/etc/syslog.conf文档中返回信息日志路由信息。可是,syslogd不能直接读/etc/syslog.conf文档。作为代替,syslogd启动m4,为能够通过m4解释的ifdef语句解析/etc/syslog.conf文档

假如m4不能识别一行上任何m4命令,他通过输出返回给syslogd需要的2列值,即selector和action。然后将适当的目的用于路由信息。假如m4在/etc/syslog.conf文档中碰到一个ifdef语句,那么ifdef将会被计算出是true或false,并且根据测试的输出产生相应的路由信息。

周详操作
您必须首先确定两个host1上的/etc/hosts文档
注:这些/etc/hosts文档样板能够被短暂的引用

范例A
192.9.200.1 hosts1 loghost
192.9.200.2 host2

范例B
192.9.200.1 host1
192.9.200.2 host2 loghost

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!