Installation de NsClient++

Téléchargement

Télécharger le dernière version STABLE en fonction de votre architecture (32 ou 64bits) :

http://nsclient.org/nscp/downloads

Installation et configuration du client

Sur le « host » à superviser, installer le client Nsclient++ et paramétrer le fichier de configuration :

C:\Program Files\NsClient++\NSC.INI

Voici les modules que j’ai activé dans la section [modules]

[modules]
NSClientListener.dll
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
CheckEventLog.dll
CheckHelpers.dll
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NRPEListener.dll
CheckEventLog.dll
CheckExternalScripts.dll
[Settings]
alowed_hosts=ip du serveur nagios
password=mdp_choisi
[log]
debug=0
file=nsclient.log
[NSClient]
alowed_hosts=ip du serveur nagios
port=12489
[NRPE]
port=5666
command_timeout=60
allow_arguments=1
allow_nasty_meta_chars=1
use_ssl=1
alowed_hosts=ip du serveur nagios
script_dir=scripts\
socket_timeout=60
[External Script]
allow_nasty_meta_chars=1
[External Scripts]
check_be=scripts\check_be.exe "C:\Program Files\Symantec\Backup Exec\Data" "Sauvegarde 00003" -w1 -c2
check_be_xchng=scripts\check_be.exe "C:\Program Files\Symantec\Backup Exec\Data" "Exchange" -w1 -c2
check_smartarray="cscript.exe //NoLogo //T:10 scripts\check_smartarray.vbs"
check_fileage="cscript.exe //Nologo //T:10 scripts\check_fileage.vbs -f d:\\visa\\backup\\EXPORT_DP_GRHI.DMP -c2"

Relancer ensuite le service.

Tester

Installer les nagios-nrpe-plugin (apt-get install nagios-nrpe-plugin).

/usr/lib/nagios/plugins/check_nt -H ip_client -p 12489 -s mot-de-passe -v CLIENTVERSION

Problèmes rencontrés

J’ai eu quelques difficultés sur un client Win 2008R2 non patché. Le port 12489 n’était pas accessible depuis le serveur Nagios (via telnet) alors que les autres ports (5666 par exemple) étaient accessibles.
Après un windows update et un redémarrage, tout est rentré dans l’ordre.

Il est possible de lancer NsClient++ en mode « test » grâce à la commande (arrêter le service au préalable) :

nsclient++.exe /test

Ceci permet d’obtenir une sorte de mode « verbeux » dans lequel on peut lire les éventuelles erreurs du service.

Nagiosgraph sur Debian squeeze

Pré-requis

Une installation de Nagios fonctionnelle ! Et :

apt-get install libcgi-pm-perl librrds-perl libgd-gd2-perl

Récupérer le .deb sur le site

http://sourceforge.net/projects/nagiosgraph/files/nagiosgraph/

Installer Nagiosgraph

dpkg -i nagiosgraph.deb

Vérifier la configuration

L’installation a du ajouter les lignes suivantes au fichier /etc/nagios3/nagios.cfg :

# begin nagiosgraph configuration
# process nagios performance data using nagiosgraph
process_performance_data=1
service_perfdata_file=/tmp/perfdata.log
service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata-for-nagiosgraph
# end nagiosgraph configuration

Dans commands.cfg, Nagiosgraph a ajouté cette commande :

# begin nagiosgraph configuration
# command to process nagios performance data for nagiosgraph
define command {
 command_name process-service-perfdata-for-nagiosgraph
 command_line /usr/lib/nagiosgraph/insert.pl
}
# end nagiosgraph configuration

Vérifier la configuration nagiosgraph.conf

/etc/nagiosgraph/nagiosgraph.conf, normalement, il n’y a rien à modifier, on remarque que le fichier d’ »échange » des données de performances entre Nagios et Nagiosgraph sera /tmp/perfdata.log.

perflog = /tmp/perfdata.log

Modifier la définition des hosts

Ajouter « action_url », ceci va ajouter un lien vers les graphiques sur chaque host dans l’interface web Nagios.

define host{
 use generic-host
 host_name HOST
 alias HOST
 address 192.168.1.1
 action_url /nagiosgraph/cgi-bin/showhost.cgi?host=$HOSTNAME$
 }

Recharger le service nagios.

Pour vérifier le fonctionnement

tail -f /tmp/perfdata.log

Problème rencontré

Les graphs ne sont pas réalisé, les logs « /var/log/nagiosgraph/nagiosgraph.log » montrent ce genre d’erreur :

error RRDs::update ERR[...]conversion of '0,000000' to float not complete: tail ',000000'

Ceci signifie que les RRD ne sont pas capable de traiter les résultats des checks qui comportent des virgules.

1ere solution à ne pas utiliser

A ne pas utiliser, car elle génère des problèmes d’interprétation des codes de sorties des plugins (0,1 ou 2 pour OK, Warning et Critical). Avec cette solution, le code de sortie est toujours OK.

Cette solution, remplacer les virgules par un point au moment de l’exécution d’un check. Par exemple pour la commande check_nt, modifier le fichier /etc/nagios-plugins/config/nt.cfg et ajouter «  | sed ‘s/,/./g’  » (sans guillemet à la fin de la commande_line), ce qui donne :

# !! NE PAS UTILISER CETTE SOLUTION !!
#
# 'check_nt' command definition
define command {
 command_name check_nt
 command_line /usr/lib/nagios/plugins/check_nt -H $HOSTADDRESS$ -p 12489 -s user -v $ARG1$ $ARG2$ | sed 's/,/./g'
}

Solution retenue : modifier la locale à l’exécution du plugin check_nt

Pour ce faire, modifier la commande du plugin check_nt et ajouter LC_ALL=C LANG=C avant la ligne de commande d’exécution du plugin. Cette locale (C) permettra une sortie du plugin sans virgule.

# 'check_nt' command definition
define command {
 command_name check_nt
 command_line LC_ALL=C LANG=C /usr/lib/nagios/plugins/check_nt -H $HOSTADDRESS$ -p 12489 -s user -v $ARG1$ $ARG2$
}

Nagios, serveur central et serveurs distribués

Il vous sera peut être utile de surveiller vos services et hôtes sur des sites distants. Nagios a également été prévu pour fonctionner sur principe : un serveur Nagios distribué sur chaque site vérifie les hosts et services définis et remonte les vérifications sur un serveur central.

Le serveur Nagios central ne fait qu’écouter les remontées fournies par les Nagios distribués grâce au module ncsa. Ncsa est composé d’une partie serveur (sur le Nagios central) et d’une partie cliente (send_nsca sur les Nagios distribués).

Une telle solution peut aussi être envisagée dans des environnements où les vérifications sont nombreuses et où la charge doit être répartie sur plusieurs serveur Nagios.

Ce billet reprend la mise en oeuvre d’une telle solution.

Continue reading

Nagios et NRPE : superviser BackupExec 2010

Lorsqu’on administre les sauvegardes de nombreux serveurs, il est intéressant de trouver des solutions afin de centraliser les journaux de sauvegardes.

Ceci billet vous permettra de superviser vos sauvegardes BackupExec sur une machine windows server grâce à Nagios et au plugin check_nrpe associé au client NsClient++.

Continue reading

Nagios plugin check nmap

Le RSSI (Responsable Sécurité du Système d’Information) doit perpétuellement s’assurer de l’application de la stratégie de sécurité. Dans ce cadre, il peut être intéressant de vérifier si une liste de ports ouverts est conformes à une liste prédéfine. Si un port est manquant, ou si un port supplémentaire est ouvert, Nagios nous alertera.

Continue reading