elasticsearch,logstash,kibana,Java,Json,elasticsearch,Logstash,Kibana" /> elasticsearch,logstash,kibana,Java,Json,elasticsearch,Logstash,Kibana" />

Java 在Elasticsearch中使用Logstash存储时是否需要@timestamp字段?

Java 在Elasticsearch中使用Logstash存储时是否需要@timestamp字段?,java,json,elasticsearch,logstash,kibana,Java,Json,elasticsearch,Logstash,Kibana,我有以下设置:我有一个Java工具,它向RabbitMQ发送JSON消息。它们看起来像这样: { "a": 0, "b": 1, "c": 2 } { "a": 0, "b": 1, "c": 2, "@version": "1", "@timestamp": "2014-01-22T19:05:19.136Z" } 现在,我使用Logstash读取RabbitMQ队列并将其存储到Elasticsearch中,以便使用Kibana分析数据。Elasticsearch中存储的JSON如下所示:

我有以下设置:我有一个Java工具,它向RabbitMQ发送JSON消息。它们看起来像这样:

{
"a": 0,
"b": 1,
"c": 2
}
{
"a": 0,
"b": 1,
"c": 2,
"@version": "1",
"@timestamp": "2014-01-22T19:05:19.136Z"
}
现在,我使用Logstash读取RabbitMQ队列并将其存储到Elasticsearch中,以便使用Kibana分析数据。Elasticsearch中存储的JSON如下所示:

{
"a": 0,
"b": 1,
"c": 2
}
{
"a": 0,
"b": 1,
"c": 2,
"@version": "1",
"@timestamp": "2014-01-22T19:05:19.136Z"
}

我认为@timestamp字段对我正在做的事情没有任何用处。当我在Elasticsearch中使用cURL存储相同的JSON时,只有@version字段存在,而@timestamp字段不存在。有没有办法将Logstash配置为不保存@timestamp?

any
@
-前缀字段由Logstash在内部使用。删除它们往往会导致错误

例如,我使用Logstash 1.3.3尝试了以下配置文件:

input { 
    generator {
        type => "timestrip"
        message => "This is a test message."
        count => 1
    }
}

filter {
    mutate {
        remove_field => ["@timestamp"]
    }
}

output {
    elasticsearch_http {
        host => "127.0.0.1"
        flush_size => 1
    }
}
ES输出报告“未能刷新传出项”,但出现以下异常:

NoMethodError: undefined method `tv_sec' for nil:NilClass

当Logstash读取消息时,Logstash将该消息视为一条消息。 事件将具有时间戳和消息日志。因此,@timestamp字段是必需的

因此,如果要删除@timestamp字段,则会导致错误。 Logstash无法将事件输出到elasticsearch

Exception in thread "LogStash::Runner" org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `tv_sec' for nil:NilClass
    at RUBY.sprintf(file:/tmp/logstash-1.2.1-flatjar.jar!/logstash/event.rb:239)
    at org.jruby.RubyString.gsub(org/jruby/RubyString.java:3062)
    at RUBY.sprintf(file:/tmp/logstash-1.2.1-flatjar.jar!/logstash/event.rb:225)
    at RUBY.receive(file:/tmp/logstash-1.2.1-flatjar.jar!/logstash/outputs/elasticsearch.rb:153)

到目前为止,并非所有@前缀字段都会导致错误,只有删除@时间戳才会导致此错误。

并非所有@前缀字段都会导致错误。到目前为止,只有删除@timestamp才会导致此错误;您是否愿意分享关于如何从rabbitMQ服务器读取logstash以及如何从logstash中删除ElasticSearch读取的消息的知识?所有这些数据都是在您的服务器上累积的吗?