2 - Intégration à Windows

Dans cette page :

Haut de page

Introduction

Nagios fonctionne sur des systèmes Linux mais est capable de surveiller n’importe quel type de système.

Il peut surveiller des systèmes Windows grâce à un agent installé sur les machines Windows et capable de communiquer avec le serveur Windows.

Il peut aussi surveiller d’autres types de systèmes à l’aide du protocole standard SNMP.

Intégration Nagios-Windows

Pour surveiller des serveurs Windows, la solution la plus simple consiste à utiliser NSClient++. Ce programme s’exécute comme un service sur les hôtes Windows et peut assez facilement être interrogé par le plugin check_nt, fourni dans la distribution standard de Nagios (dans le répertoire /usr/lib/nagios/plugins).

Pour installer ce service sur un serveur Windows, allez sur le site de NSClient++ et téléchargez la version qui correspond à votre serveur. Le plus simple est de télécharger le fichier .msi, qui fera presque tout le travail.

Au moment de l’installation, faites les choix suivants dans la boîte de dialogue:

HTTP

Lorsque l’installation est terminée, vérifiez que le service roule dans la console des services Windows.

Du côté du serveur Nagios, ajoutez un hôte pour le serveur Windows:

define host {
	host_name				svWin    
	alias					Serveur Windows NSClient
	address					192.168.1.150
	max_check_attempts		10
	contacts				admin
	notification_interval	0
	notification_period		24x7
	check_command			check-host-alive
}

Ajouter une commande pour check_nt, qui se connectera sur NSClient:

define command{
	command_name    check_nt
	command_line    /usr/local/nagios/libexec/check_nt -H $HOSTADDRESS$ -s abc-123 -p 12489 -v $ARG1 
}

Les options de cette commande sont :

-s Le mot de passe défini à l’installation de NSClient++

-p Le port utilisé par NSClient++

-v La variable, qui correspond à l’information demandée à NSClient (RAM, espace disque, etc.)

Ajouter ensuite un service générique afin de simplifier les définitions des divers services à vérifier sur l’hôte Windows Server. Un service générique permet de regrouper les paramètres identiques entre plusieurs services:

define service{
	name					generic-service
	check_interval			1
	retry_interval			1
	max_check_attempts		5
	check_period			24x7
	contacts				admin
	notification_interval	30
	notification_period		24x7
	register              	0;
}

Ajouter les services à vérifier sur le serveur Windows:

define service{
    	use                     generic-service
    	host_name               svWin
    	service_description     NSClient++ Version
    	check_command           check_nt!CLIENTVERSION 
}

define service{
	use                     generic-service
	host_name               svWin 
	service_description     Uptime
	check_command           check_nt!UPTIME 
}

define service{
	use                     generic-service
	host_name               svWin 
	service_description     CPU Load
	check_command           check_nt!CPULOAD -l 5,80,90 
}

define service{
	use                     generic-service
	host_name               svWin 
	service_description     Memory Usage
	check_command           check_nt!MEMUSE -w 80 -c 90 
}	

define service{
	use                     generic-service
	host_name               svWin 
	service_description     C:\ Drive Space
	check_command           check_nt!USEDDISKSPACE -l c -w 80 -c 90 
}
		
define service{
	use                     generic-service
	host_name               svWin 
	service_description     Explorer
	check_command           check_nt!PROCSTATE -d SHOWALL -l 	Explorer.exe
}