使用 logstash 从文件中收集数据

Collect Data from File with logstash

我正在尝试使用 logstash 从文件中收集数据,但它不起作用,这是我的 logstash.conf 文件:

{

input {

stdin { }

file {
type => "tomcat-access"
path => ["/Users/aymen/Desktop/Projet Big Data/outils/logstash-1.5.0.rc2/var/log/test.txt"]

}

}

filter {

grok {
  match => [ "message", "%{WORD:firstname} %{WORD:lastname} %{NUMBER:age}"]
}

}

output {
 stdout { }

elasticsearch {
cluster => "logstash"
 }
 }

}

这是我的数据文件:

Kevin Larsing 34
Nicolas Derel 22
Florence Niral 32
Ines Lkiel 23

此致。

正如@Magnus 所说,您不需要最外面的大括号。除此之外,您可能想要添加(至少用于测试):

start_position => 'beginning'

...到输入文件流。这将确保提取测试文件中的现有日志。文档 here - 请注意,此设置的默认值为 "end"。

我的工作 .conf 文件如下所示:

input {
  stdin { }
  file {
    type => "tomcat-access"
    path => "/in.txt"
    start_position => 'beginning'
  }
}
filter {
  grok {
    match => [ "message", "%{WORD:firstname} %{WORD:lastname} %{NUMBER:age}"]
  }
}
output {
  stdout { }
  elasticsearch {
    cluster => "henrys_elasticsearch"
  }
}