gpt4 book ai didi

elasticsearch - 将日志消息时间戳记存储在Elasticsearch中之前将其转换为UTC

转载 作者:行者123 更新时间:2023-12-02 23:32:02 26 4
gpt4 key购买 nike

我正在使用Logstash收集和解析Tomcat访问日志消息,并将所解析的消息存储在Elasticsearch中。
我正在使用Kibana在Elasticsearch中显示日志消息。
目前,我正在使用Elasticsearch 2.0.0,Logstash 2.0.0和Kibana 4.2.1。

访问日志行如下所示:

02-08-2016 19:49:30.669 ip=11.22.333.444  status=200  tenant=908663983 user=0a4ac75477ed42cfb37dbc4e3f51b4d2 correlationId=RID-54082b02-4955-4ce9-866a-a92058297d81  request="GET /pwa/rest/908663983/rms/SampleDataDeployment HTTP/1.1" userType=Apache-HttpClient requestInfo=- duration=4 bytes=2548 thread=http-nio-8080-exec-5 service=rms itemType=SampleDataDeployment itemOperation=READ dataLayer=MongoDB incomingItemCnt=0 outgoingItemCnt=7 

日志文件中显示的时间(例如02-08-2016 19:49:30.669)是本地时间(不是UTC!)

这是我解析消息行的方式:
filter {

grok {
match => { "message" => "%{DATESTAMP:logTimestamp}\s+" }
}

kv {}

mutate {
convert => { "duration" => "integer" }
convert => { "bytes" => "integer" }
convert => { "status" => "integer" }
convert => { "incomingItemCnt" => "integer" }
convert => { "outgoingItemCnt" => "integer" }

gsub => [ "message", "\r", "" ]
}

grok {
match => { "request" => [ "(?:%{WORD:method} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpVersion})?)" ] }
overwrite => [ "request" ]
}

}

我希望Logstash将从日志消息(“logTimestamp”字段)读取的时间转换为UTC,然后再将其存储在Elasticsearch中。

有人可以帮我吗?

-

我已在处理中添加了日期过滤器,但必须添加时区。
    filter {
grok {
match => { "message" => "%{DATESTAMP:logTimestamp}\s+" }
}

date {
match => [ "logTimestamp" , "mm-dd-yyyy HH:mm:ss.SSS" ]
timezone => "Asia/Jerusalem"
target => "logTimestamp"
}

...
}

有没有一种方法可以在不提供本地时区的情况下将日期转换为UTC,以便Logstash可以获取正在运行的计算机的时区?

这个问题背后的动机是我想在所有时区的所有部署中使用相同的配置文件。

最佳答案

这就是date {}过滤器的用途-要解析包含日期字符串的字符串字段,请用UTC中的该值替换[@timestamp]字段。

关于elasticsearch - 将日志消息时间戳记存储在Elasticsearch中之前将其转换为UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35393765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com