找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 服务器 Linux/BSD 查看内容

syslogd守护进程配置文件说明

2009-12-20 13:55| 发布者: admin| 查看: 178| 评论: 0|原作者: 慕容紫英


syslogd守护进程根据/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# 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
在syslog.conf文件中以#开头的是注释行,配置行的语法格式为:[消息类型][TAB分隔符][处理方案]。
1.消息类型
消息类型包括facility和level两个部分,这两个部分以"."隔开,如:
mail.* -/var/log/maillog
表示facility为mail,而level是所有级别。处理方案是将消息记录在/var/log/maillog日志文件中。表8.2所示为facility可以使用的字段。
表8.2 facility字段
facility取值

说 明
kern
0
内核日志信息
user
1
用户日志信息
mail
2
邮件系统日志信息
daemon
3
系统守护进程日志信息
auth
4
安全管理日志信息
syslog
5
syslogd守护进程的日志信息
lpr
6
打印服务日志信息
news
7
新闻组服务日志信息
uucp
8
uucp系统日志信息
cron
9
守护进程cron的日志信息
authpriv
10
私有的安全管理日志信息
ftp
11
ftp守护进程

12~15
系统保留
local0~local7
16~23
保留给系统本地使用
level给出的级别代表着信息的重要性,表8.3所示为level中的级别信息。

表8.3 level字段
level取值

说 明
emerg
0
系统不可用,出现这一情况的话,应该通知所有用户,因为这表示系统出现了严重的问题
alert
1
警告事件,必须立即采取行动纠正的事件
crit
2
关键事件,例如硬件出现故障
err
3
其他错误事件
warning
4
警告事件
notice
5
应该注意的事件,需要特别处理
info
6
通报信息
debug
7
调试程序时产生的信息
在syslog.conf中,可以使用*表示任何facility和任意的level。通过指定facility和level的取值,可以使facility在大于或等于该优先级的时候才记录相关日志信息。对于level,还可以使用none参数,表示不包含任何优先级别。例如,*.*表示任何facility的任何优先级的信息。*.emerg表示任何facility的大于或高于emerg优先级的信息。
2.处理方案
处理方案中指定的字段可以为如下的内容。
普通文件:使用文件的绝对路径来指明日志文件所在位置。
管道文件:在syslogd中支持使用管道文件(FIFO),在管道文件路径名前加"|",表示将所得信息写入管道中。
终端设备:通过将信息写入/dev/console中,可以在终端显示相关信息。
其他主机:syslogd支持将信息发往网络中的其他主机的syslogd守护进程,以实现集中管理,格式为"@hostname"。
用户列表:syslogd守护进程支持将日志信息发给某些指定的用户。
所有登录用户:可以用*表示所有登录的用户。在获得日志信息时,syslogd守护进程会自动将信息发送给登录用户。
下面选取前面给出的syslog.conf中的一条配置来解释其意义。具体配置如下:
cron.* /var/log/cron
配置中的facility为cron,表示记录守护进程cron的信息。level为*,表示记录所有优先级别的信息,并将日志信息记录到/var/log/cron文件中。在Linux系统
中,往往把各种日志文件保存在/var/log目录中。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://file:///C:/Documents and Settings/jyhao/桌面/tcpip/8_3_2 syslogd守护进程配置文件说明 - 51CTO_COM.files/1117560.jpg');}" onmousewheel="return imgzoom(this);" alt="" />
(点击查看大图)图8.5 日志文件保证目录

在syslog.conf文件中,这些级别指定了最低程度的重要性,只有重要性大于(包括)它的消息才会被记录下来。例如,来自电子邮件系统的一条警告级消息和mail.warning匹配,也同样和mail.notice、mail.info、mail.debug、*.warning、*.notice、*.info和*.debug匹配。如果syslog.conf文件指定了mail.info消息应该被记录到某个日志文件中,那么mail.warning消息也将被记录到该文件中。
Linux版的syslog对基本语法做了改进,它也允许在优先级前面加上字符=和!,分别表示“仅此优先级”和“除此优先级及其以上级别”的意思。表10.5给出了一些例子。
表10.5 在syslog.conf中限定优先级的例子
选 择 符
含 义
mail.info
选择与邮件相关的、优先级为info或者更高的消息
mail.=info
只选择优先级为info的消息
mail.info;mail.!err
只选择优先级为info、notice和warning的消息
mail.debug;mail.!=warning
选择除warning之外的所有优先级
action字段说明如何处理一则消息。表10.6列出了可以选择的处理方法。
表10.6 syslog的动作
动作(Action)
含 义
filename
把消息写入本地机器上的一个文件里
@hostname
把消息转发给主机hostname上的syslogd
@ipaddress
把消息转发给IP地址为ipaddress的主机
| fifoname
把消息写入有名管道fifonamea
user1,user2,…
如果用户登录到了系统上,那么就把消息写在用户的屏幕上
*
把消息写给目前已经登录的所有用户
a. 参考info mkfifo了解更多的信息。
如果采取了filename(或者fifoname)这样的动作,那么文件名应该用绝对路径。如果您指定了一个不存在的文件名,那么在首次有消息送到这个文件的时候,syslod会创建它。您可以在filename动作之前加一个短划线“-”,表示在写完每条日志记录项后,不应该对文件系统执行sync。执行sync有助于在发生崩溃的时候尽可能多地保留日志信息,但是从磁盘吞吐上来看,代价又太大。
如果用的是hostname而不是IP地址,那么主机名必须能通过DNS或者NIS这样的转换机制解析出来。
虽然一个selector可以包含多个设备(facility)和级别,但是却不能提供多个动作。为了把一则消息发送到两个地方(比如,到本地文件和到中央日志主机),您可以在配置文件中包含具有相同Selector的两行。
因为syslog消息能够用来实施拒绝服务攻击,所以除非syslogd以-r标志启动,否则它不会接受来自其他机器的日志消息。默认情况下,syslogd也会拒绝充当第三方消息转发器,从一台网络主机来的消息不会再被发给另一台网络主机。使用-h标志能够取消这一功能。(如果您想让这些选项始终都被启用,那么对于RHEL和Fedora,可以在脚本/etc/rc.d/init.d/syslog中加上这些标志,对于Debian和Ubuntu,可以在脚本/etc/init.d/sysklogd里加上这些标志。)




最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 19:17 , Processed in 0.338762 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部