配置Syslog为路由交换的日志服务器

 配置Syslog为路由交换的日志服务器vim

 
简介
   TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
Rsyslog是一个自由软件,GPL的lincesed加强的syslogd。其中,它提供了MySQL和彻底可配置的输出格式(包括大时间戳)的支持。 Rsyslog发起Rainer的格哈茨。据叉从标准的sysklogd包。rsyslog项目的目标是提供一个更可靠的系统日志守护进程和配置。所谓“可靠”,是指支持如TCP或RFC 3195(系统日志可靠)可靠的传输模式。咱们这样作并不意味着不可靠的sysklogd包。
 
1、环境介绍
路由器IP:10.2.0.65
服务器(Linux):10.2.0.68
 
2、tftp配置
[root@localhost ~]# yum -y install tftp*
配置tftp
[root@localhost ~]# vim /etc/xinetd.d/tftp
service tftp
{
        disable = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /Routing -c
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
重启服务
[root@localhost ~]# service xinetd restart
查看服务器是否正常启动
[root@localhost ~]# ps -ef | grep xinetd | grep -v grep
root     27863     1  0 Aug13 ?        00:00:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
[root@localhost ~]# lsof -i:514
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
rsyslogd 8971 root    3u  IPv4 2099134      0t0  UDP *:syslog 
rsyslogd 8971 root    4u  IPv6 2099135      0t0  UDP *:syslog 
 
3、配置rsyslog服务
[root@localhost ~]# vim /etc/sysconfig/rsyslog 
SYSLOGD_OPTIONS="-r -x -m 0"
加上"-r" 表示接收远程的日志
[root@localhost ~]# vim /etc/rsyslog.conf 
将这两行的注释去掉
$ModLoad imudp.so
$UDPServerRun 514
local7.*                       /Routing/Cisco.log
注:local7的定义(使用tcpdump查看)
[root@localhost ~]# tcpdump host 10.2.0.65 and udp port 514
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:53:11.202058 IP 10.2.0.65.vat > 10.2.0.68.syslog: SYSLOG local7.info, length: 110
13:53:14.032234 IP 10.2.0.65.vat > 10.2.0.68.syslog: SYSLOG local7.warning, length: 453
13:53:14.033748 IP 10.2.0.65.vat > 10.2.0.68.syslog: SYSLOG local7.warning, length: 412
13:53:16.202211 IP 10.2.0.65.vat > 10.2.0.68.syslog: SYSLOG local7.info, length: 110
最后重启启动rsyslog服务
[root@localhost ~]# service rsyslog restart
 
4、结果验证
[root@localhost ~]# tailf /Routing/Cisco.log 
看是否能够正常打印日志。
 
5、日志切割
将Cisco.log文件为每一个文件10000行的文件。
#!/bin/bash
DATE_LOG=`date -d yesterday +%F`
LOG_DIR="/logs/Routing/$DATE_LOG"
if [ ! -e /logs/$DATE_LOG ];then
mkdir -p /logs/Routing/$DATE_LOG
fi
lines=`wc -l /Routing/Cisco.log | awk -F " " '{print $1}'`  
i=1
file=1
while [ $i -lt $lines ]   
 do
   i2=`expr $i + 9999`
   sed -n "${i},${i2}p" /Routing/Cisco.log  >  /logs/Routing/$DATE_LOG/Cisco_$file.log    
   i=`expr $i2 + 1`
   file=`expr $file + 1`
  done
a=`echo $?`
if [ "$a"x == "0"x ];then
> /Routing/Cisco.log
fi
cd $LOG_DIR
tar zcvf "$DATE_LOG".tar.gz *.log
rm -rf *.log