文章采集系统( 技术领域[0001]本发明-OG三层状态日志收集系统)
优采云 发布时间: 2022-01-18 05:11文章采集系统(
技术领域[0001]本发明-OG三层状态日志收集系统)
自定义日志采集系统及方法
技术领域
[0001] 本发明涉及一种采集各种系统和应用程序的日志,并对不同的日志进行自定义筛选处理的处理方法,尤其涉及一种自定义日志采集系统和方法。
背景技术
[0002] 日志采集是对各个系统和应用程序产生的日志文件进行采集,日志文件包括当前程序运行状态、错误信息、用户操作信息等。
[0003] 当前的日志采集系统和方法包括基于 Scribe 的采集框架、Chukwa 的采集框架和 Flume-OG 采集框架。
[0004]Scirbe框架是从各种来源采集日志,集中存储在中央存储系统中,然后进行集中统计分析。但是,由于代理和采集器之间没有相应的容错机制,数据就会出现。失去的局面,虽然是基于节俭的,但依赖更复杂,环境更具侵略性。Chukwa系统主要是为了采集各种数据。它收录了很多强大灵活的工具集,可以同时分析采集得到的数据,所以它的扩展性非常好。相比Scirbe框架,它可以定时记录发送的数据,提供容错机制,和hadoop的集成也很好,但是因为它的版本比较新,并且设计的主要初衷是为了各种数据的采集,日志的采集没有区别。什么具体的商业扩展,因此没有商业应用采用。Flume-OG框架也是一个三层的日志采集系统,具有agent、collector、store的三层结构。agent负责读取,collector负责采集过滤,store是存储层。同时负载由zookeeper提供,相比前两个框架更加可靠和安全。但是由于框架过于复杂,操作起来不是很方便,开发工作量巨大。什么具体的商业扩展,因此没有商业应用采用。Flume-OG框架也是一个三层的日志采集系统,具有agent、collector、store的三层结构。agent负责读取,collector负责采集过滤,store是存储层。同时负载由zookeeper提供,相比前两个框架更加可靠和安全。但是由于框架过于复杂,操作起来不是很方便,开发工作量巨大。什么具体的商业扩展,因此没有商业应用采用。Flume-OG框架也是一个三层的日志采集系统,具有agent、collector、store的三层结构。agent负责读取,collector负责采集过滤,store是存储层。同时负载由zookeeper提供,相比前两个框架更加可靠和安全。但是由于框架过于复杂,操作起来不是很方便,开发工作量巨大。采集器负责采集过滤,store是存储层。同时负载由zookeeper提供,相比前两个框架更加可靠和安全。但是由于框架过于复杂,操作起来不是很方便,开发工作量巨大。采集器负责采集过滤,store是存储层。同时负载由zookeeper提供,相比前两个框架更加可靠和安全。但是由于框架过于复杂,操作起来不是很方便,开发工作量巨大。
发明内容
本发明克服了现有技术的不足,不存在现有日志采集系统实时性、高可靠性、高自定制的问题,提出了一种高可靠性的自定制日志采集系统及方法。
为解决上述技术问题,本发明采用以下技术方案:
一个自定义的日志采集系统,包括采集系统、中间服务器、存储系统和负载均衡系统;所述采集系统连接所述中间服务器,所述中间服务器连接所有存储系统和负载均衡系统。
[0008] 进一步的技术方案是进一步包括*敏*感*词*,采集系统图连接到*敏*感*词*,*敏*感*词*连接到中间服务器。
[0009] 进一步的技术方案是采集系统包括至少三个客户端采集。
进一步的技术方案是提供一种自定义日志采集方法,所述方法包括以下步骤:
[0011]步骤一、根据需要采集的日志文件类型,确定自定义数据库系统结构化日志的采集源程序,实现日志的内容拉取功能文件;
[0012]步骤二、配置需要采集的文件路径;
[0013]步骤三、设置采用的通道类型;
[0014]步骤四、设置*敏*感*词*的内容,用于过滤掉不需要的事件;
[0015] 步骤五、设计为根据需要的客户端数量采集流向中间服务器的自定义框架;
Step六、 各客户端实时拉取日志文件内容,实现过滤写入段落;之后通过组件avrosink将指定端口发送给中间服务器,中间服务器接收数据并通过自定义的sink发送给目标的消息存储机制,完成日志的采集流程.
进一步的技术方案是步骤1中自定义的采集源程序步骤包括:
步骤一。设置采集文件的配置参数类;
[0019] 步骤b。实现文件的采集启动和停止方法;
步骤 c。配置并存储在位置文件中到文件的初始读取点;
步骤 d。建立一个线程,从posit1n点开始处理,不断发送的日志更新文件内容;
[0022] 步骤e。设置容错点,线程每10次执行一次,将当前读取文件的最后一个pist1n值存入posit1n文件;
[0023] 步骤f。为采集添加倾斜字符串的事件,具体标识内容包括:采集属于服务器名,采集属于应用程序名,采集属于到服务器IP。
进一步的技术方案是,步骤3中所述的通道类型包括:文件类型或内存类型。
[0025] 进一步的技术方案是,步骤6中描述的消息存储机制包括:数据库、消息定序器或分布式文件系统。
与现有技术相比,本发明的有益效果是:本发明可以对各种数据库系统和应用程序进行定制化的日志采集,利用实时的操作日志数据对操作系统的数据进行分析。提供状态、用户操作行为等实时数据。一旦出现系统错误信息,将及时获知并纠正。同时保证如果用户对系统进行了不当操作,可以及时停止。
图纸说明
[0027] 图。附图说明图1为本发明实施例的mysql数据库集群日志采集框架结构*敏*感*词*。
图2为本发明一实施例中的mongodb数据库集群日志采集框架结构*敏*感*词*。
[0029] 图。图3为本发明实施例的应用程序非结构化日志采集框架的结构*敏*感*词*。
[0030] 图。图4为本发明一实施例的源程序采集的流程图。
[0031] 图。图5为本发明一实施例的日志过滤和写入消息序列的流程图。
详细说明
[0032] 本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,可以以任何方式组合,除了相互排斥的特征和/或步骤。
[0033] 除非另有明确说明,否则本说明书(包括任何随附的权利要求、摘要和附图)中公开的任何特征都可以被用于类似目的的其他等效或替代特征代替。也就是说,除非另有明确说明,否则每个特征只是一系列等效或相似特征的一个示例。
[0034] 下面结合附图和实施例对本发明的具体实施方式进行详细说明。
[0035] 根据本发明实施例,本实施例公开了一种自定义日志采集系统,包括采集系统、中间服务器、存储系统和负载均衡系统;采集 系统连接中间服务器,中间服务器连接存储系统,存储系统连接负载均衡系统。
[0036] 具体地,如图3所示。1,图。图1是采集mysql数据库集群产生的日志的系统架构图。因为mysql集群的日志是相互连接的,所以采用单流框架。该系统包括客户端代理采集平台、中间服务器编写平台、存储系统和负载均衡系统。其中,客户端采集平台主要负责日志内容的可靠读取、过滤过滤,并通过自定义的采集源程序传输到中间服务器。中间服务器平台主要通过自研的发送程序发送到kafka分布式消息队列。存储模块是基于Kafka的分布式消息系统。
[0037] 如图2所示,图2是采集mongodb数据库集群查询日志的系统架构图,以采集流向的方式构建。该系统包括3个客户端采集、一个中间服务器、存储系统和负载均衡系统。其中,3个客户端采集、采集将日志发送到中间服务器的指定端口,中间服务器将自定义的sin写入分布式消息队列。
[0038] 如图所示。3,图。图3是采集应用程序产生的非结构化日志的装置和系统架构图。系统主要由采集客户端、*敏*感*词*、负载均衡、中间发送模块、存储模块组成。第一:
[0039] a)采集客户端,对于不同的应用,它们的日志结构是不一样的。所以直接使用Iinux命令行或者python脚本的方式采集程序的运行状态日志。
[0040] B)使用*敏*感*词*,过滤掉正确的运行状态,直接拦截错误的运行状态。
[0041] c)错误运行状态以事件的形式发送给具有内网权限的中间服务器。
d) 中间服务器自定义的发送模块可以将收到的事件发送到mongodb、hive、hbase等数据存储模块,方便处理端调用处理。
根据本发明的另一个实施例,本实施例公开了一种自定义日志采集方法,该方法包括以下步骤:
[0044]步骤一、根据需要采集的日志文件类型,确定自定义数据库系统结构化日志的采集源程序,实现内容拉取功能日志文件;
自定义采集源程序步骤包括:
步骤一。设置采集文件的配置参数类;
[0047] 步骤b。实现文件的采集启动和停止方法;
步骤 c。配置并存储在位置文件中到文件的初始读取点;
步骤 d。建立一个线程,从posit1n点开始处理,不断发送的日志更新文件内容;
[0050] 步骤e。设置容错点,线程每执行10次,将文件当前读取的最后一个pist1n值存入posit1n文件;
[0051] 步骤f。是采集的事件,加上一个tiltle字符串,具体标识内容包括:采集属于服务器名,采集属于应用程序名,采集属于服务器IP。
[0052]步骤二、配置需要采集的文件路径;
Step 三、 设置采用的通道类型;
[0054] 步骤四、设置*敏*感*词*的内容,用于过滤掉不需要的事件;
[0055] 步骤五、设计自定义框架,根据需要采集的客户端数量流向中间服务器;
步骤六、各客户端实时拉取日志文件内容,实现过滤写入通道;之后通过组件avrosink将指定端口发送给中间服务器,中间服务器接收数据并通过自定义的sink发送给目标的消息存储机制,完成日志的采集流程.
[0057] 具体地,结合附图对本实施例的方法进行详细描述。如图4所示,图4是采集的源程序流程图,采集结构化日志的步骤为:
a) 设置一个线程,用于不间断循环读取日志文件内容并发送处理后的日志。
[0059] b)设置最新的文件大小,从什么字节数开始读取,并存储在posit1n文件中。
c)读取文件的更新时间,如果new update time no wmodfile和last update event Iastmodfile不相等,则表示日志文件有新内容要写入,可以进行实时Read获取最新的日志更新内容.
d) 比较当前FiIe和posit1n中的字节大小,读取差值并设置posit1n的值,将posit1n之间的日志数据以事件的形式存储到缓存中最新的大小,存储最新的posit1n的值为存储在文件中,并在下次执行时再次读取比较。
e) 对缓冲区中的数据进行解码操作,并以字符串事件的形式划分出各个日志。
f) 事件添加标题,标题的内容包括日志所属的服务器、产生日志的系统或应用程序、日志所属的业务线和服务器的IP,在处理日志时可以明确区分那个采集 cluster产生这样的问题 找出问题所在的服务器的工作状态。
g)将分加标题的日志传递给发送模块,在信道中不断循环发送,直到该缓冲区中的数据全部发送完。
[0065] H)本次发送后,开始比较文件是否再次更新,从b)步骤开始执行。形成实时读取文件内容并发送。
[0066] 如图所示。5,图。图5是日志被读入通道,经过发送方筛选后发送到指定消息序列的流程图。包括以下步骤:
1)建立管道,从管道中以事件的形式读取数据。
[0068]2)读取事件会做筛选过程,如果发送到kafka分布式消息系统,增加topic相当于发送,如果发送到mongodb等数据库,需要数据的相关参数被设置。
[0069] 3)设定值与接口的实现一起写入指定的数据存储模块。
[0070] 本实施例基于Flume-NG的第三方框架,增加了一种实现高可靠、高定制化日志采集的方法,实现了非结构化日志和结构化日志采集,简单的处理和过滤,可以将采集日志实时发送到存储系统,为日志的分析和处理提供了很好的保障。本实施例不仅继承了Flume-NG框架的优点和底层结构,还可以根据自己的独特需求定制更合适的log采集解决方案,提高了用户对系统资源的高利用率,也可以保证系统稳定运行,大大提高用户使用日志采集的效率。
本说明书中所提及的“一个实施例”、“另一实施例”、“实施例”等是指结合本申请发明内容所收录的实施例所描述的具体特征、结构或特征。在说明书的至少一个实施例中。说明书中不同地方出现的相同表述不一定都是指同一个实施例。此*敏*感*词*内。
尽管本发明已在本文中参照其多个说明性实施例进行了描述,但应当理解,本领域技术人员可以设计出许多其他修改和实施例,这些修改和实施例将落入本申请的范围和范围内。所披露的原则精神。更具体地,在本文公开的权利要求的范围内,主题组合布置的组成部分和/或布置的各种变化和修改是可能的。除了部件和/或布置的变化和修改之外,其他用途对于本领域技术人员来说也是显而易见的。