以下过程在 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 的显示。
== 完 ==
声明:以上内容全部经过博主测试成功。