从输入文件路径logstash提取字段?
我想从各种目录中读取日志文件,例如:Server1, Server2
…
Server1
具有子目录cron, auth
… log file
分别在这些子目录中。
所以我正在考虑读取这样的文件:
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的每个服务器都会有cron
,auth
等日志。
如何同时过滤?
有没有办法从path
输入中获取目录名称?从这里喜欢
path => "path/to/folders/**/*_log"
我应该如何进行?任何帮助表示赞赏吗?
回答:
它非常直截了当,几乎就像我在其他答案中一样…在路径上使用grok提取出您关心的片段,然后您可以从那里做任何想要的事情
filter { grok { "path", "path/to/here/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logname>.*) }
if [server] == "blah" && [logtype] =~ "cron" {
grok { "message", "** pattern **" }
}
}
以上是 从输入文件路径logstash提取字段? 的全部内容, 来源链接: utcz.com/qa/426394.html