将交换机日志保存到外部日志服务器

交换机的日志功能很重要可以为我们的故障诊断提供第一手资料,所以建议在所有交换机上开启日志功能。交换机的日志功能开启后默认是在交换机的缓存中,但是当缓存满了以后交换机会删除以前的日志,以腾出空间记录新的日志。这时我们就希望将日志保存到外部的日志服务器,这样所有的日志都会被保存到外部服务器,我们不用再登录到路由器或交换机上去用show logging命令来看日志了。下面是做法。

日志服务器: IP :10.143.132.32 操作系统:Centos 6.2 X64

需要发送日志到服务器的设备为3台cisco 2960交换机。

日志服务器的配置

编辑位于/etc/rsyslog.conf,将红线部分的注释去掉,这两行的意思是提供用udp端口514来接收远端的日志信息。

elk 交换机日志 交换机日志外发_操作系统

在RULES最后部分加入如下几行,这几行定义了将交换机的日志保存到日志服务器的什么文件。有必要解释一下,带#的是注释文件,local7是设备名称这是交换机的默认名称,名称是可以通过交换机命令来定义的,不同的设备要有不同的设备名称,否则日志都被写入到默认的文件中,导致我们分不清楚哪部分日志是哪台机器产生的。

elk 交换机日志 交换机日志外发_日志服务器_02

默认情况下,syslog进程是不能接受其他日志服务器发过来的消息的。而通过修改其启动参数,可实现日志的大集中功能。
修改/etc/sysconfig/rsyslog文件:加入syslogd-option="-r –m 0"

elk 交换机日志 交换机日志外发_操作系统_03

如果启用了防火墙的话需要允许udp端口514通过,可以用以下命令来使防火墙放行514端口。

iptables –I INPUT 1 –p UDP --dport 514 –j ACCEPT

这条命令会在系统重启后失效,可以将运行在内核中的防火墙规则用如下命令写入到另外的文件中

iptables-save >/etc/iptables.rules

最后重启日志服务日志服务器端的配置就完成了。记得在/var/log目录下创建rsyslog.conf中定义的文件额,可以用touch命令来创建。

交换机的配置

在全局配置模式下

Logging on                    ##打开日志功能

Logging host 10.143.132.32       ##将日志发送到外部服务器10.143.132.32

logging facility local2            ##将设备命名为local2,该交换机的日志将会写入到在服务器端配置为local2的设备所对应的文件/var/log/ghca2.log。

效果

最后来看看效果

elk 交换机日志 交换机日志外发_操作系统_04

可以看出来交换机的日志已经被发送到日志服务器了。