您好, 访客   登录/注册

日志存储技术的分析与研究

来源:用户上传      作者:

  摘要:日志就是计算机系统、设备、软件的在某种刺激下反应生成的东西。通过日志可以了解计算机硬件和软件的运行状态,可以找出运行问题所在。但随着时间的增长,留存的日志记录会很快的增长到TB或PB级。因此,日志的存储和快速检索分析是一个关键问题,在这篇论文中我们将讨论日志数据的存储格式、检索速度,重点阐述数据库存储的目标、特点与优缺点。
  关键词:日志;日志存储;格式;快速检索;数据库存储
  中图分类号:TP316 文献标识码:A 文章编号:1009-3044(2015)12-0243-03
  Analysis and Research on Log Storage Technology
  YANG Jia-ying
  (Guangdong Trade Vocational Technical Schools, Guangzhou 510507, China)
  Abstract:The log is computer system, equipment, software in a stimulus reaction. The log can understand the running status of computer hardware and software, can find out the operation problem. But with the increase of time, retained the log records will soon grow to TB or PB. Therefore, log storage and fast retrieval analysis is a key problem, in this paper we will discuss the storage format, log data retrieval speed, focusing on target, characteristics and advantages and disadvantages of database.
  Key words: the log; log storage; the format; quick search; database storage
  1 日志存储需要注意的问题
  1.1评估适用的依从性要求
  在当今的许多行业中,诞生了一大批健全的依从性需求。这方面的例子包括支付卡行业数据安全标准,它明确规定了非常具体的日志保存周期为1年,但其他并没有明确的存储周期。这条原则将帮助你为留存策略打下基础,确定最低需求。
  1.2评估组织的风险态势
  内部和外部的风险导致不同长短的留存周期,对组织来说,每个风险领域的事件长度以及日志的重要性可能有很大的不同。需要注意的是,如果你的日志主要用于内部威胁调查,则需要较长的留存周期,因为事故常常是多年都未曾发现的,但一旦发现,就必须紧急的将其追查到底。
  1.3关注各种日志来源和生成日志的大小
  防火墙、服务器、数据库,WEB代理服务器,不仅基于需要,也基于典型日志体积及每个日志记录的大小和类型。各种设备或是应用程序生成的日志体积有很大的不同。例如,主防火墙会生成大量的日志内容,因此为了满足次数据的长期留存需求,通常只存储30天的日志。然而,应该仔细评估某些组织的依从性需要以及主防火墙的关键程度,决定是否采用更长的留存周期。对于某些日志来源,可能不具备必要的分析工具。
  1.4评估可用的存储方式
  日志存储选项包括硬盘、DVD、WORM、磁盘、RDBMS、日志特定存储,以及基于云的存储。这方面的决策取决于价格、容量、访问速度,最重要的是以合理的周期得到正确日志记录的能力。还必须考虑,存储媒介的寿命和存储媒介多长时间重写才能满足留存周期需求。例如,7年的时间对便宜的可写CD以及DVD可能太长了。技术格式会过时,用于读取软盘驱动器可能难以购买到。
  2日志存储的格式
  我们的网络设备、应用程序以及操作系统会产生许多不同的日志格式,在许多情况下,日志被存储为文本、二进制或者是压缩的格式。
  2.1文本文件
  基于文本的日志记录是目前出现的最多的日志类型,这主要是因为生成这类日志时需要较低的系统成本,以及现有的许多计算机语言中包含了可以很轻松生成基于文本日志的框架。此类日志文件有着许多优点,其一是应用程序写入时耗费CPU以及I/O资源很少;其二是目前很多常规文本工具都可以很方便的处理和查阅;其三是许多常见的基于文本的日志格式已经存在,更易于集中化及解析,创造一个更完善的日志管理系统。
  2.2二进制文件
  二进制日志文件是应用程序生成的机器可读日志文件,需要专有的工具或是程序去阅读或处理它们。较常见二进制日志文件的例子包括IIS日志以及Windows事件日志。二进制日志文件的长期存储给工作带来了许多挑战,但却在磁盘空间利用率上很高效。
  2.3压缩文件
  大部分生成日志的系统一般会在日志增长到指定大小时,开始一个新的日志文件,之前的日志文件通常会重命名,并以未压缩格式存储于系统硬盘中,以便访问和查询。随着时间的推移,日志会慢慢老化并且数量越来越多,以至于占用宝贵的存储空间,系统中压缩日志文件就是解决这种需求并节省宝贵磁盘空间的一种机制。
  3利用数据库存储日志文件
  到目前为止讨论的许多存储技术需要直接访问系统和特定的日志审核工具集。这样做是很快速和高效的,但是在许多情况下,我们创建摘要报告、过滤器、以及在多台主机间关联日志数据的能力常常受到严重的限制。许多人发现将日志信息写入数据库中,对需要日志信息的利益相关方很有用,这样某种格式的日志信息可以快速搜索和查询,并且便于日志审核过程中前端工具的安装和使用。   3.1优点
  使用数据库来实现日志留存主要的优点之一是易用性,你可以使用标准的SQL查询快速搜索和检索日志记录。数据库系统具有健全的用户访问和权限系统,而且可能已经是组织备份和恢复计划的一部分。现在有许多标准工具可以查询数据库。这些工具允许使用一个通用的工具集来查询日志数据,而不是使用需要专门知识和权限的特定平台工具。许多编程语言内建了数据库处理的支持,可以开发用于日志数据实时查看与分析的前端工具。这减少了开发和维护内部专用系统将日志加载到数据库的需求。此外,这有助于将日志数据集中到一个数据库系统中。
  3.2缺点
  将日志数据存入数据库系统并不能避免本身的一些问题和风险。向数据库中写日志消息会有显著的开销。向数据库中写数据明显比写入本地磁盘文本文件慢,主要是网络延迟,SQL解析,索引更新以及向磁盘提交信息。使用数据库存储日志对磁盘的空间需求也较高,主要是因为实现快速搜索和检索需要大量索引文件,压缩数据的选项也较为有限。数据库系统在一个组织中往往有多种用途,因此需面临数据库故障、维护以及支持日志记录或其他内部系统而升级时的数据丢失风险。当留存策略不再需要日志条目时,数据的销毁也会成为问题。若没有合适的规划或分区,删除日志数据可能花费相当长的时间。日志数据一般非常巨大,因此数据的销毁可能指示数据库系统删除数百万甚至数十亿行,并更新所有被删除数据的索引。
  3.3数据库存储的目标
  3.3.1存储的内容
  存储日志到数据库时最关键的问题就是 “存储什么”。当使用数据库作为集中储存以及日常日志审核分析时,应该保留所有的日志条目以及数据库的日志字段。对于不通用的二进制或应用程序日志来说,要想在数据库中维护日志数据,可能需要编写自己的使用工具、开发自己的数据库模式。良好的分析以及尽量保存所有字段,能避免在审核系统关键漏洞时发现缺少分析所需的关键信息。
  使用数据库作为主要日志存储的缺点就是:从日志安全或基础设施角度来说,数据量太庞大太臃肿了。其实,数据库基础设施无法在不影响客户的情况下,支持这样的数据容量。在这中情况下,混合的存储方法可能会更好,原始的日志数据留存在日志系统中或集中在syslog服务器里。以下信息通常被存入数据库中,以便分析系统和生成报告:
  1)头信息,通常包括某事件发生的时间戳以及事件涉及的ip地址,单独存储这些信息在构建信息、确定主机虚报、漏报以及系统时间的联系时非常有用。
  2)消息体,通常就是事件的消息,在数据库中存储这些消息主要是用来构建实时报警系统。例如,可以快速查询和报告频繁出现登录失败时消息的情况。
  3)分析和总结,自定义脚本和工具可能被各个系统使用,以确定整体事件走向并对结果进行总结。将这些分析存入数据库可以简化整个企业的事件分析报告,并在较低的体数据库存储和可伸缩性需求的情况下,简化组织的集中审计和摘要报告。
  3.3.2快速检索
  在定义了存储内容之后,需要进行一些审核和分析,对数据库进行优化,实现相关数据库的快速检索。需要定义的关键之一就是在日常审核或者常用查询中被使用到的数据项。如:
  1)优先级--消息的重要性或相对重要性
  2)日期和时间--表明事件什么时候发生。
  3)主机--生成这个事件的系统。
  4)消息--事件发生的详细信息。
  关于日志数据,反复提到的一个主题就是存储大小会持续增长。即使在数据库中构建了索引和查询优化,但在数万亿行数据项中搜索依旧会变得缓慢和繁琐。许多数据库系统支持分区,分区允许逻辑上的单个数据表格分裂成较小的多个区块。在日志数据中,基于日期和时间对数据库表进行分区是一个符合逻辑的做法。
  3.3.3报告
  通常需要把日志数据生成报告,以支持外部管理人员和内部利益相关方进行日志数据的分析和审核。这些表中应包含关键条目的汇总,这样能加快检索数据的速度。即使生成这些信息可能会耗费大量时间,也应该尽可能添加到存储系统中,这些报告通常包含:
  1)分析结果:通常是多个日志条目的组合,这些条目包含某些需要分析或者进一步采取行动的事件。
  2)每个主机根据事件的重要性进行统计:这对于发现攻击事件或者查明故障原因时非常有用。
  3)基于时间的汇总:很多时候我们可能需要每日、每周或每月的报告,以便进行分析和审核。
  4结束语
  日志管理工作是计算机管理工作中不可分割的一部分,理解日志存储的方式与格式,综合分析日志存储的优缺点,选择一种适合自己工作的存储方式,能够快速的进行检索、分析与审核,这些都对管理工作起着事半功倍的效果。我们应该重视管理工作中日志的存储,不断总结、分析,让我们获得更多有价值、更实用的日志,使日志成为我们工作中最好的伙伴与帮手。
  参考文献:
  [1] Chuvakin A A,Schmidt K J.日志管理与分析权威指南[M].北京:机械工业出版社,2014,6.
  [2] 金帅资讯科技有限公司.电脑病毒日志[M].武汉:华中理工大学出版社,2009.
  [3] 水清华.我是网管-网络管理员经验日志[M].北京:中国铁道出版社,2014.
  [4] Bryant R E,David O'Hallaron.深入理解计算机系统[M].北京:机械工业出版社,2011.
转载注明来源:https://www.xzbu.com/8/view-11805410.htm