Heka
Heka
- 日志收集服务
- 流式
- Mozilla出品
- Golang编写
- 轻量却功能强大
- 灵活易用
- Go/Lua扩展
Heka用户
- Mozilla(FireFox)
- Disqus(最流行的评论服务)
Heka架构
Inputs
用于接收数据,有多种输入方式,如:
- 文件
- TCP
- 消息队列如AMQP
- 系统命令输出
Splitters
用于将Input收到的数据进行拆分,比如按换行符
Decoders
解析Input/Split之后的数据
- Nginx/Apache Access Log
- GeoIP
- syslog
- MultiDecoder,把多个Decoder整合起来一起用
- 还有很多等等,以及很方便的Lua扩展
Filters
消息处理引擎,可以进行过滤、计算、聚合
Encoders
在输出到Output前将数据处理成Output支持的数据格式
- 有许多常用插件,以及很方便的Lua扩展
Outputs
可以同时多个输出落地,如:
- ElasticSeasrch
- TCP
- AMQP
- HTTP
- 还有很多等等,以及很方便的Lua扩展
日志收集架构
1.至简
heka logstreamer Input-> Output到最终落地
2.性能扩展
heka logstreamer Input-> TCP Output -> 汇总层heka TCP Input -> Output到最终落地
3.性能扩展(使用队列)
heka logstreamer Input-> AMQP(Kafka) Output -> 汇总层heka AMQP(Kafka) Input -> Output到最终落地
性能测试
环境:4 CPU虚拟机,CentOS 6.5 syslog协议+文件输出,可达到34K/s