最近在运维实施的过程中需要集中收集交换机日志,所以本人就研究了一下,发现系统的rsyslog服务还是能够满足日志收集的要求的,所以今天写了这篇文章,希望能帮助到大家,闲话少叙,接下来是正文。。。
注:本次收集的是H3C交换机系统日志,如果需要收集其他交换机或者服务器的日志, 在客户端会有些许的差别。
一、服务器务器端
服务器端使用了Cent OS 7.0,并使用其内置的rsyslog进程收集其他设备日志信息。
1,编辑rsyslog参数
打开 /etc/sysconfig/rsyslog
找到SYSLOGD_OPTIONS,加入参数\"-m 0 -r\"。
-m 0表示不在日志中添加时间戳消息
-r 表示允许接收外来日志消息。
[root@zabbixserver ~]# vim /etc/sysconfig/rsyslog
编辑rsyslog配置文件
2,[root@zabbixserver ~]# vim /etc/rsyslog.conf
打开 /etc/rsyslog.conf,找到如图所示位置。
删掉两个注释用的#号,使rsyslog在UDP的514端口上接收消息。也可以删掉TCP两行注释的#号,使用TCP的514端口。
在GLOBAL DIRECTIVE块之后添加以下的日志接收模板:
$template IpTemplate,\"/var/log/%FROMHOST-IP%.log\"
*.* ?IpTemplate
& ~
$template IpTemplate :指令让rsyslog进程把日志文件写入到/var/log/下指定的log文件中,指定的log文件使用客户端的IP地址命名。
& ~:表示的是重定向规则,告知rsyslog进程无需进一步处理日志消息,无需写入本地日志文件。
3,验证rsyslog配置
修改完配置文件,创建接收模板之后就可以重启rsyslog进程。
sudo service rsyslog restart
重启后可以使用netstat命令验证rsyslog进程的工作状态。
sudo netstat -tulpn | grep rsyslog
4,配置交换机(客户)端
交换机的配置相对简单,只需要两行命令即可。
需要进入到全局模式中,使用命令:
info-center enable
info-center loghost 192.168.1.10 facility local4
注:ip换成需要监控的主机就可以。