7

我的简单配置如下所示。我在我的主目录中创建了一个虚拟文件夹并在其中创建了一些日志文件。我的配置文件看起来像这样。

input{
    file{
        type => "dummylog"
        path => [/home/rohit/dummy/*.log" ]
    }
}
output{
    elasticsearch{
        embedded => true
    }
}

现在运行 logstash 后,我无法在 logstash 的 web ui 中看到任何文件。这些文件尚未提取到 elasticsearch 中。我正在使用嵌入式弹性搜索,因此无需运行单独的进程。谁能帮我在哪里犯错?

4

4 回答 4

5
input {
  file {
    path => "/home/rohit/dummy/*.log"
    type => "log"
  }
}

filter {
  if [type] == "log" {
    grok {
      pattern => "%{COMBINEDAPACHELOG}"
    }
  }
}

output {
   elasticsearch { host => localhost } stdout { } }
}

检查模式是否正确运行

$ bin/logstash 代理 -f httpd-shipper.conf --configtest

于 2014-08-02T11:36:31.180 回答
3

也许您应该修复配置中的语法错误,然后查看是否存在更深层次的问题。

您在该行中缺少一个 ":

    path => [/home/rohit/dummy/*.log" ] 

如果这不能解决问题,明智的做法是确认运行 logstash 进程的用户对其尝试读取的日志具有读取权限。

于 2013-05-17T12:33:17.803 回答
2

非常小心语法。您错过了路径中的“(引号)

input{
    file{
        type => "dummylog"
        path => ["/home/rohit/dummy/*.log"]
    }
}

output{
    elasticsearch{
        embedded => true
    }
}

另请注意,要使其正常工作,elasticsearch 必须与 logstash 位于同一主机上。

于 2013-07-02T05:15:29.463 回答
1

除了左引号之外,您一定忘记了:

start_position => ... # 字符串,["beginning", "end"] 之一(可选),默认值:"end"

所以,它应该是:

input{
  file{
    type => "dummylog"
    path => "/home/rohit/dummy/*.log"
    start_position => "beginning"
  }
}
  output {
     elasticsearch{
      embedded => true
  }
}
于 2015-03-17T15:14:55.760 回答