gpt4 book ai didi

Logstash 从 grok 过滤器添加字段

转载 作者:行者123 更新时间:2023-12-05 04:03:07 44 4
gpt4 key购买 nike

是否可以使用 grok 和 mutate 将消息匹配到 logstash 中的新字段?

示例日志:

"<30>Dec 19 11:37:56 7f87c507df2a[20103]: [INFO] 2018-12-19 16:37:56 _internal (MainThread): 192.168.0.6 - - [19/Dec/2018 16:37:56] \"\u001b[37mGET / HTTP/1.1\u001b[0m\" 200 -\r"

我正在尝试创建一个新的键值,我将 container_id 与 7f87c507df2a 匹配。

filter {
grok {
match => [ "message", "%{SYSLOG5424PRI}%{NONNEGINT:ver} +(?:%{TIMESTAMP_ISO8601:ts}|-) +(?:%{HOSTNAME:service}|-) +(?:%{NOTSPACE:containerName}|-) +(?:%{NOTSPACE:proc}|-) +(?:%{WORD:msgid}|-) +(?:%{SYSLOG5424SD:sd}|-|) +%{GREEDYDATA:msg}" ]
}
mutate {
add_field => { "container_id" => "%{containerName}"}
}
}

生成的日志文件呈现此内容,其中 containerName 的值未从 grok 中引用,它只是一个字符串文字:

"container_id": "%{containerName}" 

我正在尝试创建 conf:

"container_id": "7f87c507df2a"

显然 containerName 的值不是从 grok 链接的。我想做的事有可能吗?

最佳答案

如评论中所述,我的 grok 模式不正确。对于可能徘徊在这篇文章中需要 grok 帮助的任何人,请转到 here使构建模式更省时。

这是工作快照:

filter {
grok {
match => [ "message", "\A%{SYSLOG5424PRI}%{SYSLOGTIMESTAMP}%{SPACE}%{BASE16NUM:docker_id}%{SYSLOG5424SD}%{GREEDYDATA:python_log_message}" ]
add_field => { "container_id" => "%{docker_id}" }
}
}

关于Logstash 从 grok 过滤器添加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53854228/

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