一、输入

a、标准输入:

input {    stdin {        add_field => {"key" =>"value"}        codec =>"plain"        tags => ["add"]        type => "std"    }}output {  stdout {     codec => rubydebug {}  }}

其中tags和type 是logstash中两个特殊字段。type 一般用来指定事件类型,tags是在数据处理过程中,由具体的插件来添加或删除。

b、文件输入

logstash 使用FileWatch的ruby gem库来监听文件变化,支持glob展开文件路径

FileWatch只支持文件的绝对路径而且不会自动递归目录,但可以用**来缩写表示递归全部子目录

/path/to/**/*.log

input {    file {       path => "/var/log/messages"       type => "syslog"         }    file {     path => "/var/log/httpd/access_log"    type => "apache_log"}}filter {  if [type] == "syslog" {    grok {      match => [ "message", "%{SYSLOGBASE} %{GREEDYDATA:message}" ]      overwrite => [ "message" ]        }     } else if [type] == "apache_log" {          grok {            match => ["message", "%{COMMONAPACHELOG}"]    }    }  }output {      stdout { codec => rubydebug }      elasticsearch { embedded => "true"}}

c、TCP输入,最常见的是配合nc命令导入旧数据