把Cisco的Debug信息记录到远程Linux的syslog服务

以下过程在 CentOS 5 上通过,应该同样适用于 RedHat,CentOS,Fedora

假设:

Linux 机器IP: 192.168.0.3

Cisco IP: 192.168.0.2

一,设置Linux端

1. 用 root login

2. Linux 默认已经安装了syslog service,也可以检查一下

# service syslog status

syslogd (pid 14358) is running...

klogd (pid 14361) is running...

3. 修改 /etc/syslog.conf

#vi /etc/syslog.conf

在末尾添加以下内容

# Cisco syslog messages

local0.*                                        /var/log/cisco.log

4. 修改 /etc/sysconfig/syslog

#vi /etc/sysconfig/syslog

修改下面一行,其中 -r 是表示接受远程机器发送过来的syslog信息,默认是拒绝的。

SYSLOGD_OPTIONS="-r -x -m 0"

5. 建立一个空文件

#cp /dev/null /var/log/cisco.log

6. 重启syslog服务

#service syslog restart

7. 如果一切顺利,你的syslog service就可以接受远程机器发送过来的信息了,也可以进行本地测试:

#logger -p local0.notice "my test 3"

会在 /var/log/cisco.log中看到my test 3字符串

8. syslog service 使用 udp port 514, 如果你的机器设置了iptables防火墙就需要开放 udp 514. 我的机器是这样的

#iptables -I RH-Firewall-1-INPUT 10 -s 192.168.0.0/24 -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT

我是在iptables第10行处插入新规则,开放整个192.168.0.0 段对syslog的访问。

二,cisco端的设置

进入特权模式,然后

#conf t

logging 192.168.0.3

logging facility local0

logging trap debugging

增加这三个命令就足够

其中第一行 ip 192.168.0.3 是syslog服务器的ip

第二行把 facility 设置为local0和syslog 服务器的/etc/syslog.conf中的设置对应

第三行就是指定需要送什么内容给syslog server

这样cisco的debug信息就会被记录到syslog server 的/var/log/cisco.log。而且不会影响本地 terminal monitor 的显示。

== 完 ==

声明:以上内容全部经过博主测试成功。

相关推荐