Извлечение полей из входного файла пути logstash?
Я хочу прочитать мои файлы журналов из разных каталогов, например:Server1, Server2
...
Server1
имеет подкаталоги какcron, auth
... внутри этих подкаталогов находитсяlog file
соответственно.
Итак, я думаю о чтении файлов, как это:
input{
file{
#path/to/folders/server1/cronLog/cron_log
path => "path/to/folders/**/*_log"
}
}
Тем не менее, я испытываю трудности в их фильтрации, т. Е. Знать, для какого сервера (Server1
) и logtype (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"
Как мне поступить? Любая помощь приветствуется?