今天北京网络工程师给我一个需求,要搭建一个syslog服务,并且接受远程路由器的日志,后来google一下发现用syslog-ng搭建比较方便,搭建还是很简单,一顿google,找到一篇文章的,http://hi.baidu.com/qingchunranzhi/item/de6fce0795c23bd572e6766a。
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum --enablerepo=epel install syslog-ng eventlog syslog-ng-libdbi
[root@logsys0 data]# chkconfig rsyslog off; chkconfig syslog-ng on
[root@logsys0 data]# service rsyslog stop;service syslog-ng start
关闭系统日志记录器: [确定]
启动 syslog-ng: [确定]
#重新加载配置:service syslog-ng reload
由于我得server在内网,所以就把selinux 和iptables 都关闭了。关键的问题来了,下面是如何监控远程路由器的日志,网络工程师已经告诉我,他已经在router上将日志指向我得server了,以前从来没配置过,于是又是一顿google,貌似国内的没有几个配置成功的文章,包括chinunix论坛上得一个类似的问题都没有得到回答,于是挂上代理,用英文在google一次,找到了大牛的一篇文章教给你如何收取远程cisco router的日志http://paulpodolny.blogspot.com/2009/12/syslog-ng-cisco-configuration.html。
首先你要在文件/etc/sysconfig/syslog-ng 里机上下面两行
SYSLOGD_PARAMS="-r"
SYSLOG_DAEMON="syslog-ng"
第一行是让syslog-ng作为一个日志服务器
第二行是让syslog-ng作为默认的日志服务
接下来是配置/etc/syslog-ng/syslog-ng.conf文件
保留原来的配置,在下面加上一下语句
source s_udp { udp(); }; destination df_udp { file("/var/log/syslog/logs"); }; log { source(s_udp); destination(df_udp); };
然后 service syslog-ng restart, netstat -lntup|grep 514,查看一下syslog-ng有没有在监听,如果有,这时候就可以通知网络管理员在路由器运行 logging ip addr,这里的ip addr 是我syslog server的ip地址,这时候tailf /var/log/syslog/logs 就可以看到远程的数据了。