elasticsearch logstash';elasticsearch索引的日期来自哪里?,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch logstash';elasticsearch索引的日期来自哪里?,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch logstash';elasticsearch索引的日期来自哪里?

elasticsearch logstash';elasticsearch索引的日期来自哪里?,elasticsearch,logstash,elasticsearch,Logstash,发件人: 我想知道logstash从哪里得到YYYY.MM.dd的信息?是@timestamp字段吗?如果是这样,是否可以告诉它使用不同的字段(例如@mydate)?索引YYYY.MM.dd根据@timestamp time 您可以参考“event.sprintf”来打印日志存储索引 index = event.sprintf(@index) 然后你可以研究一下sprintf的功能 t = @data["@timestamp"] formatter = org.joda.time.fo

发件人:


我想知道logstash从哪里得到YYYY.MM.dd的信息?是@timestamp字段吗?如果是这样,是否可以告诉它使用不同的字段(例如@mydate)?

索引YYYY.MM.dd根据@timestamp time

您可以参考“event.sprintf”来打印日志存储索引

index = event.sprintf(@index)
然后你可以研究一下sprintf的功能

t = @data["@timestamp"]
    formatter = org.joda.time.format.DateTimeFormat.forPattern(key[1 .. -1])\
      .withZone(org.joda.time.DateTimeZone::UTC)
    #next org.joda.time.Instant.new(t.tv_sec * 1000 + t.tv_usec / 1000).toDateTime.toString(formatter)
    # Invoke a specific Instant constructor to avoid this warning in JRuby
    #  > ambiguous Java methods found, using org.joda.time.Instant(long)
    org.joda.time.Instant.java_class.constructor(Java::long).new_instance(
      t.tv_sec * 1000 + t.tv_usec / 1000
    ).to_java.toDateTime.toString(formatter)
因此,如果希望索引跟随您自己的字段,则必须修改event.rb以使用您自己的字段而不是时间戳。或者,您可以将时间戳值更改为自己的字段时间

t = @data["@timestamp"]
    formatter = org.joda.time.format.DateTimeFormat.forPattern(key[1 .. -1])\
      .withZone(org.joda.time.DateTimeZone::UTC)
    #next org.joda.time.Instant.new(t.tv_sec * 1000 + t.tv_usec / 1000).toDateTime.toString(formatter)
    # Invoke a specific Instant constructor to avoid this warning in JRuby
    #  > ambiguous Java methods found, using org.joda.time.Instant(long)
    org.joda.time.Instant.java_class.constructor(Java::long).new_instance(
      t.tv_sec * 1000 + t.tv_usec / 1000
    ).to_java.toDateTime.toString(formatter)