天天看点

Logstash入门知识

Logstash是Elastic公司的一个开源库,入门也可以考虑使用release版本。

源码安装参见:link

发布版本使用参见:link

Logstash从结构上看分为3部分:input plugins,filter plugins,output plugins。不管是从config文件还是实际的框架设计都能够体现出来。对于plugin,是由java_pipeline.rb进行调度的,plugin之间的信息传递是一种Logstash::Event的数据结构, 一种类似hashtable的结构,也可以参考link,当然一次处理Event的数量受参数batch控制,所以实质在plugin之间传递的是Event Queue 和 Event Array两种。

从代码结构上来看,由java和jruby组成,均是jvm平台。java主要只提供环境设置,负责启动bin/logstash,如果我们直接使用bin/logstash命令行启动Logstash,实际上是涉及不到java的,一些使用java编写的底层代码已经转化为jar了。所以如果我们想debug Logstash,直接在ruby代码中加日志打印,对于ruby这种脚本语言也是一种比较基本的调试手段。