概述
Heka 是一个”瑞士军刀”级别的流式数据处理工具,由 Mozilla 开源,有如下功能:
- 加载解析日志文件。
- 接收 Statsd 类型的指标数据进行合并,上载至时间序列数据库,如 graphite 或 InfluxDB。
- 启动扩展进程来收集本地系统的操作数据。
- 实时分析、画图,并能够对经过 Heka 数据管道的数据进行异常检测。
- 通过像 AMQP 或 TCP等协议将数据从一处传输至另一处。
- 将处理后的结果数据存储至一个或多个持久化数据库。
组件
Heka 是一个基于插件的工具;将数据传给 heka、处理、输出都是通过插件来实现的;Heka 支持6种类型的插件:
Inputs
Input 插件从外部获取数据,并将其传入 heka 管道;数据的来源可以是本地文件系统、远程服务器、socket等的结构或非结构化数据。此插件只能使用 Go 语言编写。
Splitters
Splitter 将接收到的数据分隔成有效的记录,如使用换行分隔;只能使用 Go 语言编写。
Decoders
Decoder 插件将接收到的数据解析成结构化数据。可使用 Go 来写或者 lua code。
Filters
Filter 插件是Heka 的处理引擎。接收匹配规则的的数据;用来监控、聚集统计或处理数据。可以用 Go、或 lua。使用 Lua 开发,可以在不重启 heka 服务的前提下,将插件注入至运行时服务。
Encoders
是 decoder 的反向处理工具;内嵌在 Output 插件中,相当于序列化。可以使用 Go 或lua 开发。
Outputs
按照匹配规则将序列化后的数据输出到目标中。仅能使用Go编写。
核心进程
hekad 是核心进程,单个 hekad 进程可以配置很多插件,同时处理多种数据的收集、处理、传输工作。
-version 参数查看版本号。
-config=<config_path>。指定配置文件。默认位置为 /etc/hekad.toml,此配置可以指定目录,hekad 会解析读取目录下的所有配置文件。
转载请注明:子暃之路 » Heka指南 – 简介(1)