作家
登录

数据收集工具的设计与最佳实践

作者: 来源: 2017-10-20 11:05:04 阅读 我要评论

字段别号:解析后的字段名称中经常会出现一些特别字符,如”$”、”@”等符号,如不雅发送的办事端不支撑这些特别字符,就须要供给重定名功能,将这些字段映射到一个其余名称。

举例来说,如不雅你有个字段想做字符串调换,比如将所有字段名称为”name”的数据中,值为”Tom”的数据改为”Tim”,那么可以添加一个字符串调换的 Transformer,针对”name”这个字段做调换。

类型转换:类型转换是一个说来简单然则做起来异常繁琐的工作,不只是纯粹的┞符型转换成浮点型,或者字符串转成整型这么简单,还涉及发送到的办事端支撑的一些特别类型,如date时光类型等,更多的类型转换实际上相当于最佳实践,可以或许做好这些类型转换,就会让用户体验获得极大年夜晋升。

简单、简单、简单:除了上述这些,剩下的就是尽可能的让用户应用简单。假设我们要写一个 mysql sender,mysql 的数据库和表如不雅不存在,可能数据会发送掉败,那就可以推敲提前创建;又比如数据如不雅有更新,那么就须要将针对这些更新的字段去更新办事的 Schema 等等。

除此之外,还应支撑包含多文件编码格局支撑、攫取限速等多种功能。

Metrics

除了根本的自定义的数据收集,数据收集对象作为一个机械的 agent,还可以采集机械的根本数据,例如 CPU、内存、收集等信息,经由过程这些信息,可以周全掌控机械的状况。

具体的内容可以参考 logkit 文档:Runner 之体系信息采集设备。

至此,一个完全的数据收集对象的设计要点已经介绍完毕。

我们已经开源的 logkit 恰是按照如许的设计实现的,logkit 集合了多种开源数据收集对象的长处,聚焦易用性,致力于打造产等级其余开源软件。

数据收集对象 logkit


logkit(https://github.com/qiniu/logkit) 是七牛大年夜数据团队开源的一个通用的日记收集对象,可以大年夜多种不合的数据源中采集数据,并对数据进行一系列的解析、变换、裁减,最终发送到多种不合的数据下流,个中就包含了 七牛的大年夜数据平台 Pandora。除了根本的数据收集、解析以及发送功能之外,logkit 集合了多种同类开源软件的优势,涵盖了容错、并发、热加载、断点续传等高等功能,更供给了页面便应用户设备、监控以及治理本身的数据收集营业,是一款产等级其余开源软件。

今朝支撑的数据源包含:

  • File Reader: 攫取文件中的日记数据,如 nginx/apache 办事日记文件、营业日记等。
  • Elasticsearch Reader: 全量导出 Elasticsearch 中的数据。
  • MongoDB Reader: 同步 MongoDB 中的数据。
  • MySQL Reader: 同步 MySQL 中的数据。
  • MicroSoft SQL Server Reader: 同步 Microsoft SQL Server 中的数据。
  • Kafka Reader: 导出 Kafka 中的数据。
  • Redis Reader: 导出 Redis 中的数据。

今朝支撑发送到的办事包含 Pandora、ElasticSearch、InfluxDB、MongoDB 以及本地文件五种,近期还会支撑发送到 Kafka 以及发送到某个 HTTP 地址。

  • Pandora Sender: 发送到 Pandora(七牛大年夜数据处理平台) 办事端。
  • Elasticsearch Sender: 发送到 Elasticsearch 办事端。
  • File Sender: 发送到本地文件。
  • InfluxDB Sender: 发送到 InfluxDB 办事端。
  • MongoDB Sender: 后发送到 MongoDB 办事端。

而发送到 七牛的 Pandora 办事 中,不仅能涵盖上述全部场景,还供给了大年夜量可以快速发掘数据价值的实际应用处景的应用模板,同时还可以应用七牛成本较低的云存储办事对数据进行持久备份。

今朝 logkit 支撑的收集端和发送端并不多,异常迎接大年夜家来供献更多的收集 / 发送端。

量身定制

再回过火来聊聊量身定制的话题,本文描述了一个数据收集对象打造的完全过程,我们深知量身定制一个数据收集对象有多么重要,而量身定制也是 logkit 的一大年夜特点。logkit 架构中的每个构成部分(Reader、Parser、Sender、Transformer、Channel 等)都是一个 GO 说话的 package,你完全可以用 logkit 中的包,本身写主函数,大年夜而定制一个专属的收集对象。我们供给了代码案例 (https://github.com/qiniu/logkit/tree/develop/samples) ,便利你亲自实践。

优势

总体而言,logkit 有如下优势:

  • GO 说话编写,机能优良,资本消费低,跨平台支撑。
  • Web 支撑,供给 页面 对数据收集、解析、发送过程可视化
  • 插件式架构,扩大性强,应用灵活,易于复竽暌姑。
  • 定制化才能强,可以仅应用部分 logkit 包,以此定制专属收集对象。
  • 设备简单,易于上手,可经由过程 页面 进行操作治理
  • 原生中文支撑,没有汉化懊末路
  • 功能周全,涵盖了包含 grok 解析、metric 收集、字段变更 (transform) 在内的多种开源软件特点
  • 生态周全,数据发送到七牛的 Pandora 大年夜数据平台支撑包含时序数据库、日记检索以及紧缩永远存储等多种数据落处所案。

下面让我们来实践一下,看看 logkit 在拭魅战中是什么样子。

logkit 拭魅战

下载

编译完后的 logkit 是一个 Go 的二进制包,你可以在 logkit 的 Download 页面 (https://github.com/qiniu/logkit/wiki/Download) 找到对应操作体系的 Release 版本。

也可以参照 logkit 源码编译指南,大年夜代码层面定制本身的专属 logkit。

启动

logkit 安排异常简单,将这个 binary 放在体系 PATH 路径中就算安排完成了,推荐应用诸如 supervisor 等过程治理对象进行治理。

启动 logkit 对象,可以应用默认的设备文件,履行如下敕令即可。

设备


  推荐阅读

  微软又推黑科技新招 Edge浏览器读网页

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!【编辑推荐】微软联袂FB推出开源项目 打造共享神经收集模型微软Skype开启第二轮Cortana整合,可参加对话傍边作为助手微软>>>详细阅读


本文标题:数据收集工具的设计与最佳实践

地址:http://www.17bianji.com/lsqh/38064.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)