gpt4 book ai didi

elasticsearch - 从日志消息中提取时间戳

转载 作者:行者123 更新时间:2023-12-02 22:47:44 25 4
gpt4 key购买 nike

我正在尝试将日志文件索引到Elastic搜索。所有日志条目都被索引到名为message的字段中。 @timestamp字段显示索引条目的时间,而不是日志条目的时间戳。

我使用grok处理器创建了一个接收管道,以定义日志条目的模式。我尝试了几种模式,但无法正常工作,特别是因为我不熟悉gok。

日志样本

2019-08-05 00:04:06 info [index.js]: Request: HTTP GET /
2019-08-05 00:04:06 error [error.js]: No authorization token was found

使用grok和日期处理器接收管道
"description" : "Extracting date from log line"
, "processors": [
{
"grok": {
"field": "message",
"patterns": ["%{yyyy-mm-dd HH:mm:ss:logtime} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}"]
},
"date": {
"field": "logtime",
"target_field": "@timestamp",
"formats": ["yyyy-mm-dd HH:mm:ss"]
}
}
]
}

我想要的只是从日志消息中提取时间戳的功能,其他所有内容都可以忽略或通配或存储在仅一个变量(如message)中。因此,从本质上说,索引日志文件应该索引日志消息中的时间戳,并且消息的其余部分可以文本或字符串形式保留在一个字段中,而无需解析消息的其余部分。

任何帮助,将不胜感激。

最佳答案

使用它作为grok模式:

%{TIMESTAMP_ISO8601:logtime} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}

使用thes设置 timestamps:
date{
match => ["logtime", "yyyy-MM-dd HH:mm:ss", "ISO8601"]
timezone => "Europe/Berlin"
target => "@timestamp"
}

您可以将 timezone更改为您的

关于elasticsearch - 从日志消息中提取时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57502942/

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