SA-288读书笔记3[1]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:


第三章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

你下一步必须决定两个m4命令的样板
1./usr/ccs/bin/m4  /etc/syslog.conf
2./usr/ccs/bin/m4 –D LOGHOST /etc/syslog.conf

第一阶段
当syslogd在系统启动的时候启动,syslogd通过/etc/hosts文件来检测IP地址与hostname的关系与IP地址与loghost之间的关系

本文关键:SA-288读书笔记3
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top