gpt4 book ai didi

Logstash 转换纪元时间戳

转载 作者:行者123 更新时间:2023-12-04 09:58:41 25 4
gpt4 key购买 nike

我正在尝试解析一些纪元时间戳以使其更具可读性。

我环顾四周,寻找如何将它们解析为正常时间,据我所知,我应该做的就是这样:

mutate
{
remove_field => [ "..."]
}

grok
{
match => { 'message' => '%{NUMBER:time}%{SPACE}%{NUMBER:time2}...' }
}

date
{
match => [ "time","UNIX" ]
}

一个消息示例是: 1410811884.84 1406931111.00 ....前两个值应该是 UNIX 时间值。

我的 grok 有效,因为 Kibana 中的所有字段都显示为预期值,而我删除的所有值字段都不存在,因此 mutate 也有效。日期部分似乎什么都不做。

据我了解 match => [ "time","UNIX" ]应该做我想做的事情(将时间值更改为正确的日期格式,并将其作为字段显示在 kibana 上。)。所以显然我不理解它。

最佳答案

date{} 过滤器将@timestamp 的值替换为提供的数据,因此您应该看到@timestamp 的值与[time] 字段的值相同。这通常很有用,因为在日志的传播、处理和存储过程中存在一些延迟,因此首选使用事件自己的时间。

由于您有多个日期字段,您需要使用日期过滤器的 'target' 参数来指定解析日期的目的地,例如:

date {
match => [ "time","UNIX" ]
target => "myTime"
}

这会将名为 [time] 的字符串字段转换为名为 [myTime] 的日期字段。 Kibana 知道如何显示日期字段,您可以在 kibana 设置中对其进行自定义。

由于您可能不需要相同数据的字符串和日期版本,您可以删除字符串版本作为转换的一部分:
date {
match => [ "time","UNIX" ]
target => "myTime"
remove_field => [ "time" ]
}

关于Logstash 转换纪元时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34347258/

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