前言:

对于Log数据集中收集管理来说,Syslog服务的重要性不言而喻。比如在平时,Openresty就吐出很多log数据,对这些数据进行集中,可以对积累的数据进行分析,从中找到很多有价值的信息。

像paloalto这种设备,可以根据定制化的策略规则产生的数据,对应不同机器的不同的syslog服务, 如果性能和负荷都够的话,也可以把一台paloalto设备上的安全策略,对应同一台syslog-ng服务的不同端口。

把高,中,低,交通数据,吐到192.168.0.1的 810,811,812,813端口上的syslog服务上。 然后,分别对不同级别信报进行分类处理。

也可以把,指定一个网段的所有交通数据都集中吐到一个端口服务上。然后,通过ELK进行这个网站数据流量的分析,对记录字段进行分词统计。

正文:

拿阿里VPS来说,如果是Ubuntu系统,安装Syslog-NG很方便,使用apt-get的方式:

sudo apt-get install syslog-ng

安装之后,可以看一下运行的状态:

/etc/init.d/syslog-ng status

syslog-ng启动,关闭,重启的参数用法也很简明。

Usage: /etc/init.d/syslog-ng {start|stop|restart|reload|force-reload|status}

syslog-ng的新开端口接收数据写入。

自动安装的syslog-ng的配置文件的位置在/etc/syslog-ng下, 叫syslog-ng.conf, 配置动作需要三步。

一共需要定义三个部分:Sources, Destinations, Log paths。

Sources: 是用来定义, syslog服务要绑定的本机IP和对应的Port,还有定义用于网络传送数据使用的协议(TCP/UDP)。

Destinations: 用于定义Log文件存储的位置,定义log文件名定义的样式,比如,使用年,月,日,时间等组成部分来给log文件命名。

Log paths: 用于定义Sources和Destinations的关联关系,就是指定那个监听的端口接收的Log数据,存储到本地的那个目录文件下。

这三部分,在配置文件中对应有注释块,下面就是要追加端口服务的配置定义:

########################
# Sources
########################
#我们定义810端口,为syslog对外服务端口。

source s_src {
       udp(ip(0.0.0.0) port(810));
};



########################
# Destinations
########################
#定义log文件存储的位置和log文件名的规则,前缀使用Openresty,后缀依年,月,日变量参于文件名命名。

destination d_portscan { file("/data0/syslog/Openresty_${YEAR}_${MONTH}_${DAY}.log"); };


########################
# Log paths
########################
#将定义的source和destination进行关联。
log { source(s_src); destination(d_portscan); };

修改配置文件后,我们重新起动一下syslog-ng

/etc/init.d/syslog-ng restart

后记:

很多服务都提供syslog吐出的功能,我们可以建立一个log数据集中的服务器,定义不同的端口来收集不同服务的数据,数据可能来自Openresty的访问log,也可以来至paloalto的威胁情服,还可以是邮件服务器的用户登陆情报log,通过这些数据的关联性,挖掘我们想要的数据,得出参考结论,可以ELK这种工具,也可用脚本语言实现数据分析。