Getting Started with Logstash 1

Stashing your first event

让我们启动logstash的学习!
通过运行一个最最基础的Logstash pipeline来验证一下我们的Logstash安装。
 pipeline: 管道, 这个就是Linux/Unix中管道的概念。此处不做解释
Logstash 管道需要两个元素: inputoutput,经常还会配置可选元素:filter。 输入、过滤、输出,这就是一个标准的信息处理组件、很多个这种组件chain起来,就可以完成复杂的功能需求。在Logstash中,input、output、filter分别有许多plugin(插件),通过输入插件,从数据源中读取数据,filter插件按照配置修改数据,输出插件将数据写入目标端……
logstash description
为了测试我们安装的Logstash,我们来运行一个最基础的Logstash管道:
logstash -e 'input { stdin {} } output { stdout {} }'
上例中,-e 选项让我们直接从命令行中获取logstash配置(一般是用配置文件的),这个基础示例中,我们从标准输入(stdin)中获取输入数据,将数据输出到标准输出(stdout)—— 输出时会使用logstash结构化后的格式(最起码得添加个时间戳对、主机名吧?)
Logstash启动并不迅捷,等到看到“Pipeline main stated”才表示启动完毕,我们输入 hello word
[2017-11-19T22:32:20,445][INFO ][logstash.pipeline ] Pipeline started {"pipeline.id"=>"main"}
The stdin plugin is now waiting for input:
[2017-11-19T22:32:20,471][INFO ][logstash.agent ] Pipelines running {:count=>1, :pipelines=>["main"]}
hello world
2017-11-19T14:32:28.326Z bogon hello world
可以看到,上例中,Logstash将我们在标准输入中键入的hello world添加了时间戳、主机名(也可能是IP),显示在标准输出上。CTRL-D 或者 CTRL-C 中断这个运行着的Logstash pipeline。
如果获得上述结果,我们已经成功创建了一个最基础的Logstash pipeline。可喜可贺,很多开源项目的配置都是死在第一步的…… 接下来我们就需要学习创建更多的具有实际意义的pipeline。

 在整个ELK的学习过程中,我们最终是需要在Aix之类的传统平台上进行日志搜集、管理的,写这篇文章的时候,我还完全没有头绪(Aix平台一般都是正在运行的生产环境,升级个JDK都不太可能,更何况Logstash依赖于JRuby好像,IBM JDK可不见得有这个;Filebeat是go语言实现的,Aix上好像没有go编译器),只知道可能使用Logstash-Forwarder-Java是一个可行的方案 

Leave Comment