gpt4 book ai didi

regex - 使用grok将日志文件名添加为logstash中的字段

转载 作者:行者123 更新时间:2023-12-04 03:20:52 25 4
gpt4 key购买 nike

我正在使用Grok和Logstash将访问日志从Nginx发送到Elastic搜索。我正在为Logstash提供我的所有访问日志(使用通配符,效果很好),我想获取文件名(准确地说是文件名的一部分)并将其用作字段。

我的配置如下:

input {
file {
path => "/var/log/nginx/*.access.log"
type => "nginx_access"
}
}

filter {
if [type] == "nginx_access" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" }
add_field => { "app" => "%{app}" }
}
}
}
output{
# whatever
}

但这似乎不起作用:添加了 app字段,但具有 %{app}的值(未替换)。

我尝试了不同的尝试,但无济于事。我可能会遗漏一些东西... 有什么想法吗?

非常感谢

最佳答案

好的,找到了。 grok默认在匹配时中断。因此,第一场比赛很好,它跳过了第二场比赛。

我这样解决了:

filter {
if [type] == "nginx_access" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" }
break_on_match => false
}
}
}

关于regex - 使用grok将日志文件名添加为logstash中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780000/

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