gpt4 book ai didi

cron - 从输入文件路径 logstash 中提取字段?

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

我想从不同的目录读取我的日志文件,例如:Server1, Server2...

Server1 有子目录cron, auth...这些子目录里面分别是日志文件

所以我正在考虑像这样阅读文件:

input{
file{
#path/to/folders/server1/cronLog/cron_log

path => "path/to/folders/**/*_log"
}
}

但是,我很难过滤它们,即要知道对于哪个服务器 (Server1) 和日志类型 (cron),我必须应用 grok 模式:

例如:我想做这样的事情

if [path] =~ "auth"{

grok{
match => ["message", ***patteren****]
}
}else if [path] =~ "cron"{
grok{
match => ["message", ***pattern***]
}

上面的 cron 是日志文件(不是 cronLog 目录)。但像这样我也想过滤 server name 因为每个服务器都有 cronauth 等日志。

如何过滤两者?

有没有办法从输入的 path 中获取目录名称?从这里点赞

path => "path/to/folders/**/*_log"

我应该如何进行?感谢任何帮助?

最佳答案

它非常直接,几乎和我的其他答案完全一样......你在路径上使用 grok 来提取你关心的部分,然后你可以从那里做任何你想做的事

filter {
grok { "path", "path/to/here/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logname>.*) }
if [server] == "blah" && [logtype] =~ "cron" {
grok { "message", "** pattern **" }
}
}

关于cron - 从输入文件路径 logstash 中提取字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053849/

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