Rsyslog在IT日志采集中的应用

2019-09-30 01:16林峰旭刘金扬郑剑翟宜凯
网络空间安全 2019年4期

林峰旭 刘金扬 郑剑 翟宜凯

摘要:随着我国互联网发展,网络安全问题日益严重。校园网出口防火墙、网络行为审计等系统在运行过程中产生海量IT日志,这些日志对高校安全管理有着重要意义。但是,校园网IT日志种类繁多、数量巨大,给采集发送工作带来很大困难。文章对校园网IT日志采集的难点进行了分析,应用Rsyslog到校园网IT日志采集,以较低的运行成本和对现有应用最小的影响,解决日志的采集和转发问题。

关键词:Syslog;Rsyslog;日志转发;日志提取

中图分类号:TP391          文献标识码:A

1 引言

随着我国互联网日益发展,高校信息化程度逐渐提升,各高校通过建设信息化基础设施和平台系统提升自己的信息化水平,随之而来的是成倍增加的网络流量。新的互联网技术虽然给高校工作开展带来了巨大的便利,但是也产生了新的问题。网络攻击、网络舆情、网络泄密等事件的不断发生,给学校、社会造成了很多不利影响。

为应对这些问题,大多数高校均建设了校园网出口防火墙、网络行为审计等系统,以加强对互联网攻击的防御和互联网内容访问的管理[1-3]。这些系统在运行过程中会产生海量的日志数据,这些日志对防御外来攻击、舆情管控和泄密行为及时发现有着重要作用。通过对这些IT日志的集中分析,可以及时发现安全事件,能在事件发生后协助追踪溯源,且可协助用户掌握网络安全态势[4,5]。根据《中华人民共和国网络安全法》要求,网络运营者的网络日志需要留存不少于6个月。

同时,随着大数据技术的发展,IT日志分析价值也变得越来越高,其分析结果对于校园安全管理越来越重要,收集、存储、运用IT日志,已成为校园信息化建设的重要一环。

2 日志采集问题

在高校网络中,IT日志主要来自各类网络设备和信息平台,日志种类繁多、数量巨大。同时,各厂商一般都有自己的日志服务器,完成日志的收集和展示,以支持日常运维工作。但是,这些日志平台大部分注重短期数据的统计分析和展示,在日志的长时间留存和大规模关联分析方面并不擅长。

为了解决这个问题,搭建了基于Hadoop的日志平台,进行IT日志的统一收集和存储。

在日志采集方面,随着工作的开展,主要面临两大问题。

(1)多需求方问题。部分平台和系统的厂商有着自己的日志平台,且其数据源无法配置多个Syslog接收端,为了在采集日志的同时不影响现有平台功能,需要对日志进行复制,分别发往不同目的平台。

(2)日志提取问题。对于大部分平台和系统,日志均可通过Syslog进行发送,但是部分IT系统并不提供Syslog转发功能,日志以文件形式存储在操作系统中。

在日志采集领域,目前国内外有许多开源工具及解决方案。Logstash工具可从文件或Syslog等数据源获取日志,并对日志进行加工转换,将处理后的日志进行输出,是一个功能强大的日志采集工具。但是,Logstash基于JVM,有着较大的运行开销。Filebeat作为Logstash在日志提取中的替代品,是一个轻量级日志提取工具,有着更小资源占用,用于從文件中提取日志。Flume是Apache基金会的开源项目,支持从文件、Syslog等多种数据源收集日志数据,并发送到不同接收方。Kafka是一个开源的流处理平台,具有高吞吐低延迟的特性,并可以对数据进行持久化存储,常被用于日志转发。

Logstash虽然可以对日志进行转发,并且支持对Syslog日志的转发,但在日志量较大的时候存在着性能问题。Kafka虽然有着较高的性能,但是并未提供完善的Syslog转发功能。Logstash、Filebeat和Flume都可以用来提取应用系统中的文本日志,但是均需要在数据源服务器安装额外的软件,这不仅会有兼容性的问题,还可能影响应用服务器的稳定性。

Rsyslog是Unix和类Unix操作系统上的一个开源软件,支持从文件和Syslog接收日志,并提供日志信息转发功能。其实现了基本的Syslog协议,并对其进行了扩展以支持基于内容的过滤,提供了丰富的过滤能力,并支持通过TEP和UDP协议来传输日志数据。主流Linux发行版,如Centos、Ubuntu和Opensuse都预装了Rsyslog,并使用该软件进行各类系统日志的处理。

综合上述因素,本文基于Rsyslog实现校园网日志采集,通过应用该工具到日志提取和日志转发过程,解决日志采集中的转发和提取问题。

3 Rsyslog的应用

3.1 Rsyslog在日志转发中的应用

为解决同一类日志多个需求方的问题,基于Rsyslog搭建了日志中转服务器。服务器选用Centos 7作为操作系统,该版本的操作系统内置了v7或v8版本Rsyslog,可以快速搭建中转服务。Rsyslog在v6版本引进了高级配置(Advanced Configuration Format)[6]格式,基于高级配置格式,不仅可以更简单地完成日志复制转发,还可以实现清晰的复制转发任务管理。

如图1所示是Rsyslog日志转发的一个典型场景。Rsyslog从数据源接收日志数据,并转发到多个目的端:厂商日志服务器不受日志采集工作影响,提供日志分析服务;Hadoop集群作为日志存储仓库,负责日志的存储和大规模关联分析;Elasticsearch集群负责对短期内的热数据进行分析和展示;同时,将日志发布到Kafka集群,教学或科研团队可以通过订阅的方式获取日志,以此实现数据开放。

Rsyslog配置文件示例如下:

$Actionfiledefaulttemplate Rsyslog_Forwardformat

Module(Load="Imudp")

# Rsyslog监控日志

Module(Load="Impstats" Interval="300" Format="Cee" Severity="6")

Action(Name="Rsyslogstat" Type="Omfwd" Target="192.168.1.5" Port="9514" Protocol="Udp")

# 转发任务A

Ruleset(Name="Rulea"){

Action(Name="A2file" Type="Omfile" File="/Var/Log/Syslog/Alog.Log")

Action(Name="A2syslog" Type="Omfwd" Target="10.0.0.5" Port="9001" Protocol="Udp")

}

Input(Type="Imudp" Port="9000" Ruleset=" Rulea")

# 转发任务B

Ruleset(Name="Ruleb"){

Action(Name="B2syslog1" Type="Omfwd" Target="10.0.0.5" Port="9002" Protocol="Udp")

Action(Name="B2syslog2" Type="Omfwd" Target="192.168.2.5" Port="514" Protocol="Udp")

}

Input(Type="Imudp" Port="9001" Ruleset="Ruleb")

转发任务通过Ruleset和Input两种要素进行组织。Input定义日志监听任务,通过Imudp模块实现端口的监听和Syslog数据的接收,并将监听任务关联到Ruleset。Ruleset部分定义日志数据的处理方式,主要包括以UDP协议转发(基于Omfwd模块)和存储到文件(基于Omfile模块),通过在同一个Ruleset中配置多个Action实现日志的复制和转发。

基于Impstats模块实现对Rsyslog运行情况的监控,监控日志可通过Syslog发送到统一的日志服务器,以此实现对Rsyslog转发服务器的集中监控,保证日志转发服务的稳定运行。日志转发服务器基于一台Centos 7.3虚拟机,4核8Gb内存,配置一块千兆以太网卡。使用系统默认的Rsyslog 7.4.7搭建日志转发服务。截止本文成文,此服务器已承载5个系统8类日志的转发任务,复制并转发Syslog日志44.3Tb(上行)。平均下行带宽19Mbps,上行带宽70Mbps,每秒收发报文数超过30000,丢包率0.00039%。

3.2 Rsyslog在文件日志提取中的应用

对于不支持Syslog日志发送的系统,使用Rsyslog从文件中读取日志,并通过Syslog协议进行转发。为了在日志提取过程中最小限度影响现有平台,使用应用服务器中已有的Rsyslog进行日志提取和发送。部分系统由于建设较早,Rsyslog版本还在v5或者更早的版本,只支持基本配置(Basic Configuration Format)[6]格式。因此,为了保证兼容性,使用基本配置格式实现日志提取功能。

基于Imfile模块,Rsyslog可从指定文件中读取文本数据,并将其转换为Syslog消息。文件内容读取通过轮询实现,Rsyslog通过状态文件跟踪被监控文件的处理进度,以此实现增量日志提取。为达到不影响现有Rsyslog功能的目的,需要将日志提取发送任务配置在配置文件的头部,以免和其他配置冲突。

基于Rsyslog实现了Coremail系统日志的提取,具体配置如下:

# 读取多个文件并转发到同一个目的地址

$Modload Imfile

$Inputfilename /Home/Coremail/Logs/Imapsvr.Log

$Inputfiletag Imaplog

$Inputfilestatefile /Home/Coremail/Logs/Stat-Imaplog

$Inputfileseverity Info

$Inputfilefacility Local6

$Inputrunfilemonitor

$Inputfilename /Home/Coremail/Logs/Wmsvr.Log

$Inputfiletag Wmlog

$Inputfilestatefile /Home/Coremail/Logs/Stat-Wmlog

$Inputfileseverity Info

$Inputfilefacility Local6

$Inputrunfilemonitor

Local6.Info @10.0.0.5:9004

Local6.* ~

日志提取基于Imfile模塊实现,该模块通过轮询实现日志文件内容的获取和对文件修改状态的监控,将文本日志转换为Syslog消息。Syslog消息中的各种属性分别由以下几个配置项给出:$Inputfiletag给从文件中读取的内容加上标签;$Inputfileseverity给出日志的Severity[7]级别,一般取Info即可,也可根据日志内容调整;$Inputfilefacility给出日志的Syslog Facility[7],从Local0-Local7[7]中任选,选取时需避免冲突。最后通过日志发送配置(Local6.Info @10.0.0.5:9004)将Syslog消息发送到远端,并在发送完成后丢弃Syslog消息(Local6.* ~),不进行后续的处理,防止影响现有应用。

在實际应用场景中,使用Rsyslog监控学校邮件系统的Deliveragent.Log、Pop3svr.Log、Imapsvr.Log、Wmsvr.Log四个日志文件,并分别转发到两台不同的日志服务器。应用服务器基于一台8核心64Gb内存的服务器。获取了连续48小时的Rsyslog系统资源占用日志,并对其占用情况进行分析:CPU占用情况如图2所示,其CPU占用最高达到1.29%;平均内存占用11123Kb,最高内存占用为12556Kb。截至本文成文,此日志提取服务已从文件中读取并发送文本日志5.5亿条,邮件系统服务未受影响。应用表明,Rsyslog可在基本不影响现有平台的前提下,很好地完成日志的提取任务。

4 结束语

本文对校园网IT日志采集中遇到的同一日志多需求方和文件日志提取问题进行了分析,并通过使用Rsyslog解决这些问题。实践证明,通过运用Rsyslog可以有效地解决IT日志采集的问题,协助进行IT日志分析,为网络安全管理提供有效手段和技术支撑。

参考文献

[1] 睢贵芳.防火墙技术及其在校园网络安全中的应用探究[J].网络安全技术与应用,2019(2):57-66.

[2] 张新刚,刘妍.防火墙技术及其在校园网络安全中的应用[J].网络安全技术与应用,2006(5):19-21.

[3] 查贵庭,彭其军,罗国富.校园网安全威胁及安全系统构建[J].计算机应用研究,2005(3):150-152.

[4] 李栋科.一种面向海量网络审计日志的敏感用户挖掘分析架构[J].网络空间安全,2018,9(4):84-88.

[5] 万欣.网络日志在网络信息安全中的应用[J].网络空间安全,2018,9(3):78-81.

[6]  Rsyslog Documentation[EB\OL]. Https://www.rsyslog.com/doc/v8-stable/,2019.

[7]  Gerhards R. Rfc 5424: The Syslog Protocol[J]. request for comments, Ietf, 2009.