Logstash从stdin读取数据,但不从文件

时间:2016-06-02 15:44:39

标签: json logstash elastic-stack logstash-configuration

我有一个JSON日志文件,其中只有一行:

{"@timestamp":"2016-06-02T13:56:49.235+00:00","thread_name":"qtp485047320-228","level":"ERROR","host":"domain.com","class":"MyClass","url":"/my-url","ip":"12.122.122.122","message":"Exception caught by exception handler.","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36","stacktrace":"com.test.exceptions.NotFoundException: NotFoundException for parameter [12345678-1234]. Message: url was not found by service.]"}

这是我的logstash.conf文件:

input {
     # stdin {}
    file {
      path => "/Users/me/Applications/logstash-2.3.1/examples/json_input.1.log"
      start_position => "beginning"
    }
}
filter {

    json{
        source => "message"
    }

    geoip {
        source => "ip"
        target => "geoip"
    }
}
output {
    stdout { 
        codec => rubydebug 
    }
    elasticsearch { 
        hosts => ["localhost:9200"]
        index => "logstash-app-errors"
    }
}

正如您所看到的,在输入部分我使用stdin(现在在评论中)以及之后,我改为从文件中读取数据。
问题是,当我使用stdin并粘贴json数据(1行)时,一切都很好,我在elasticSearch中看到了数据,但当我将其更改为file时,没有任何反应......
我还在logstash执行命令--debug中添加了./logstash agent -f logstash.conf --debug param,但在调试输出中看不到任何可疑的内容。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

发现问题 - 如果输入文件只有一行数据,则应添加一个空的新行。 这解决了我的问题。我不敢相信我在那个上花了那么多时间......

修改
打开问题弹性,您可以按照问题状态here