分类: LINUX
2008-04-11 20:41:00
讲述Syslog的架构和如何在思科的网络环境下部署Linux和Win下的ang=EN-US>syslog服务器,以及相应思科设备的配置.
Syslog简介
Syslog协议允许设备向消息收集器发送相应的事件信息.使用UDP端口514,不需要确认,大小为1024字节.包含
Facility,Severity,Hostname,Timestamp,Message五种信息.
Facility是syslog对信息源的大致分类,比如该事件来源于操作系统,进程等,用整数表示.其中16-17的local use可以为哪些没有被明确定义的进程或者应用所使用,通常思科IOS设备,CatOS交换机,VPN3000使用Facility Local7发送syslog信息,PIX防火墙使用local4,当然这些缺省值是可以修改的.
Severity 信息源或者Facility根据信息的严重程度使用1位数字进行分类.
数字 |
严重程度 |
0 |
Emergency: 报告软件或者硬件问题 |
1 |
Alert |
2 |
Critical |
3 |
Error |
4 |
Warning |
5 |
Notice: 系统重启或者接口up.down |
6 |
Informational |
7 |
Debug: Debug命令的输出 |
Hostname 设备名或者IP地址,如果多接口使用传送信息端口的IP地址.
Timestamp 时间戳是本地时间,IOS允许添加时区信息,前面加个特殊字符比如*,格式如下: MMM DD HH:MM:SS Timezone *.
Message 信息.
Syslog服务器的部署
内置syslogd的配置
/etc/syslog.conf文件控制syslogd的配置.里面有根据facility和severity来定义的规则,格式为facility.severity
字符 |
功能 |
, |
在一句话定义相同seveity级别的多个facilities,例如 local1,local5.debug |
; |
分开多个facility.severity语句在一条规则,常和!选项合用 |
* |
指定所有的facilities或者severities. |
None |
给定的facility没有severity |
= |
指定某个facility下特定的severity比如 local7.=debug 只记录level7信息在debug级别而不包含剩下的 info, notice, warning等信息,缺省会包含下级的severity信息 |
! |
忽略特定的severity的级别,包含下级的.格式为 facility.!severity. 比如local7.*;local7.!err 记录所有的local7信息但是忽略severity等级为error, critical, alert和emergency的信息. |
@ |
定义远端的syslog服务器地址.格式为facility.severity |
一个复杂的例子如下:
local6.*;local6.!=err /var/log/allexcepterror.log 写入所有facility为local6的信息到all*.log文件,只排除severity为err的信息
缺省情况下syslogd只能接收来自本地的syslog信息,如果要接收远端的syslog信息,启动的时候要加上-r选项
配置基于linux的syslog-ng服务器
由于内置syslogd的有facility分类笼统,信息过滤弱等缺陷,推荐使用syslog-ng来替代.去该下载安装后通过修改/etc/syslog-ng文件来进行软件的配置.该文件包含5个部分:options,source,destination,filter和log.
Options 定义全局选项,格式为options { option1(value); option2(value); ... };
Source 定义守护进程收集信息的源,格式为source identifier { source-driver(params); source-driver(params); ... };
Destination 定义所收集信息经过过滤后保存的地方,格式为destination identifier { destination-driver(params); destination-driver(params);
例子destination hosts { file("/var/log/host/$DATE" create_dirs(yes)); }; 按照日期来保存文件,如果没有相应的目录为自动创建.
Filter 定义过滤规则,格式为filter identifier { expression; };
Log 把source,filter,destination合并,实现来自某个source的信息符合特定的filter后送到所定义的destination.格式为log { source(s1); source(s2); ...filter(f1); filter(f2); ...destination(d1); destination(d2); ...flags(flag1[, flag2...]); };
配置基于Windows的syslog服务器
是一个免费的图形化syslog服务软件,安装配置比较简单.
配置思科设备对syslog的支持
路由器下syslog支持的配置
配置示例:
Router(config)#logging 192.168.0.30 配置syslog服务器地址,可以定义多个
Router(config)#service timestamps debug datetime localtime show-timezone msec
Router(config)#service timestamps log datetime localtime show-timezone msec syslog信息包含时间戳
Router(config)#logging facility local3 定义facility级别,缺省为local7,可以设置从local0到local7
Router(config)#logging trap warning 定义severity级别缺省为infor级别
Router(config)#end
Router#show logging
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
Console logging: level debugging, 79 messages logged
Monitor logging: level debugging, 0 messages logged
Buffer logging: disabled
Trap logging: level warnings, 80 message lines logged
Logging to 192.168.0.30, 57 message lines logged
交换机下syslog支持的配置
配置示例:
Console> (enable) set logging timestamp enable 定义信息包含日期戳
Console> (enable) set logging server 192.168.0.30 指定服务器地址,最多可以指定3个
Console> (enable) set logging server facility local4 定义facility级别,缺省为local7,
Console> (enable) set logging server severity 4 定义severity级别除了前面提到的路由器上的severity级别以外还有一些交换机特有的
Console> (enable) set logging server enable 启用syslog服务
Console> (enable) show logging
Logging buffered size: 500
timestamp option: enabled
Logging history size: 1
Logging console: enabled
Logging server: enabled
{192.168.0.30}
server facility: LOCAL4
server severity: warnings(4
Current Logging Session: enabled
Facility Default Severity Current Session Severity
------------- ----------------------- ------------------------
cdp 3 4
drip 2 4
PIX防火墙下syslog支持的配置
配置示例:
Firewall(config)# loggin timestamp 定义信息包含日期戳
Firewall(config)# logging host 192.168.0.30 服务器地址,可以指定以udp或者tcp来发送信息,对于思科的PIX FW syslog软件只发送tcp.
Firewall(config)# logging facility 21 定义facility级别,防火墙使用两位字符,local0对应16,依次类推,缺省为20也就是local4
Firewall(config)# logging trap 7 定义severity级别,7为debug,0为emer,1为alert.
Firewall(config)# logging on 启用syslog
Firewall(config)# no logging message 111005 抑制特定的syslog信息
Firewall(config)# exit
Firewall# show logging
Syslog logging: enabled
Facility: 21
Timestamp logging: enabled
Standby logging: disabled
Console logging: disabled
Monitor logging: disabled
Buffer logging: disabled
Trap logging: level debugging, 6 messages logged
Logging to inside 192.168.0.30
History logging: disabled
Device ID: disabled
VPN Concentrator下syslog支持的配置
在web管理界面下Configuration > System > Events > Syslog Servers通过add来增加syslog server的地址和facility级别. Configuration > System > Events > General下通过severity to syslog的下拉菜单选择发送信息的serverity级别.然后保存修改.