9.5 Syslog

Syslog是一个运行于UNIX服务器上的守护进程,该进程收集信息并存储在日志文件中,由服务器上的文件管理系统来维护这些日志文件。

9.5.1 Syslog 概述

UNIX服务器(或其他网络节点)上运行的各种服务都会发送消息,发送这些消息的服务表示了其应用服务(facility)类型,syslog守护进程在确定如何记录这些消息时将使用这些应用服务类型。

img544

通过更新syslog服务器上/etc目录下的文件syslog.conf,就可以配置syslog守护进程。syslog守护进程启动后就会立即读取该文件以确定如何处理即将到来的消息,该文件包含了多行与下面内容相似的信息。

local7.debugging /user/adm/logs/cisco.log

该行信息表示local7应用服务的消息将被记录到cisco.log文件(位于目录/user/adm/logs下)中,相应的消息严重等级为调试及以上等级,该文件中的表项内容是大小写敏感型的。

配置文件发生变更后,要求UNIX管理员强制syslog守护进程重新读取该文件。

9.5.2 路由器的Syslog配置

Cisco路由器默认使用local7应用服务向syslog服务器发送消息。如果该应用服务被其他向syslog服务器发送消息的进程所使用,那么就需要使用以下配置命令在Cisco路由器上更改应用服务类型。

logging facility facility-type

例9-17所示的路由器配置将syslog记录到指定主机,记录的消息严重等级包括通告及以上等级的消息。

例9-17:将syslog记录到指定主机。

img545a

配置完成后,UNIX服务器的/etc/syslog.conf文件中将包含一行下列信息:

local7.notice /usr/adm/logs/cisco.log


注意: 请参考相应的用户手册,以了解特定服务器、syslog配置文件及syslog守护进程的具体信息。


其中,local7指定日志记录的应用服务类型,notifiaction表示日志记录等级,所有的信息都被存储在/usr/adm/logs目录下的cisco.log文件中。需要注意的是,该文件必须已经存在,而且syslog守护进程有该文件的写入权限,需要验证syslog守护进程正在运行,而且在配置发生变更后syslog守护进程重新读取了该配置文件。


注意: UNIX命令kill(与特定信号一起)会强制进程重新读取配置文件,有关命令kill的详细情况请参考UNIX系统的用户手册页。


某些路由器支持通过SNMP向SNMP网络管理器发送syslog消息的能力,通过路由器命令snmp-server enable traps syslog并利用logging history level指定所要发送的日志等级,即可启用该能力。

例9-18显示了由路由器发出的SNMP包中的syslog消息。

例9-18:通过SNMP发送因配置变更而生成的syslog消息。

img545b

路由器的配置发生变更后生成了一条syslog消息,每个HistoryEntry行末尾的65是标识特定事件的索引号,syslog历史表项的取值范围为1~6,2表示OID值是生成该消息的应用服务,例9-18中的应用服务是SYS,3是消息的严重等级,6表示通告。历史表项4是该消息类型的文本化标识,历史表项5是该消息的实际文本内容,历史表项6是该消息生成时的 sysUpTime值。


注意: www.cisco.com/public/mibs/v1/CISCO-SYSLOG-MIB-V1SMI.my给出了完整的 syslog MIB定义情况。


将syslog消息发送给SNMP管理站,通过将数据收集到一台服务器上,可以大大简化数据的管理工作。