我已经指定了时区了,在logstash中如下: date{ match => ["logdate", "yyyy-MM-dd HH:mm:ss.SSS"] target => "@timestamp" locale => "en" timezone => "Asia/Shanghai" };为什么@timestamp的数据还是像这样的:2023-06-07T15:10:05.768Z。我认为应该要变成这样的才对:2023-06-07T15:10:05.768Z+0800
时间: 2024-04-15 20:03:41 浏览: 160
time_zone:时区可在不同时区的时间之间提供夏令时转换
在 Logstash 中使用 date 插件时,如果指定了 timezone 参数,那么 Logstash 会将时间戳转换为 UTC 时间,并在时间戳后面添加 "+0000" 表示时区。这是因为 Elasticsearch 中存储的时间戳必须是 UTC 时间,并且要包含时区信息。
如果需要在 Kibana 中展示本地时间,可以按照前面的回答中所述,在 Kibana 中设置时区为 "+08:00"。这样 Kibana 就会将 UTC 时间转换为本地时间展示,时间戳后面仍然是 "+0000" 表示时区。这并不会影响时间筛选器的使用。
如果您希望在 Elasticsearch 中存储包含时区信息的时间戳,可以将 Logstash 配置中的 timezone 参数设置为 "UTC",这样 Logstash 就会将时间戳转换为 UTC 时间,并在时间戳后面添加 "+0000" 表示时区。然后,在 Elasticsearch 中创建索引模式时,将时间字段的 "Timezone" 设置为 "Asia/Shanghai",这样 Kibana 在展示时间时就会将 UTC 时间转换为本地时间。
阅读全文