输入插件是Logstash从特定的数据源读取数据,Logstash可用插件包括,详情可见这里,下面说一些常见的输入插件:


  stdin插件:标准的输入插件,能够从命令行中读取事件。


  可选配置:

add_field hash(哈希) {}

codec codec “line”

tags array(数组)

type string(字符串)


  file插件:Logstash使用一个名叫FileWatch的RubyGem库来监听文件变化。这个库支持glob展开文件路径,而且会记录一个叫.sincedb的数据库文件来跟踪被监听的日志文件的当前读取位置。所以,不要担心logstash会漏过你的数据。


 sincedb文件中记录了每个被监听的文件的inode,majornumber,minornumber和pos。


  示例:

inputfile{path=>["/var/log/*.log","/var/log/message"]type=>"system"start_position=>"beginning"}}


  通常你要导入原有数据进Elasticsearch的话,你还需要filter/date插件来修改默认的"@timestamp"字段值。


  FileWatch只支持文件的绝对路径,而且会不自动递归目录。所以有需要的话,请用数组方式都写明具体哪些文件。

 

  LogStash::Inputs::File只是在进程运行的注册阶段初始化一个FileWatch对象。所以它不能支持类似fluentd那样的path=>"/path/to/%{+yyyy/MM/dd/hh}.log"写法。达到相同目的,你只能写成path=>"/path/to/*/*/*/*.log"。


  logstash每隔多久去检查一次被监听的path下是否有新文件。默认值是15秒。

  logstash每隔多久写一次sincedb文件,默认是15秒。

  logstash每隔多久检查一次被监听文件状态(是否有更新),默认是1秒。


  generator:生成数据组件,用来生成测试数据最好用。