Logstash 日志存储日期解析不同
我正在尝试创建一个筛选器来解析日志文件中的日期。过滤器的设置如下所示:Logstash 日志存储日期解析不同,logstash,Logstash,我正在尝试创建一个筛选器来解析日志文件中的日期。过滤器的设置如下所示: filter { date { match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ] } } [2018-09-18 10:13:17,623] [main] INFO com.test.pack - Message [2018-09-18 10:13:17,634] [main] INFO com.test.pack -
filter {
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
}
}
[2018-09-18 10:13:17,623] [main] INFO com.test.pack - Message
[2018-09-18 10:13:17,634] [main] INFO com.test.pack - Message
[2018-09-18 10:13:17,641] [main] INFO com.test.pack - Message
相关日志消息的结构如下所示:
filter {
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
}
}
[2018-09-18 10:13:17,623] [main] INFO com.test.pack - Message
[2018-09-18 10:13:17,634] [main] INFO com.test.pack - Message
[2018-09-18 10:13:17,641] [main] INFO com.test.pack - Message
Logstash的输出为:
{
"host" => "hostname",
"@timestamp" => 2018-09-19T15:19:50.561Z,
"message" => "[2018-09-18 10:13:17,623] [main] INFO com.test.pack - Message",
"path" => "/path/to/file.log",
"@version" => "1"
}
{
"host" => "hostname",
"@timestamp" => 2018-09-19T15:19:50.561Z,
"message" => "[2018-09-18 10:13:17,634] [main] INFO com.test.pack - Message",
"path" => "/path/to/file.log",
"@version" => "1"
}
{
"host" => "hostname",
"@timestamp" => 2018-09-19T15:19:50.561Z,
"message" => "[2018-09-18 10:13:17,641] [main] INFO com.test.pack - Message",
"path" => "/path/to/file.log",
"@version" => "1"
}
因此,logstash时间戳在日期和时间上都有所不同。日期为17日的日志消息也显示为19日。你知道我在过滤中遗漏了什么吗?你还需要一个grok过滤器来从消息中提取时间戳。请试试这样的
filter {
grok {
match => {"message" => "[%{TIMESTAMP_ISO8601:timestamp}] [main] %{GREEDYDATA:restOfMessage}"}
}
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
timezone => "Etc/UCT"
}
}
请在此处选择适当的时区。它可能是EST5EDT、EST、UTC或其他 您还需要一个grok过滤器i来从消息中提取时间戳。请试试这样的
filter {
grok {
match => {"message" => "[%{TIMESTAMP_ISO8601:timestamp}] [main] %{GREEDYDATA:restOfMessage}"}
}
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
timezone => "Etc/UCT"
}
}
请在此处选择适当的时区。它可能是EST5EDT、EST、UTC或其他 这解决了日期问题,但我看到grok提取的时间戳和从日期过滤的时间戳之间有4个小时的差异。“@timestamp”=>2018-09-18T14:13:17.775Z,-----“timestamp”=>“2018-09-18 10:13:17775”您的服务器在哪个时区?东部标准时间用时区更新了答案。请试一试。时区可能是EST或EST5EDT或其他。通过使用Etc/uct进行修复。这修复了日期问题,但我看到grok提取的时间戳和从日期过滤的时间戳之间有4个小时的差异。“@timestamp”=>2018-09-18T14:13:17.775Z,-----“timestamp”=>“2018-09-18 10:13:17775”您的服务器在哪个时区?东部标准时间用时区更新了答案。请试一试。时区可以是EST或EST5EDT或其他。使用Etc/UCT固定