¿Extraer campos de la ruta del archivo de entrada logstash?
Quiero leer mis archivos de registro de varios directorios, como:Server1, Server2
...
Server1
tiene subdirectorios comocron, auth
... dentro de estos subdirectorios está ellog file
respectivamente.
Así que estoy considerando leer archivos como este:
input{
file{
#path/to/folders/server1/cronLog/cron_log
path => "path/to/folders/**/*_log"
}
}
Sin embargo, tengo dificultades para filtrarlos, es decir, saber para qué servidor (Server1
) y logtype (cron
), Debo aplicar elgrok
modelo:
Por ejemplo: pensé en hacer algo como esto
if [path] =~ "auth"{
grok{
match => ["message", ***patteren****]
}
}else if [path] =~ "cron"{
grok{
match => ["message", ***pattern***]
}
Encimacron
es para el archivo de registro (no el directorio cronLog). Pero así también quiero filtrarserver name
como todos los servidores tendráncron
, auth
, etc registros.
¿Cómo filtrar en ambos?
¿Hay alguna manera de obtener nombres de directorio depath
en entrada ?? Como desde aquí
path => "path/to/folders/**/*_log"
¿Cómo debo proceder? Cualquier ayuda es apreciada?