Heka - 来自 Mozilla 的插件式数据挖掘工具

jopen 12年前

近日Mozilla Service团队首次发布了 Heka测试版(v0.2b1),Heka是一款拥有数据收集、分析、监视和报表的工具,采用 Go 语言开发。其主要组件为 hekad,一个适用于任何主机的轻量级守护程序,其主任务是:

  • 通过读取和解析日志文件收集数据,监视服务器状况,和(或)使用任何协议(syslog、statsd、http、heka等)接收客户端网络连接。
  • 将采集到的数据转换成标准的内部表示,把元数据封装成Heka系统其它组件可以有效处理的形式。
  • 使用一组路由规则评估消息内容和原数据,并为每一个消息分配相应的处理过滤器和外部端点。
  • 飞速地处理消息内容,用以执行聚合、滑窗(sliding-window)事件处理和监控、非结构化数据到结构化数据的形成(举个例子:将日志输入文档解析到数字统计数据或者更加友好的数据结构)并将新的消息以报表的形式输出。
  • 将接收到或者是内部生成的消息数据发送到外部位置:数据可能被写入一个数据库、一个时间序列数据库或者一个网络服务,包括上行的一个hekad实例做更深的处理和(或)聚合。

Heka使用Go语言编写,在α测试中已被证明其非常适合构建数据管道,并让数据管道同时占有快速和灵活两方面的优势;在α测中,一个单hekad实例可以支撑(接收和路由)起每秒10GB的消息数据。Mozilla Service团队借鉴并延伸了 Logstash的想法,将Heka打造成基于插件的系统。开发者可以通过构建定制的Input、Decoder、Filter(比如数据处理)以及Output插件,进行快速和简洁的功能扩展。

所有4个类型的插件都可以用Go来实现,但是管理这些插件需要修改配置文件并重启系统,比如:添加新的插件,甚至是重新编译hekad binary。Heka还通过允许“Sandboxed Filters”提供了另一种选择,这样你就可以使用Lua来代替Go。这样一来,在一个运行中的Heka实例添加或者删除功能就不需要修改配置及重启服 务器。Heka同样还提供了一些Lua API,Sandbox Filters可以使用这些API管理时间序列的环形缓冲区,并生成曲线图报告,这些报告将呈现在Heka的仪表盘上:

Heka - 来自 Mozilla 的插件式数据挖掘工具
(点击查看大图)

开源相关

Heka是项新的技术,虽然已在Mozilla内部广泛使用,但仍稍显粗糙。就像Mozilla每个产品一样,Heka同样开源。了解更多详情可阅读相关资源:

via mozilla