分享
 
 
 

Solaris学习笔记:关于Solaris的syslog机制

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

syslog机制负责发送、记录系统内核及工具所产生的信息,由syslog()调用、syslogd守护进程和配置文件/etc/syslog.conf组成。当系统内核及工具产生信息时,通过调用syslog(),把信息送往syslogd,syslogd再根据/etc/syslog.conf中的配置要求,将这些信息分别作如下处理:

1.记录到系统日志中;

2.输出到系统控制台上;

3.转发给指定的用户;

4.通过网络转发给其它主机上的syslogd。

通过syslog.conf的配置,我们可以灵活地对信息的发送和保存进行控制。

syslogd进程在系统启动时由/etc/rc2.d/S74syslog启动。如果需要手工启动或停止syslogd,可以使用命令:

# /etc/init.d/syslog start | stop

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

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

kern 由kernel产生的信息;

user 由用户进程产生的信息。对那些由程序或不在此列出的工具产生的信息,其缺省类型都是“user”;

mail 邮件系统产生的信息;

daemon 系统守护进程的信息,如in.ftpd、telnetd;

auth 由login, su, getty等进行身份认证时产生的信息;

syslog 由syslogd自己内部产生的信息;

lpr 行打印spooling系统的信息;

news USENET 网络新闻系统的信息;

uucp UUCP系统信息;

cron cron和at工具信息;

local0-7 保留为local使用;

mark syslogd内部产生的时间戳信息;

* 除mark之外的所有其它类型(此符号不可用以代表所有级别)。

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

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

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

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

err 其它错误;

warning 警告;

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

info 通报信息;

debug 调试程序时的信息;

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

“动作”域指示信息发送的目的地。可以是:

/filename 日志文件。由绝对路径指出的文件名,此文件必须事先建立;

@host 远程主机;

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

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

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

……

*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages

……

这行中的“action”就是我们常关心的那个/var/adm/messages文件,输出到它的信息源头“selector”是:

*.err - 所有的一般错误信息;

kern.debug - 核心产生的调试信息;

daemon.notice - 守护进程的注意信息;

mail.crit - 邮件系统的关键警告信息

于是我们对/var/adm/messages中的东东怎么来的大致清楚一点了。再看下面(不理会那个注释符号“#”):

……

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

……

这里涉及Solaris下的loghost和m4宏解释器。loghost好理解,就是在局域网内多台SUN机器中指定一台作为loghost,大家的syslogd有水就都往它上面灌。具体谁是loghost在/etc/hosts中定义:

……

192.168.1.11 host1 loghost

192.168.1.22 host2

……

m4负责解释ifdef,它的事迹这里就不去深究了(要考SA的兄弟姐妹们可要去看啊,有题的),反正上面那个ifdef的意思就是:如果本机是loghost,那么信息送到/var/log/authlog中,否则送到@后的主机上。

下面作为一个示例,看看如何使用syslog机制来对telnet登录进行记录。

Telnet和ftp等许多网络服务是通过inetd来提供的。因此先检查一下inetd使用了什么类型和级别的syslog调用:

# man inetd

……

-t Instructs inetd to trace the incoming

connections for all of its TCP services. It does this by

logging the client’s IP address and TCP port number,

along with the name of the service, using the syslog(3)

facility. UDP services can not be traced. When tracing is

enabled, inetd uses the syslog facility code ``daemon’’

and ``notice’’ priority level.

……

就是说,启动带-t选项的inetd,它才会调用syslog来记录TCP服务的细节,类型是daemon,级别是notice。于是先修改inetd的启动脚本/etc/init.d/inetsvc,找到inetd那行,改为:

/usr/sbin/inetd -s -t &

前面看到,daemon.notice已经包括在syslog.conf中,action是/var/adm/messages。如果action不想变,那么就不用做修改了。

重启一下syslogd:

# /etc/init.d/syslog stop

# /etc/init.d/syslog start

重启一下inetd:

# /etc/init.d/inetsvc stop

# /etc/init.d/inetsvc start

试验一下结果。开一个窗口监视有没有新的message来:

# tail -f /var/adm/messages

从另一台机器上telnet或ftp上来。上面的监视窗口中应该有输出(^C 终止监视):

……

Jun 18 12:08:42 host1 inetd[755]: [ID 317013 daemon.notice] ftp[759] from 192.168.1.88 1082

Jun 18 12:09:13 host1 inetd[755]: [ID 317013 daemon.notice] telnet[760] from 192.168.1.88 1083

Jun 18 12:11:22 host1 inetd[755]: [ID 317013 daemon.notice] ftp[771] from 192.168.1.88 1084

对软件开发者来说,可以参考关于syslog()的有关资料,将你的软件中的信息进行适当的syslog()调用,以输出到所希望的地方.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有