当前位置:首页 > Syslog配置及使用简介
Syslog配置及使用简介
目录
Syslog配置及使用简介 .................................................................................................................. 1 1. Syslog简介 .......................................................................................................................... 2 2. Syslog协议 .......................................................................................................................... 2
2.1. syslog体系结构 ............................................................................................................ 2 2.2. syslog包格式 ................................................................................................................ 2 3. Syslog配置 .......................................................................................................................... 3
3.1 概览 ................................................................................................................................... 4 3.2选择符 ................................................................................................................................ 4 3.3 动作 ................................................................................................................................... 4 4. C语言中的syslog ............................................................................................................... 5
4.1 openlog ............................................................................................................................. 5 4.2 syslog ............................................................................................................................... 5 4.3 closelog ........................................................................................................................... 6 4.4 setlogmask ....................................................................................................................... 6 4.5例子 .................................................................................................................................... 6 5. 参考文献 ............................................................................................................................... 7
1. Syslog简介
Syslog常被称作系统日志,在80年代作为sendmail的一部分而发布,由于其可用性,现在已成为用来在internet中传递日志信息的事实上的标准。这些传递日志的程序或数据库同时也被称作syslog。Syslog是主从式的协议,syslog发送端发送一些小的文字信息到syslog接收端,接收端根据配置文件把收到的信息进行存储或者处理,或者再次进行转发。 Syslog通常被用作系统信息管理,由于其已在大多数系统上实现,所以它可以把不同类型主机上的信息集中整合到一起。但是它仍然有许多缺陷,表现在下面几个方面:Syslog的传输是通过UDP或者TCP传输,安全性并不可靠。一般可以通过ssl加密壳来完成加密;syslog的实时性不好,只能通过更改配置加以改进。所以syslog主要用在安全性要求不高,实时性不强的地方。
2. Syslog协议
syslog使用UDP协议作为它的传输层协议,其默认使用UDP端口514。
2.1. syslog体系结构
syslog模糊了发送方、接收方,设备、中继以及收集器的区别,一台设备可以同时是某种日志信息的中继、也可以是另外某种信息的收集器,同时可以作为发送者发送日志:
? 发送方发送日志信息至某个主机,并不知道这台主机会如何处理这些日志。 ? 发送方可以通过配置,把同一条日志同时发送给多个接收者。 ? 中继可以发送所有或者部分信息给后序接收者,这种情况下它不完全是中继,也是
一个收集信息者。
? 中继可以产生自己的日志信息发送给后序接收者,这种情况下它也是一个产生信息
的设备。
2.2. syslog包格式
Syslog包分为3个部分,PRI, HEADER,以及MSG,总长度不能超过1024个字节。
2.2.1 PRI
PRI是priority的缩写,它代表了facility以及severity,即代表消息来源以及消息的严重程度。它必须是1、2或者3个十进制字符,用‘<’,‘>’括起后组成的串,它是由facility以及severity构成,组成的方法是把facility的值乘以8,再加上severity的值。如facility取值local4(20), severiry为warning(4),那么pri的值为<164>。 Facility的取值如下表所示:
Numerical Code Facility
0 kernel messages 1 user-level messages 2 mail system 3 system daemons
4 security/authorization messages
5 messages generated internally by syslogd
6 line printer subsystem 7 network news subsystem
8 UUCP subsystem 9 clock daemon
10 security/authorization messages 11 FTP daemon 12 NTP subsystem 13 log audit 14 log alert
15 clock daemon (note 2) 16 local use 0 (local0) 17 local use 1 (local1) 18 local use 2 (local2) 19 local use 3 (local3) 20 local use 4 (local4) 21 local use 5 (local5) 22 local use 6 (local6) 23 local use 7 (local7)
严重等级分为:
Numerical Code Severity
0 Emergency: system is unusable
1 Alert: action must be taken immediately 2 Critical: critical conditions 3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition 6 Informational: informational messages 7 Debug: debug-level messages
2.2.2 HEADER部分
HEADER部分包含一个时间戳以及发送方的主机名或者ip地址,并且HEADER部分必须是一些可打印字符。
时间戳部分是格式为”Mmm dd hh:mm:ss”的本地时间,其中Mmm是3个字母的英文缩写,如果日期小于10,必须用空格代替缺少的一个数字。
主机名部分一半使用主机名,如果没有的话可以使用IPv4或者IPv6的地址。需要注意的是主机名中不能包含任何空格。
时间戳和主机名后面都各自跟一个空格。
2.2.3 MSG部分
消息体部分一般包含生成消息的进程信息(TAG field)以及消息正文(CONTENT field)。TAG部分主要是包含生成消息的进程信息,不能超过32个字符。消息体必须是一些可见字符,这部分就是消息的正文。TAG与CONTENT之间的间隔用非字母表字母隔开,一般用”[“,”:”或者空格隔开。
3. Syslog配置
3.1 概览
Syslog的全局配置文件一般存储在/etc/目录下,名为syslog.conf,由它指定syslogd程序对日志信息的处理。
配置文件由一系列的规则组成,一般每行一个规则,也可以使用反斜杠“\\”来续行。 配置文件中每个规则都是由两部分组成,分别叫做选择符以及其对应的动作。选择符就是指上文介绍过的priority,包括facility以及severity,动作指匹配成功的话应执行的动作,如把日志写入管道,写入文件,或者再转发至另一台主机。
3.2选择符
选择符包括两部分,facility以及severity,两部分以一个点号”.”分割。这两个部分都大小写无关,并且可以使用上文中定义的数字来代替字符。
Facility部分可以使用下列关键字:auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, security (same as auth), syslog, user, uucp and local0 到local7,或者使用其对应的数字。
Severity部分可以使用下列关键字:debug, info, notice, warning, warn (等同于warning), err, error(同err), crit, alert, emerg, panic (同emerg)。
最初的BSD syslogd程序中,程序会把等于或者高于指定severity等级的日志按照指定动作来执行,现在syslogd程序中还包括一些有用的扩展:
? “*”号,可以代表任何facility或者severity,根据在”.”之前或之后判断。
? “,”号,可以分割facility,这样可以把几个facility可以合并。但是severity不能这
样合并。
? “;”号,可以指定多个选择符,后面跟一个动作。处理得顺序是按照从前向后的顺
序匹配选择符,并且后面的选择符可以覆盖前面的。因此可以使用这种特性来排除一些特殊的等级。
? “=”号,可以加在severity前面,表示准备匹配。
? “!”号,表示忽略这种severity或者更高等级,也可以与”=”号一起用。
3.3 动作
动作表示收到匹配的日志信息以后的处理动作,主要有写入文件,命名管道,终端,写入远程,提醒当前某些用户。
1. 写入普通文件。后面加入日志文件的绝对路径即可。也可以添加“-”号来表示不
立即写入。
如: *.=crit;kern.none /var/adm/critical 2. 命名管道。通过加上”|”即可把日志写入命名管道。
如:mail,news.=info | /tmp/message.fifo 3. 终端。只要动作中指定的文件是一个tty文件即可。
如:mail.=info /dev/tty12
4. 远端机器。添加”@”符号,加上远端主机名/ip地址即可。syslog需要-h参数启动才
会转发远端而来的消息。
如:kern.crit @finlandia
5. 用户。直接在动作之中写入用户列表的名字即可。以逗号分割各个用户。
如:*.alert root,joey
6. 所有已登陆用户。在动作中直接“*”号,表示把信息直接显示到已登陆用户的终
端上。
共分享92篇相关文档