胜利云平台日志数据采集方案设计与实现
2018-11-05路慎强苏卫牟菁于明洋
路慎强 苏卫 牟菁 于明洋
摘要:首先,在云平台的基础上提出了日志服务的概念。其次,针对日志的概念,引入日志管理服务的必要性以及目前日志管理的现状进行了阐述和分析。最后,提出了一种适应胜利云平台的日志数据采集方案,进行了示范应用,取得了很好的应用效果
【关键词】日志 云平台 数据采集
1 引言
为提升胜利油田勘探开发信息应用系统的集成应用水平,胜利油田设立勘探开发集成应用云平台建设项目,集成勘探、开发、采油工程等专业应用系统,将勘探开发综合應用服务平台打造为油田信息集成应用云服务平台。该平台可以实现油田勘探开发信息应用系统的规范开发、集中管理、授权应用,用以解决胜利油田信息应用系统多、功能重复、平台不统一、独立部署、分散应用等问题。伴随着云平台的建设,传统的日志服务也提升到了云日志的层次。云日志是云平台的一个重要组成部分,正是云计算、云平台才使云日志得以存在。实际上,一种新的部署模型已经出现:日志即服务( LaaS)。LaaS指的是提供者用云设置来提供日志记录服务。也就是说,提供者获取日志数据,并代表其他人实施分析。
2 日志数据采集方案的设计
2.1 日志的定义
日志如何定义?半世纪前说起曰志,想到的是船长、操作员手里厚厚的笔记。如今计算机诞生使得日志产生与消费无处不在服务器、路由器、传感器、GPS、订单、及各种IOT设备通过不同角度描述着我们生活的世界。借助于计算力量,通过收集、处理、使用日志,我们不断更新对整个世界以及体系的认知。从船长日志中可以发现,日志除了带一个记录的时间戳外,可以包含几乎任意的内容,例如:一段记录文字、一张图片、天气状况、船行方向等。几个世纪过去了,“船长日志”的方式已经扩展到一笔订单、一项付款记录、一次用户访问、一次数据库操作等多样的领域。日志这种广泛使用模式只所以经久不衰,在于:“日志是一种简单的不能再简单的存储抽象”。它是一个只能增加的,完全按照时间排序的一系列记录。日志(时间序列数据)如图1所示。
日志可以在末尾添加记录,也可以从左到右读取日志记录。每一条记录都指定了一个唯一的有一定顺序的日志记录编号。日志顺序由“时间”来确定,从图上可以看到日志从右到左的时间顺序,新产生的事件被记录,过去的事件渐渐远去,但它记录了什么时间发生了什么事情,这无论对于计算机、人类、还是整个世界而言,都是认知与推理的基础。
2.2 油田日志管理服务的引入
在大数据时代,数据的来源急剧扩张,一个移动终端一天可能会有几十次的操作,一次网上购物可能会产生数十条日志,随着数据存储成本不断降低,企业有了更大的经济动机来保存尽可能多的数据,以便日后挖掘数据潜在的价值。日志系统就是用来收集尽可能多的业务日志和系统日志,而后对原始数据进行分析、存储,响应数据分析查询的需求。
在胜利油田目前使用的各类型应用中,都包含日志管理功能。该功能与应用具体的业务功能相对独立,但又必须存在,导致在应用研发时,研发周期变长。在这样的前提下,将日志管理功能从各个应用中抽取出来,建设相应的日志管理服务,日志服务建设的目标框图如图2所示。为相关应用系统提供统一、稳定、全面的日志管理和分析服务,提高应用系统的开发效率,降低维护成本是我们的最终目标。
目前,日志管理服务提供的功能主要包括三方面:日志数据的采集存储;日志数据的分析和挖掘;分析和挖掘结果数据的展示。本文主要讨论的是日志数据的采集存储方案的设计和实现。
2.3 油田日志数据采集现状分析
目前,油田运行的各种应用系统都拥有自己的日志管理模块,但是对日志的应用还处于相对低级的阶段,图3为日志数据分析报表。日志的存储都是使用SQL Server、Oracle等关系型网络数据库;日志的采集是通过对数据库的操作来进行。
当将日志管理提升到云平台的基础服务时,目前的日志数据采集存储方案存在很大的问题,主要的问题有以下几项:
(1)为了数据分析和挖掘的需要,日志数据必须统一存放。然而日志数据的特点是只增加,不会存在删除、更新数据的情况,当应用系统运行多年以后,日志数据库中庞大的日志数据量将会对日志分析和查询效率带来巨大的挑战。
(2)目前直接操作数据库来进行日志采集的方式不适合下一阶段应用系统云化的发展。
针对上述问题,本文提出了针对云平台的日志数据采集方案。
2.4 云平台日志数据采集方案设计
日志管理服务采用分布式计算方式,各模块之间都是项目独立并支持横向扩展极大方便在云环境下的部署,如图4所示。
2.4.1 日志数据的存储
本文设计的日志数据存储方案是使用基于linux文件系统来分布式存储日志索引文件,这样无需额外存储系统,在x86服务器(或虚拟机)上挂接磁盘阵列,即可实现索引的分布式存储及副本备份。
2.4.2 日志数据采集方案
云平台日志管理服务中,日志数据的采集方案根据是否可以对应用系统进行代码级别的改造而分为两类:
(1)支持拉取mysql,oracle,sql server等数据库信息(适用于无法改造的应用系统)。
(2)支持通过ws/api等服务接口来推送应用系统日志(适用于可改造应用系统)。
3 日志数据采集功能的实现
根据日志服务的应用需求,设计日志服务的实现框架,如图5所示。下文将对方案中的关键技术内容分别展开论述。
3.1 方案一:拉取日志数据
日志数据采集可以通过Agent来定时进行数据库数据抓取操作,如图6所示。
该方案的实现需要原系统有日志管理功能,且日志数据己进行本地或数据库存储;日志数据接入时需要了解日志数据表的结构和字段含义;相应的应用系统无须进行代码级别的改动,日志数据采集所需的工作量较小。
3.2 方案二:推送日志数据
日志数据可以通过服务接口来进行实时推送操作,如图7所示。
该方案中,应用系统需要进行代码级别的改动,开发的工作量较大;只要符合数据采集规范的日志数据都可以使用Json格式进行推送,扩展性好,可以支持云化扩展和支持。
4 应用实例
上述方案已经在胜利云平台的日志管理服务中进行了示范应用。目前通过拉取日志方式接入日志数据源3项,通过服务接口推送方式接入日志数据源20余项,系统运行稳定,日志数据采集正常,日志采集效果如图8、图9所示。
5 结论
通过对日志数据采集方案的研究、设计与实现,为全油田范围的应用系统提供了日志数据采集和存储功能。无论是现有应用系统、新开发的系统,已开发或者没有日志管理的系统都可以为其提供支持。本技术的研究和实现,大大缩短了信息系统项目建设周期,减少其时间和开发成本;还进一步扩大了应用的运维范围,提高信息系统用户身份及访问管理工作效率,降低信息系统日志分析人工管理成本。
参考文献
[1]徐娟娟,基于NoSQL的Web日志分析系统的设计[D].安徽理工大学,201 2.
[2]李胜浩.基于MapReduce的Web文本挖掘系统的研究与实现[D].北京邮电大学,2013.
[3]卓海艺,基于HBa se的海量数据实时查询系统设计与实现[J].北京邮电大学,2013 (02):4.
[4] Anton A.Chuvakin, Kcvin J.Schmidt,Christopher Phillips.日志管理与分析权威指南[C].机械工业出版社,201 4.
[5]张榆,马友忠,孟小峰.一种基于HBa se的高效空间关键字查询策略[J].小型微型计算机系统,2012,33 (10):2141-2146。
[6]詹玲,马骏,陈伯江等,分布式I/O日志收集系统的设计与实现[J].计算机工程与应用,2010,46 (36):88-90.