gpt4 book ai didi

elasticsearch - Logstash-使用当前日期作为时间戳记日期

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

我想将当前日期用作时间戳记(日期),因为此信息在我们的日志文件中不可用。
示例-> main_core.log:

04:00:19.675 [ActiveMQ Task-9] INFO  a.b.c.t.failover.FailoverTransport - Successfully reconnected to ssl://localhost:12345

我想将其拆分,并使用当前日期作为日期和时间戳记。

那有可能吗?

非常感谢

最佳答案

您可以添加一个字段,其中包含日志中缺少的时间戳部分,然后与包含小时的变量连接,并将其用作@timestamp字段。

下面的过滤器执行以下操作:

filter {
grok {
break_on_match => false
match => ["message","%{TIME:hour} %{GREEDYDATA:msg}"]
tag_on_failure => [ "_grokparsefailure"]
add_field => { "time" => "%{+YYYY-MM-dd}"}
add_field => { "timestamp" => "%{time} %{hour}" }
}
date {
target => "@timestamp"
match => ["timestamp", "YYYY-MM-dd HH:mm:ss.SSS"]
}
}

首先,它将使您的消息与grok模式匹配,该模式将提取小时并将其保存在字段名称 hour中,其余的将保存在字段名称 msg中,但是您可以根据需要解析其余内容。

然后,它将添加带有格式YYYY-MM-dd的字段名称 time,例如 2018-07-12

之后,它将创建一个名为 timestamp的字段,该字段为 timehour字段,这将导致 2018-07-12 4:00:19.675 date过滤器用于将您生成的时间戳记用作elastic中的默认时间戳记字段 @timestamp

此过滤器的logstash输出如下所示:
{
"@timestamp":"2018-07-12T04:00:19.675Z",
"message":"04:00:19.675 [ActiveMQ Task-9] INFO a.b.c.t.failover.FailoverTransport - Successfully reconnected to ssl://localhost:12345",
"timestamp":"2018-07-12 04:00:19.675",
"msg":"[ActiveMQ Task-9] INFO a.b.c.t.failover.FailoverTransport - Successfully reconnected to ssl://localhost:12345",
"time":"2018-07-12",
"@version":"1",
"hour":"04:00:19.675",
"host":"logstash-hostname"
}

关于elasticsearch - Logstash-使用当前日期作为时间戳记日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51305455/

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