一、输入
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命令导入旧数据
原文:http://jinmlinux.blog.51cto.com/9269834/1909460