Table des matières

check_prelude

Ce plugin accède aux évènements (alertes) contenus dans une base de données d’un serveur Prelude

Tutoriel réalisé par :

Rôle Nom
Rédacteur Ludovic VALENTIN

Présentation

Dans le cadre d’une intégration Nagios de Prelude-IDS, il faut installer le plugin check_prelude. Celui-ci permet de récupérer les évènements stockés dans la base de données MySQL de Prelude, à intervalle régulier (toutes les 5 minutes), puis il retourne un statut basé sur des limites définies.

check_prelude compte les évènements avec une sévérité de type medium et high présents dans la base de données. Ensuite il remonte un statut WARNING ou CRITICAL dans Nagios.

Le comptage des évènements, et le déclenchement d’un statut dans Nagios se fait selon des paramètres (limites ou seuils) spécifiés lors de la création du service dans Nagios. Par exemple, dès que check_prelude trouve 10 évènements medium dans Prelude, il génère un WARNING. Le nombre à partir duquel le plugin réagit dans Nagios est donc à fixer par l’administrateur.

Installation

Cette partie va traiter de l’installation de check_prelude.pl dans l’environnement d’un serveur Nagios.

$ sudo wget http://www.monitoringexchange.org/cgi-bin/jump.cgi?ID=2287&view=File1;d=1

$ sudo cp check_prelude.pl /usr/local/nagios/libexec

Et voilà votre plugin est installé et près à être configuré dans Nagios.

Configuration

Nagios

Pour configurer Nagios dans l’optique de « dialoguer » avec le serveur Prelude, il faut définir une commande, puis un host et enfin un service. Il est bien sûr possible de les déclarer de plusieurs façons soit dans un seul fichier comme dans l’exemple qui va suivre ou bien, dans plusieurs fichiers. Tout dépend de son choix personnel, de ses préférences, et de ses besoins.

Pour commencer, il faut d’abord créer un dossier puis un fichier pour y stocker les objets à déclarer.

$ sudo mkdir /usr/local/nagios/etc/prelude
$ sudo vim /usr/local/nagios/etc/prelude/prelude.cfg

Et dans ce fichier, éditer la commande, le service et l’hôte.

define command {
	command_name	check_prelude
	command_line	/usr/bin/perl /usr/local/nagios/libexec/check_prelude.pl $ARG1$ $ARG2$
}

Ici, l’utilisation de la commande (command_line) nécessite de préciser le chemin vers perl, afin de lancer correctement le plugin check_prelude. Sinon, le service apparaîtra en UNKNOWN dans l’interface web de Nagios. C’est un problème venant d’une erreur ePN (ePN étant le module d’interprétation Perl de Nagios lui-même. Il peut s’avérer instable avec certains scripts).

define host {
	use			linux-server
	host_name		PRELUDE
	display_name		srv-prelude
	alias			Serveur Prelude
	address		        xx.xx.xx.xx
}

define service {
	use			generic-service
	host_name		PRELUDE
	service_description	Alertes_PRELUDE
	check_command		check_prelude!1!1
}

Dans la définition du service et de la commande, les arguments ($ARG1$, $ARG2$ pour la commande, et !1 !1 pour le service) indique les seuils maximums à partir desquels Nagios affiche un état CRITICAL, ou WARNING selon le nombre d’alertes de Prelude de type HIGH ou MEDIUM. Ici, dès que la base de données de Prelude contient une alerte HIGH, vu que le seuil est de 1, Nagios affiche alors un état CRITICAL pour le service Prelude, de même pour le type MEDIUM, …etc.

Une fois les objets déclarés, il reste à définir le dossier contenant ce fichier dans la configuration principale de Nagios, à savoir le fichier nagios.cfg. Pour cela il suffit d’indiquer le chemin vers ce répertoire afin que Nagios prenne en compte nos objets.

cfg_dir=/usr/local/nagios/etc/prelude

check_prelude.pl

La configuration du serveur n’est pas encore finie, en effet, le check_prelude avant d’être opérationnel, doit être correctement paramétré pour pouvoir s’authentifier auprès du serveur MySQL de Prelude. Il faut éditer le fichier check_prelude et y ajouter les paramètres MySQL.

Attention : ne pas oublier de configurer votre base de données MySQL sur le serveur Prelude, pour accepter les connexions du plugin depuis un hôte distant (serveur Nagios).
$ sudo vim /usr/local/nagios/libexec/check_prelude.pl
### database access

use constant DBNAME => "prelude";
use constant DBHOST => "xx.xx.xx.xx";
use constant DBUSER => "prelude";
use constant DBPASS => "manager";

A ce stade, la configuration de Nagios pour récupérer les alertes de Prelude est terminée. Il n’y a plus qu’à (re)lancer Nagios.