Lire des fichiers à partir de plusieurs répertoires dans Logstash ?
-
21-12-2019 - |
Question
J'ai lu mes fichiers journaux (cron_log, auth_log, mail_log, etc.) en utilisant cette configuration :
file{
path => '/path/to/log/file/*_log'
}
Je lis donc mes fichiers journaux et vérifie :
if(path) ~= "cron" -----match--------
if(path) ~= "auth" -----match--------
Maintenant, j'ai un répertoire comme : Server1 Server2 Server3
......Dans Server 1
il y a des sous-répertoires : authlog cronlog
..... Dans authlog, il y a des sous-répertoires par date (comme 2014.05.26, 2014.05.27
) qui contient enfin le fichier journal du jour, que je dois analyser.
Donc actuellement, j'avais un fichier de configuration qui permettait de lire des fichiers en utilisant *_log
et j'utilise pour exécuter ce fichier de configuration et tous les fichiers journaux présents dans /path/to/log/file/*_log
ont été analysés.
Maintenant, je dois lire dans de nombreux répertoires (comme expliqué ci-dessus).
Vais-je devoir écrire un fichier de configuration distinct pour chaque répertoire ??
Quelle est la meilleure façon d'y parvenir en utilisant logstash ??
La solution
Les globes Ruby interprètent **
comme incluant tous les sous-répertoires.
Ainsi, par exemple, vous pourriez donner au file
saisir un chemin tel que :
/path/to/date/folders/**/*_log