logstash:文件输入不起作用

时间:2014-07-02 08:51:22

标签: logstash

我正在尝试运行样本,例如。在 CDH 4.4 中使用 logstash-1.4.2 。每当我使用文件输入而不是stdin时,窗口会冻结以下消息:

  

使用里程碑2插件'文件'。这个插件应该是稳定的,但如果   你看到奇怪的行为,请告诉我们!更多   信息.....   我的代码如下所示:

input {
  file {
    path => "/tmp/access_log"
    start_position => "beginning"
  }
}

filter {
  if [path] =~ "access" {
    mutate { replace => { "type" => "apache_access" } }
    grok {
      match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  file{
path =>"/logs/output_log"
}
}
  

Command-bin / logstash -f logstash-apache.conf

我尝试删除$ HOME中以前的所有sincedb文件。目录并重新运行logstash,但这似乎也不起作用。我错过了什么吗?

4 个答案:

答案 0 :(得分:7)

如果输入文件中只有一行, 你应该在最后添加一个空行! 应该有用!

编辑: 如果你在Windows机器上,你需要编写像

这样的绝对路径
"c:/dev/access-log.txt"

并在c:

之后使用一个/而不是//

答案 1 :(得分:2)

我遇到了困难,因为logstash跟踪了它已经读过的日志:https://stackoverflow.com/a/24034718/268907

  

请记住,此选项仅修改文件为新文件且之前未见过的“初次接触”情况。如果之前已经看过某个文件,则此选项无效。否则,您必须将sincedb_path设置为/ dev / null。

将sincedb_path设置为/ dev / null,您将阻止它跟踪上次读取的文件中的位置。

答案 2 :(得分:1)

您是否使用root权限运行?看起来/ logs / output_log需要写入root权限。

我使用logstash 1.4.1(和sudo)在本地尝试了你的配置,它似乎工作正常。

答案 3 :(得分:0)

你能试试下面的吗?它对我有用。

path => "/tmp/access_log/*"

而不是

path => "/tmp/access_log"