一种基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法技术

技术编号:32483808 阅读:8 留言:0更新日期:2022-03-02 09:48
一种基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法,具有采集数据更加全面,无需埋点方便快捷,降低适配开发成本、高可用性等优点。比起常规的嵌入式linux信息上报,对日志进行规范化,标准化,支持全量数据采集、数据采集后的归档保存,各字段支持索引,与普通的无埋点数据采集方式相比,支持数据采集的动态可适配,既能保证采集数据的全面性,又能降低终端负载。低终端负载。低终端负载。

【技术实现步骤摘要】
一种基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法


[0001]本专利技术涉及数据采集
,具体涉及一种基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法。

技术介绍

[0002]随着嵌入式Linux系统的发展,嵌入式设备的种类越来越复杂,越来越多的设备采集数据。大量设备需要联网和数据传输,以及与不同实现环境对应的不同功能需求。庞大的基础功能系统和大量设备实例冗余数据字段的存储和传输,不仅给网络和云系统带来巨大压力,也增加了系统开发的工作量和维护成本。

技术实现思路

[0003]本专利技术为了克服以上技术的不足,提供了一种通用的,松耦合的无埋点数据采集方式,支持全量数据采集,将不同种类的设备数据统一上传存储进行大数据分析处理的方法。
[0004]本专利技术克服其技术问题所采用的技术方案是:一种基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法,包括如下步骤:a)设置嵌入式linux移植日志库,各个linux程序将日志传输到消息队列,嵌入式linux移植日志库中线程从消息队列中读取日志并写入磁盘;b)置日志采集模块,所述日志采集模块由若干嵌入式终端构成,每个嵌入式终端由linux移植日志库及日志处理引擎构成,日志处理引擎读取linux移植日志库中日志,生成对应的JSON结构化数据;c)设置数据存储模块,所述数据存储模块分为mysql数据库和kafka缓存,将mysal型的JSON结构化数据存储到mysql数据库中,将kafka型的JSON结构化数据存储到kafka缓存中;d)设置数据聚合索引模块,所述数据聚合索引模块对数据存储模块中的JSON结构化数据按照每个字段进行索引;e)设置数据可视化模块,所述数据可视化模块将索引后的数据进行展示。
[0005]进一步的,步骤a)中嵌入式linux移植日志库采用生产者消费模式,消息队列先缓存到内存后再启用另一个线程从队列中读取日志并写到磁盘上。
[0006]进一步的,步骤b)中日志处理引擎使用字符串对日志进行初步筛选生成原始日志文件,flent bit读取原始日志文件,根据服务器下发的正则表达式,对原始日志进行过滤,生成对应的JSON结构化数据。
[0007]进一步的,步骤b)中JSON结构化数据包含终端ID、业务名称、事件名称、发生时间和自定义信息。
[0008]进一步的,步骤b)中将JSON结构化数据通过APK上传到头端服务器。
[0009]进一步的,步骤d)中数据聚合索引模块由logstash及Elasticsearch构成,logstash接收Kafka型的JSON结构化数据以及mysql型的JSON结构化数据后转给Elasticsearch,Elasticsearch对Kafka型的JSON结构化数据和mysql型的JSON结构化数据进行索引、聚合,使对应的数据按照每个字段进行索引。
[0010]进一步的,步骤e)中数据聚合索引模块由klbana构成。
[0011]本专利技术的有益效果是:相较于普通数据采集有着,采集数据更加全面,无需埋点方便快捷,降低适配开发成本、高可用性等优点。比起常规的嵌入式linux信息上报,对日志进行规范化,标准化,支持全量数据采集、数据采集后的归档保存,各字段支持索引,与普通的无埋点数据采集方式相比,支持数据采集的动态可适配 ,既能保证采集数据的全面性,又能降低终端负载。
附图说明
[0012]图1为本专利技术的无埋点数据采集流程图;图2为嵌入式linux日志库原理图。
具体实施方式
[0013]下面结合附图1、附图2对本专利技术做进一步说明。
[0014]一种基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法,包括如下步骤:a)设置嵌入式linux移植日志库,各个linux程序将日志传输到消息队列,嵌入式linux移植日志库中线程从消息队列中读取日志并写入磁盘。嵌入式linux并没有统一的日志信息输出,所以需要移植日志库,实现日志的统一和规范化,整体移植流程为,添加源码到工程项目中、实现对应的log接口、其他应用使用该日志库时仅需引入对应的头文件并初始化即可使用。
[0015]b)置日志采集模块,所述日志采集模块由若干嵌入式终端构成,每个嵌入式终端由linux移植日志库及日志处理引擎构成,日志处理引擎读取linux移植日志库中日志,生成对应的JSON结构化数据。
[0016]c)设置数据存储模块,所述数据存储模块分为mysql数据库和kafka缓存,将mysal型的JSON结构化数据存储到mysql数据库中,将kafka型的JSON结构化数据存储到kafka缓存中。
[0017]d)设置数据聚合索引模块,所述数据聚合索引模块对数据存储模块中的JSON结构化数据按照每个字段进行索引。
[0018]e)设置数据可视化模块,所述数据可视化模块将索引后的数据进行展示。
[0019]实施例1:步骤a)中嵌入式linux移植日志库采用生产者消费模式,消息队列先缓存到内存后再启用另一个线程从队列中读取日志并写到磁盘上。这样就可以高速高性能的写日志了,程序只需要负责将日志传输到消息队列就无需在关系其它的写入工作,降低了程序的耦合性。
[0020]实施例2:步骤b)中日志处理引擎使用字符串对日志进行初步筛选生成原始日志文件,
flent bit读取原始日志文件,根据服务器下发的正则表达式,对原始日志进行过滤,生成对应的JSON结构化数据。步骤b)中JSON结构化数据包含终端ID、业务名称、事件名称、发生时间和自定义信息。步骤b)中将JSON结构化数据通过APK上传到头端服务器。通过APK向Kafka的topic中吐数据,Kafka的优点是高吞吐量、低延迟,Kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,还具有可扩展性,Kafka集群支持热扩展,具有持久性、可靠性,消息被持久化到本地磁盘,并且支持数据备份,防止数据丢失。允许集群找那个节点失败(若副本数量为n,则允许n

1个节点失败),支持数千个客户端同时读写。
[0021]实施例3:步骤d)中数据聚合索引模块由logstash及Elasticsearch构成,logstash接收Kafka型的JSON结构化数据以及mysql型的JSON结构化数据后转给Elasticsearch,Elasticsearch对Kafka型的JSON结构化数据和mysql型的JSON结构化数据进行索引、聚合,使对应的数据按照每个字段进行索引。
[0022]实施例4:步骤e)中数据聚合索引模块由klbana构成。通过Elasticsearch的索引,可以对数据进行简单的规则计算,生产对应的数据表格、饼图,支持配置的导入和导出功能。
[0023]最后应说明的是:以上所述仅为本专利技术的优选实施例而已,并不用于限制本专利技术,尽管参照前述实施例对本专利技术进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法,其特征在于,包括如下步骤:a)设置嵌入式linux移植日志库,各个linux程序将日志传输到消息队列,嵌入式linux移植日志库中线程从消息队列中读取日志并写入磁盘;b)置日志采集模块,所述日志采集模块由若干嵌入式终端构成,每个嵌入式终端由linux移植日志库及日志处理引擎构成,日志处理引擎读取linux移植日志库中日志,生成对应的JSON结构化数据;c)设置数据存储模块,所述数据存储模块分为mysql数据库和kafka缓存,将mysal型的JSON结构化数据存储到mysql数据库中,将kafka型的JSON结构化数据存储到kafka缓存中;d)设置数据聚合索引模块,所述数据聚合索引模块对数据存储模块中的JSON结构化数据按照每个字段进行索引;e)设置数据可视化模块,所述数据可视化模块将索引后的数据进行展示。2.根据权利要求1所述的基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法,其特征在于:步骤a)中嵌入式linux移植日志库采用生产者消费模式,消息队列先缓存到内存后再启用另一个线程从队列中读取日志并写到磁盘上。3.根据权利要求1所述的基于嵌入式linux的松耦合、高扩展性无埋点数据采集方法,其特征在于:步骤...

【专利技术属性】
技术研发人员:陈家豪黄洋陈付祥李鹏
申请(专利权)人:山东浪潮云缦智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1