Supervision temps réel de fichier de log avec NSClient++
Source : MEDIN.NAME Blog
Cet article se base sur la publication de Michael MEDIN créateur de NSClient++ concernant l’élaboration d’un POC sur la supervision temps réel des events log Windows et/ou logs applicatifs à l’aide des dernières fonctionnalités que propose NSClient++.
Vous allez me dire que la supervision de logs windows peut très bien se faire avec du check_wmi_plus, CheckEventLog ou CheckLogFile. Effectivement, ces 3 solutions réalisent largement le travail … mais la recherche d’erreur dans des logs applicatifs ou dans les events log windows, n’est-il pas de l’ordre de l’évènement asynchrone ? Qui dit asynchrone, dit supervision « passive » non ?
Supervision temps réel
L’idée derrière cette supervision est de minimiser le nombre d’interrogations inutile au sein d’un S.I. Pas besoin d’interroger de manière régulière une machine distante sur des évènements qui sont asynchrone. Ce POC s’appuie sur les fonctionnalités CheckEventLog & CheckLogFile de NSClient++ et sur la nouvelle fonctionnalité implémenté dans NSClient++ 0.4.0 : SimpleCache
A notre gauche, nous avons les 2 modules (CheckEventLog & CheckLogFile) qui reçoivent de la part du système d’exploitation des évènements correspondant à nos critères de recherche. Les évènements sont envoyés (sous forme de notifications) vers divers canaux (NSCA, CACHE, FILE).
Ici sur le schéma 3 canaux sont utilisés :
- NSCAClient : Sends notification to remote Nagios/Icinga via NSCA.
- SimpleCache : Caches events for later use by for instance NRPE commands
- SimpleFileWriter : Writes notification to a regular text file
Configuration de la Supervision temps réel des events logs Windows
Tout d’abord, nous avons besoin de 3 pré-requis :
Charger le module CheckEventLog
[/modules]
CheckEventLog = enabled
Activer la supervision temps réel
[/settings/eventlog/real-time]
enabled = true
Créer un filtre de recherche
[/settings/eventlog/real-time/filters/eventlog]
filter=level = 'error'
target=NSCA,CACHE,FILE
L’auteur invite à voir plus en détails les 2 liens ci-dessous pour comprendre un peu mieux le mécanisme.
Configuration de la supervision temps réel de fichier de log
La supervision temps réel de fichier de log est similaire à celle des events logs.
Charger le module CheckEventLog
[/modules] CheckLogFile = enabled
Activer la supervision temps réel
[/settings/logfile/real-time]
enabled = true
Création d’un filtre de recherche
[/settings/logfile/real-time/checks/logfile]
file = ./test.txt
destination = NSCA,CACHE,FILE
filter = column1 like 'hello'
critical = column2 like 'world'
column separator=;
Michael vous invite à visionner sa présentation qu’il a réalisé lors de l’OSMC 2012
Slides from OSMC 2012 pressentation
Reste de la configuration
Charger tous les autres modules
[/modules]
SimpleFileWriter = enabled
SimpleCache = enabled
NSCAClient = enabled
Configurez la destination des notifications NSCA
[/settings/NSCA/client/targets/default]
address=nsca://IP_SERVEUR_NAGIOS:5667
encryption=aes256
password=YL04nBb14stIgCjZxcudGtMqz4E6NN3W
Configuration en entier
[/modules]
CheckLogFile = enabled
CheckEventLog = enabled
SimpleFileWriter = enabled
SimpleCache = enabled
NSCAClient = enabled
[/settings/eventlog/real-time]
enabled = true
[/settings/eventlog/real-time/filters/eventlog]
filter=level = 'error'
target=NSCA,CACHE,FILE
[/settings/logfile/real-time]
enabled = true
[/settings/logfile/real-time/checks/logfile]
file = ./test.txt
destination = NSCA,CACHE,FILE
filter = column1 like 'hello'
critical = column2 like 'world'
column separator=;
[/settings/NSCA/client/targets/default]
address=nsca://IP_SERVEUR_NAGIOS:5667
encryption=aes256
password=YL04nBb14stIgCjZxcudGtMqz4E6NN3W
Voici les liens utiles pour vous intéresser à cette supervision :
- Self-resetting eventlog alerts
- Real-time eventlog monitoring with NSClient++
- Slides from OSMC 2012 pressentation
Pour conclure, l’auteur précise que la manipulation décrite ci-dessous est encore expérimental et que la version de NSClient++ 0.4.2 apportera encore des améliorations pour ce type de supervision. Il n’est donc pas encore recommander à mettre cette solution en production. Par contre, Michael vous invite a testé cette nouveauté et lui faire un maximum de retour dessus.
A votre supervision !