免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4211 | 回复: 20
打印 上一主题 下一主题

SA-288读书笔记3 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-11-05 17:30 |只看该作者 |倒序浏览
第三章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&#59;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&#59;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&#59;kern.notice&#59;auth.notice /dev/sysmsg
*.err&#59;kern.debug&#59;daemon.notice&#59;mail.crit /var/adm/messages
*.alert&#59;kern.err&#59;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之间的关系

在范例A,host1和loghost是共同的IP,192.9.200.1;因此syslogd运行第二个命令行,/usr/ccs/bin/m4 –D LOGHOST,并因此决定m4 LOGHOST值在分解/etc/syslog.conf期间的值为true。

在范例B,host1与IP地址192.9.200.1相关,而hosts2与loghost都与IP地址192.9.200.2相关;因此,syslogd运行第一个命令行,/usr/ccs/bin/m4 (没有 –D LOGHOST),并因此而决定m4 LOGHOST在分解/etc/syslog.conf文件期间的值为false。

第二阶段
在第二阶段,m4宏处理器解析/etc/syslog.conf文件。每个非注释行都被解析,m4搜索包含了ifdef语句的行。如果没有遇到包含ifdef的语句行,m4通过并返回给syslogd守护进程。

如果m4找到了一个包含有ifdef的语句行,就根据LOGHOST状态来设置成TRUE或者FALSE,并且m4通过syslogd输出。例如:
mail.debug                ifdef(‘LOGHOST’, /var/log/authlog, @loghost)

考虑,如果LOGHOST值在第一阶段为TRUE,那么m4处理器返回:
mail.debug               /var/log/authlog
如果LOGHOST值在第一阶段为FALSE,那么m4处理器返回:
mail.debug               @loghost
在任一情况中,输出在selector区域和action区域都有一个条目

第三阶段
在第二阶段,为/etc/syslog.conf文件中的每一行进行了解析,m4提示输出两个部分:一个selector区域和一个action区域。这个信息返回给syslogd,并且syslogd使用这个信息去路由消息到他们的正确的目的地。

一旦设置了,syslogd继续运行这个设置。

使用syslog来改变inetd
inetd是许多服务的服务器进程。Inetd在TCP(或则UDP)端口上侦听每个相关的在设置文件中列出的服务需求。当一个需求到达,inetd执行与服务相关的服务器程序。你可以使用syslogd改变inetd把TCP连接记入日志

inetd手册页摘录

下列inetd手册页显示只有daemon时间和notice消息级别是被支持的。
% man inetd

inetd启动文件

inetd使用-t选项可以跟踪TCP。你必须为inetd守护进程syslog消息使追踪选项生效。你在条目中添加-t选项,启动在/etc/init.d目录中的inetsvc脚本的inetd

使用类似下列的方法改变条目
# grep inetd /etc/init.d/inetsvc
/usr/sbin/inetd –s –t &
注:需要重起inet进程使新选项生效

/etc/syslog.conf文件设置syslogd来有选择性的分布的发送他;
# grep daemon.notice /etc/syslog.conf
*.err&#59;kern.debug&#59;daemon.notice&#59;mail.crit         /var/adm/messages
在/etc/syslog.conf文件中的notice条目引起所有daemon的notice级别的消息被发送到/var/adm/messages文件中

/var/adm/messages文件必须存在,并且你必须停止并重新启动syslog守护进程

syslog日志条目的范例
你可以使用tail –f命令来实时监视syslog文件,/var/adm/messages。这保持文件是打开的,所以你可以通过syslog在这个文件中查看。
# tail –f /var/adm/messages
书上有个图,在3-17

logger实用程序
使用logger使用程序,你可以添加一行条目到系统的日志文件中。例如,你可以使用logger命令分开脚本

命令格式
logger [-i] [-f file] [-p priority] [-t tag] [message]

命令选项
l-f file
使用文件的内容来做日志的信息(文件必须存在)
l-i
每行都列出logger进程的进程ID
l-p priority
输入指定权限的信息
l-t tag
每行增加的日志都加上一个指定的标记
lmessage
在消息中,指定的命令中,通过空格符分开连接的串变量


我发现288比238难的多哦,而且章节都超长。。。


算子.咏梅

驿外断桥边,寂寞开无主.已是黄昏独自愁,更著风和雨.

无意苦争春,一任群芳妒.零落成泥碾作尘,只有香如故.

采桑子 书博山道中壁

少年不识愁滋味,爱上层楼。爱上层楼,为赋新词强说愁。

而今识尽愁滋味,欲说还休。欲说还休,却道天凉好个秋.

论坛徽章:
0
2 [报告]
发表于 2002-11-05 17:35 |只看该作者

SA-288读书笔记3

球球辛苦了。。加油噢。。。

论坛徽章:
0
3 [报告]
发表于 2002-11-06 08:45 |只看该作者

SA-288读书笔记3

我要哭了。

论坛徽章:
0
4 [报告]
发表于 2002-11-06 08:49 |只看该作者

SA-288读书笔记3

自卑中。。。。。。。。。。。。。。

论坛徽章:
0
5 [报告]
发表于 2002-11-06 09:00 |只看该作者

SA-288读书笔记3

严重敬佩及超级自卑中………
    我down了先,thank you very much!

论坛徽章:
0
6 [报告]
发表于 2002-11-06 09:17 |只看该作者

SA-288读书笔记3

球球,我们搞一把sc

论坛徽章:
0
7 [报告]
发表于 2002-11-06 09:34 |只看该作者

SA-288读书笔记3

现在上班呢:(

论坛徽章:
0
8 [报告]
发表于 2002-11-06 09:37 |只看该作者

SA-288读书笔记3

李煜我喜欢!!!

论坛徽章:
0
9 [报告]
发表于 2002-11-06 09:47 |只看该作者

SA-288读书笔记3

错了!错了!

是辛弃疾的丑奴儿

论坛徽章:
0
10 [报告]
发表于 2002-11-06 09:58 |只看该作者

SA-288读书笔记3

球球一定要加油哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP