elasticsearch 来自文档字段的日志存储动态索引失败,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" /> elasticsearch 来自文档字段的日志存储动态索引失败,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" />

elasticsearch 来自文档字段的日志存储动态索引失败

elasticsearch 来自文档字段的日志存储动态索引失败,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration,我仍然需要解决一些问题,如何告诉Logstash基于文档字段发送动态索引。此外,必须对该字段进行转换,以便在最后获得“真实”索引。 假设有一个字段“time”(是UNIX时间戳)。此字段已通过“日期”筛选器转换为弹性的DateTime对象。 此外,它还应作为索引(YYYYMM)提供服务器。索引不应从@Timestamp派生,因为@Timestamp未被触及 例如: {…,“时间”:1453412341,} 将转到索引:201601 我使用以下配置: filter { date { m

我仍然需要解决一些问题,如何告诉Logstash基于文档字段发送动态索引。此外,必须对该字段进行转换,以便在最后获得“真实”索引。 假设有一个字段“time”(是UNIX时间戳)。此字段已通过“日期”筛选器转换为弹性的DateTime对象。 此外,它还应作为索引(YYYYMM)提供服务器。索引不应从@Timestamp派生,因为@Timestamp未被触及

例如: {…,“时间”:1453412341,}

将转到索引:201601

我使用以下配置:

filter {
  date {
    match => [ "time", "UNIX" ]
    target => "time"
    timezone => "Europe/Berlin"
  }
}
output {
    elasticsearch {
        index => "%{time}%{+YYYYMM}"
        document_type => "..."
        document_id => "%{ID}"
        hosts => "..."
    }
}
可悲的是,它不起作用。有什么想法,如何实现

非常感谢

“%{+YYYYMM}”表示使用@timestamp中的日期值。如果希望索引以%{time}中的YYYYMM命名,则需要从该日期字段生成一个字符串,然后在输出节中引用该字符串。可能会有一个变异{}可以做到这一点,或者落入ruby{}


在大多数安装中,您希望将@timestamp设置为事件的值。logstash自己的默认时间不是很有用(想象一下,如果您的事件在处理过程中延迟了一个小时)。如果您这样做,那么%{+YYYYMM}“就可以了。

这是因为默认情况下索引名是基于UTC时间创建的