Académique Documents
Professionnel Documents
Culture Documents
o Paquetages requis
o Personnalisation de la configuration
o Démarrage de Nagios
o Autres Modifications
Ce guide est prévu pour vous fournir les instructions simples sur la façon d'installer Nagios depuis le code
source sur Ubuntu et d'avoir la supervision de votre machine locale prête en moins de 20 minutes. Aucune
option d'installation avancée n'est abordée ici - juste les notions basiques qui fonctionneront pour 95% des
utilisateurs qui veulent démarrer.
Ces instructions ont été écrites en se basant sur une installation standard de la distribution Fedora 6.10
(desktop). Elles devraient fonctionner également pour Ubuntu7.10.
1. Apache 2
3. librairies de développement GD
Vous pouvez utiliser apt-get pour installer ces paquets en exécutant la commande suivante:
Sur Ubuntu 7.10, le nom de la librairie gd2 a changé, vous devez donc utiliser ce qui suit:
$ sudo -s
# /usr/sbin/useradd -m nagios
# passwd nagios
Sur la version Ubuntu server (6.01 et peut-être versions plus récentes), vous devrez également ajouter un
groupe nagios (il n'est pas créé par défaut). Vous devriez pouvoir éviter cette manipulation sur la version
desktop de Ubuntu.
# /usr/sbin/groupadd nagios
# /usr/sbin/usermod -G nagios nagios
Créez un groupe nagcmd pour autoriser la soumission de commandes externes depuis l'interface web. Ajoutez à
la fois l'utilisateur nagios et l'utilisateur apache à ce groupe.
# /usr/sbin/groupadd nagcmd
# /usr/sbin/usermod -G nagcmd nagios
# /usr/sbin/usermod -G nagcmd www-data
# mkdir ~/downloads
# cd ~/downloads
Téléchargez à la fois l'archive du code source de Nagios et des plugins Nagios
(visitez http://www.nagios.org/download/pour les liens vers les dernières versions). Au moment de la
rédaction, les dernières versions de Nagios et des plugins Nagios étaient respectivement la 3.0.2 et la 1.4.11.
# wget
http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.2.tar.gz
# wget
http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-
1.4.11.tar.gz
# cd ~/downloads
# tar xzf nagios-3.0.2.tar.gz
# cd nagios-3.0.2
Exécutez le script de configuration de Nagios en lui passant le nom du groupe que vous venez juste de créer
comme suit:
# ./configure --with-command-group=nagcmd
# make all
Installez les binaires, les scripts de démarrage, les fichiers de configuration fournis en exemple et réglez les
permissions sur le dossier des commandes externes.
# make install
# make install-init
# make install-config
# make install-commandmode
Personnalisation de la configuration
Les exemples de fichiers de configuration ont été installés dans le répertoire /usr/local/nagios/etc.
Ces fichiers d'exemple devraient suffire pour commencer avec Nagios. Vous n'aurez qu'une chose à modifier
avant de pouvoir commencer…
Éditez le fichier de configuration /usr/local/nagios/etc/objects/contacts.cfg avec votre
éditeur de texte préféré et changez l'adresse de courrier électronique associée avec la définition de contact
nagiosadmin par celle que vous souhaitez utiliser pour recevoir les alertes.
# vi /usr/local/nagios/etc/objects/contacts.cfg
# make install-webconf
Créez un compte nagiosadmin pour la connexion à l'interface web de Nagios. Retenez le mot de passe que vous
attribuez à ce compte - vous en aurez besoin plus tard.
# /etc/init.d/apache2 reload
# cd ~/downloads
# tar xzf nagios-plugins-1.4.11.tar.gz
# cd nagios-plugins-1.4.11
Démarrage de Nagios
Configurez Nagios pour qu'il s'exécute automatiquement au démarrage du système.
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
# /etc/init.d/nagios start
http://localhost/nagios/
Cliquez sur le lien Service Detail de la barre de navigation pour voir les détails de ce que vous supervisez sur
votre machine locale. Nagios va prendre quelques minutes pour contrôler l'ensemble des services de votre
machine du fait que les contrôles sont répartis dans le temps.
Autres Modifications
Si vous souhaitez recevoir des notifications par courrier électronique des alertes Nagios, vous devez installer le
paquet mailx (Postfix).
Vous devez éditer les commandes de courrier électronique Nagios qui peuvent être trouvées
dans /usr/local/nagios/etc/objects/commands.cfg et remplacer toutes les références
à /bin/mail en /usr/bin/mail. Une fois ceci fait, vous devez redémarrer Nagios pour prendre en compte
ces mofdifications.
La configuration des notifications par courrier électronique est en dehors du champ de cettte documentation.
Référez-vous à la documentation de votre système, recherchez sur le web, ou regardez sur le wiki
NagiosCommunity.org pour des instructions spécifiques sur la façon de configurer votre système Ubuntu pour
qu'il envoie des courriers électroniques vers des adresses extérieures.
Assurez-vous d'avoir une bonne sauvegarde de votre installation de Nagios existante ainsi que des fichiers de
configuration. Si quelque chose se passe mal ou ne fonctionne pas, ce qui vous permettra de revenir à votre
ancienne version.
Devenez l'utilisateur nagios. Les utilisateurs de Debian/Ubuntu devront utiliser sudo -s nagios.
$ su -l nagios
$ wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.x.tar.gz
Exécutez le script de configuration de Nagios, en passant le nom du groupe utilisé pour contrôler les
permissions du fichiers de commande comme ceci:
$ ./configure --with-command-group=nagcmd
$ make all
Installation de la mise à jour des binaires, de la documentation et l'interface web. Vos fichiers de configuration
ne seront pas écrasés par cette étape.
$ make install
Soyez-sûrs d'avoir lu la section Chapitre 2, Quoi de neuf dans Nagios 3 de la documentation. Celle-ci décrit tous
les changements qui ont été appliqués au code de Nagios 3 depuis la dernière version stable de Nagios 2.x.
Nagios 3 a quelque peu changé, soyez-sûrs de l'avoir lu.
Différents packages RPM ou APT peuvent installer Nagios de façons différentes et à différents endroits. Soyez
sûrs d'avoir correctement sauvegardé vos fichiers Nagios critiques avant de supprimer les packages RPM ou APT
originaux, vous ne pourrez pas revenir en arrière si vous rencontrez des problèmes.
o Introduction
o Vue globale
o Étapes
o Pré-requis
o Configuration de Nagios
o Redémarrage de Nagios
Ce document décrit la façon dont vous pouvez superviser les attributs et services privésde machines Windows
comme:
o Utilisation mémoire
o Charge CPU
o Utilisation disque
o État des services
o Processus en cours d'exécution
o etc.
Introduction
Les services rendus publics qui sont fournis par des machines Windows (HTTP, FTP, POP3, etc.) peuvent être
supervisés de façon simple en suivant la documentation sur la supervision des services publics disponibles .
Ces instructions impliquent que vous ayez installé Nagios comme précisé dans le guide rapide. Les exemples de
configuration ci-dessous font référence aux objets de configuration définis dans les fichiers d'exemples
(commands.cfg, templates.cfg, etc.) qui ont été installé si vous avez suivi le guide rapide.
Vue globale
Superviser des attributs et services privés sur une machine Windows requiert l'installation d'un agent sur celle-
ci. Cet agent agit comme un proxy entre les plugins Nagios qui font la supervision et le service ou l'attribut sur
la machine Windows. Sans installation d'agent sur la machine Windows, Nagios serait incapable de superviser le
moindre attributs ou services privés de la machine Windows.
Pour cet exemple, nous allons installer l'addon NSClient++ sur la machine Windows et utiliser le
plugin check_nt pour communiquer avec NSCLient++. Le plugin check_nt devrait déjà être installé sur le
serveur Nagios si vous avez suivi le guide d'installation rapide.
Vous pouvez utiliser d'autres agents Windows (comme NC_Net) si vous le souhaitez - à condition de changer un
peu les commandes et les définitions de services, etc. Pour faire simple, je ne couvrirais que l'utilisation de
NSCLient++ dans ces instructions.
Étapes
Il y a plusieurs étapes à suivre pour pouvoir superviser une nouvelle machine Windows. Les voici:
o Une définition de commande check_nt a été ajouté au fichier commands.cfg. Cela permet
d'utiliser le plugin check_nt pour superviser les services Windows.
o Un gabarit d'hôte serveur Windows (appelé windows-server) a déjà été créé dans le
fichier templates.cfg. Cela permet d'ajouter de nouvelles définitions d'hôtes Windows de façon
simple.
Pré-requis
La première fois que vous configurez Nagios pour superviser une machine Windows, vous
avez un peu plus de travail à faire. Souvenez-vous, vous n'avez à le faire que pour la
*première* machine Windows à superviser.
#vi /usr/local/nagios/etc/nagios.cfg
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
Enregistrez le fichier et quittez.
7. Installez le module NSClient++ pour la barre des tâches avec la commande suivante ('SysTray' est
sensible à la casse):
11. Éditez le fichier NSC.INI (situé dans le répertoire C:\NSClient++) et effectuez les changements
suivants:
15. Si l'installation est correcte, une nouvelle icône devrait apparaître dans votre barre des tâches. Ce
sera un cercle jaune avec un 'M' noir à l'intérieur.
16. Bravo! Le serveur Windows peut désormais être ajouté à la configuration de Nagios…
Configuration de Nagios
Il est temps maintenant de définir quelques définitions d'objets dans vos fichiers de configuration Nagios pour
pouvoir superviser la nouvelle machine Windows.
Ajouter une nouvelle définition d'hôte pour la machine Windows que vous souhaitez superviser. Si c'est la
*première* que vous supervisez, vous pouvez simplement modifier l'exemple de définition d'hôte
dans windows.cfg. Remplacez les champs host_name, alias, et address par les valeurs appropriées
pour votre machine Windows.
define host {
use windows-server ; Inherit default values from a Windows
server template (make sure you keep this line!)
host_name winserver
alias My Windows Server
address 192.168.1.2
}
Bien. Maintenant vous pouvez ajouter quelques définitions de services (dans le même fichier de configuration)
pour indiquer à Nagios de superviser différents aspects de la machine Windows. Si c'est votre *première*
machine Windows, vous pouvez simplement modifier les définitions exemples de services
dans windows.cfg.
Remplacez winserver dans les définitions d'exemples ci-dessous par le nom que vous avez précisé dans le
paramètre de la définition de l'hôte que vous venez d'ajouter.
Ajoutez la définition de service suivante pour contrôler la version du addon NSClient++ tournant sur le serveur
Windows. Cela devient utile quand il s'agit de mettre à jour des serveurs Windows vers une nouvelle version du
addon, en vous permettant de déterminer quelles sont les machines Windows nécessitant une mise à jour vers
la dernière version de NSClient++.
define service {
use generic-service
host_name winserver
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
Ajoutez la définition de service suivante pour superviser le temps écoulé depuis le dernier re/démarrage du
serveur Windows.
define service {
use generic-service
host_name winserver
service_description Uptime
check_command check_nt!UPTIME
}
Ajoutez la définition de service suivante pour superviser la charge CPU du serveur Windows et générer une
alerte CRITICAL si la charge CPU des 5 dernières minutes est égale à 90% ou plus ou une alerte WARNING si la
charge CPU des 5 dernières minutes est égale à 80% ou plus.
define service {
use generic-service
host_name winserver
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
Ajoutez la définition de service suivante pour superviser l'utilisation de la mémoire du serveur Windows et
générer une alerte CRITICAL si l'utilisation de la mémoire est égale à 90% ou plus ou une alerte WARNING si
l'utilisation de la mémoire est égale à 80% ou plus.
define service {
use generic-service
host_name winserver
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
Ajoutez la définition de service suivante pour superviser l'espace utilisé du disque C:\ du serveur Windows et
générer une alerte CRITICAL si l'espace utilisé du disque est égale à 90% ou plus ou une alerte WARNING si
l'espace utilisé du disque est égale à 80% ou plus.
define service {
use generic-service
host_name winserver
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
Ajoutez la définition de service suivante pour superviser l'état du service W3SVC et générer une alerte
CRITICAL si ce service est arrêté.
define service {
use generic-service
host_name winserver
service_description W3SVC
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}
Ajoutez la définition de service suivante pour superviser l'état du processus Explorer.exe et générer une alerte
CRITICAL si ce processus ne tourne pas.
define service {
use generic-service
host_name winserver
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}
Voilà pour le moment. Vous avez ajouté des services simples qui devraient être supervisés sur les machines
Windows. Enregistrez le fichier de configuration.
#vi /usr/local/nagios/etc/commands.cfg
Modifiez la définition de la commande check_nt pour inclure l'argument -s <PASSWORD> (où PASSWORD est
le mot de passe précisé sur la machine Windows) comme suit:
define command {
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v
$ARG1$ $ARG2$
}
Redémarrage de Nagios
Vous en avez terminé avec la configuration de Nagios, et vous allez devoir vérifier les fichiers de
configuration et redémarrer Nagios .
Si le processus de vérification produit n'importe quel message d'erreur, réglez d'abord vos problèmes de
configuration avant de continuer. Assurez-vous de ne pas redémarrer Nagios avant que le processus de
vérification ne se déroule sans erreur!
o Introduction
o Vue globale
Ce document décrit la façon dont vous pouvez superviser les attributs et services privésde serveurs Linux/UNIX
comme:
o Charge CPU
o Memory usage
o Utilisation disque
o Utilisateurs connectés
o Processus en cours d'exécution
o etc.
Introduction
Les services rendus publics qui sont fournis par des serveurs Linux (HTTP, FTP, SSH, SMTP, etc.) peuvent
être supervisés de façon simple en suivant la documentation sur la Supervision des services publiquement
disponibles.
Ces instructions impliquent que vous ayez installé Nagios comme précisé dans le guide rapide. Les exemples de
configuration ci-dessous font référence aux objets de configuration définis dans les fichiers d'exemples
(commands.cfg, templates.cfg, etc.) qui ont été installés si vous avez suivi le guide rapide.
Vue globale
[Ce document n'a pas été terminé. Je vous recommande de lire la documentation sur le addon NRPE pour les
instructions sur la façon de superviser des serveurs distants Linux/Unix.]
Il y a plusieurs façons de superviser les attributs ou des serveurs distants Linux/Unix. Une est d'utiliser des clés
partagées SSH et le plugin check_by_ssh pour exécuter de splugins sur les serveurs distants. Cette méthode
n'est pas abordée ici, mais peut amener une grande charge sur le serveur de supervision si vous superviser des
centaines ou milliers de services. La charge de travail supplémentaire pour créer/détruire les
connexions SSH est la cause de ceci.
Une autre façon commune de superviser des hôtes distants Linux/Unix est d'utiliser l'addon NRPE. NRPE vous
permet d'exécuter des plugins sur les hôtes distants Linux/Unix. C'est utile si vous devez superviser les
attributs/ressources locaux comme l'utilisation disque, la charge CPU, l'utilisation mémoire, etc. sur une hôte
distant.
o Introduction
o Vue globale
o Étapes
o Pré-requis
o Configuration de Nagios
o Redémarrage de Nagios
Ce document décrit la façon de superviser l'état d'imprimantes réseaux. Plus particulièrement, les
imprimantes HP™ qui ont une carte interne/externe JetDirect®, ou toute autres imprimantes (comme
la Troy™ PocketPro 100S® ou la Netgear™ PS101®) supportant le protocole JetDirect.
Introduction
Le plugin check_hpjd (qui fait partie de la distribution des plugins standards Nagios) vous permettent de
superviser l'état de toutes imprimantes compatibles JetDirect avec SNMP activé. Le plugin est capable de
détecter les états suivants de l'imprimante:
o Bourrage papier
o Plus de papier
o Imprimante hors ligne
o Intervention requise
o Toner presque vide
o Mémoire insuffisante
o Porte ouverte
o Le plateau de sortie papier est plein
o Et bien d'autres…
Ces instructions impliquent que vous ayez installé Nagios comme précisé dans le guide rapide. Les exemples de
configuration ci-dessous font référence aux objets de configuration définis dans les fichiers d'exemples
(commands.cfg, templates.cfg, etc.) qui ont été installés si vous avez suivi le guide rapide.
Vue globale
Superviser l'état d'une imprimante réseau est simple. Les imprimantes compatibles JetDirect ont en
général SNMP activé, ce qui permet à Nagios de les superviser en utilisant le plugin check_hpjd.
Le plugin check_hpjd sera compilé et installé seulement si vous avez les paquets net-snmp et net-snmp-
utils installés sur votre système. Assurez-vous que le plugin soit présent
dans /usr/local/nagios/libexec avant de continuer. Si ce n'est pas le cas, installez net-snmp, net-
snmp-utils et recompilez/réinstallez les plugins Nagios.
Étapes
Il y a plusieurs étapes à suivre pour pouvoir superviser une nouvelle imprimante réseau. Les
voici:
o Une définition de commande check_hpjd a déjà été créé dans le fichier commands.cfg. Cela
permet d'utiliser le plugin check_hpjd pour superviser des imprimantes réseaux.
o Un gabarit d'hôte de type imprimante (nommé generic-printer) a déjà été créé dans le
fichier templates.cfg. Cela vous permet de rajouter des définitions d'hôtes de type imprimante
de façon simple.
Pré-requis
La première fois que vous configurez Nagios pour superviser une imprimante réseau, vous
avez un peu plus de travail à faire. Souvenez-vous, vous n'avez à le faire que pour la
*première* imprimante à superviser.
#vi /usr/local/nagios/etc/nagios.cfg
Supprimez le caractère (#) du début de la ligne suivante du fichier de configuration principal :
#cfg_file=/usr/local/nagios/etc/objects/printer.cfg
Configuration de Nagios
Vous allez devoir créer quelques définitions d'objets pour pouvoir superviser une nouvelle imprimante.
# vi /usr/local/nagios/etc/objects/printer.cfg
Ajouter une nouvelle définition d'hôte pour l'imprimante réseau que vous souhaitez superviser. Si c'est la
*première* que vous supervisez, vous pouvez simplement modifier l'exemple de définition d'hôte
dans printer.cfg. Remplacez les champs host_name, alias, et address par les valeurs appropriées
pour votre imprimante.
define host {
use generic-printer ; Inherit default values from a template
host_name hplj2605dn ; The name we're giving to this printer
alias HP LaserJet 2605dn ; A longer name associated with the
printer
address 192.168.1.30 ; IP address of the printer
hostgroups allhosts ; Host groups this printer is associated with
}
Vous pouvez ajouter maintenant quelques définitions de services (dans le même fichier de configuration) pour
superviser différents aspects de votre imprimante. Si c'est la *première* imprimante que vous supervisez, vous
pouvez simplement modifier l'exemple de définition d'hôte dans printer.cfg.
Remplacez hplj2605dn dans les exemples de définitions ci-dessous par le nom que vous avez renseigné dans
le paramètre host_name que vous venez d'ajouter dans la définition d'hôte.
Ajoutez cette définition de service pour pouvoir superviser l'état de l'imprimante. Le service utilise le
plugin check_hpjdpour vérifier l'état de l'imprimante toutes les 10 minutes par défaut. La
communauté SNMP utilisée dans cet exemple pour interroger l'imprimante est public.
define service {
use generic-service ; Inherit values from a
template
host_name hplj2605dn ; The name of the host the
service is associated with
service_description Printer Status ; The service description
check_command check_hpjd!-C public ; The command used to
monitor the service
normal_check_interval 10 ; Check the service every 10 minutes under
normal conditions
retry_check_interval 1 ; Re-check the service every minute until its
final/hard state is determined
}
Ajoutez la définition de service suivante pour pinger l'imprimante toutes les 10 minutes par défaut. C'est utile
pour superviser le RTA, les paquets perdus et la connectivité réseau.
define service {
use generic-service
host_name hplj2605dn
service_description PING
check_command check_ping!3000.0,80%!5000.0,100%
normal_check_interva 10
retry_check_interval 1
}
Enregistrez le fichier.
Redémarrage de Nagios
Une fois que vous avez ajouté les définitions d'hôte et de service au fichier printer.cfg, vous êtes prêt à
commencer la supervision de l'imprimante. Pour cela, vous aurez besoin de vérifier votre configuration et
de redémarrer Nagios.
Si le processus de vérification produit n'importe quel message d'erreur, réglez d'abord vos problèmes de
configuration avant de continuer. Assurez-vous de ne pas redémarrer Nagios avant que le processus de
vérification ne se déroule sans erreur!
Chapitre 14. Supervision des routeurs et des switchs.
Table des matières
o Introduction
o Vue globale
o Étapes
o Pré-requis
o Configuration de Nagios
o Redémarrage de Nagios
Ce document décrit la façon dont vous pouvez superviser des routeurs et switchs réseaux. Quelques switchs et
hubs bon marché non manageables n'ont pas d'adresse IP et sont invisibles sur votre réseau, il n'y a donc aucun
moyen de les superviser. Les routeurs et switchs plus chers ont une adresse assignée et peuvent donc être
supervisés en les pingant ou en utilisant SNMP pour interroger les informations de statut.
Introduction
Je vais décrire la façon dont vous pouvez superviser les choses suivantes sur vos switchs, hubs et routeurs:
Vue globale
La supervision des switchs et routeurs peut au choix être simple ou plus évoluée suivant le type d'équipements
que vous souhaitez superviser. Dans le cas où ce sont des composants critiques de votre infrastrcuture, vous
voudrez sans aucun doute les superviser d'une façon au moins basique.
Les switchs et les routeurs peuvent facilement être supervisés en les pingant pour déterminer le nombre de
paquets perdus, RTA, etc. Si votre switch supporte SNMP, vous pouvez superviser l'état des ports, etc. avec le
plugin check_snmpet la bande passante avec check_mrtgtraf plugin (si vous utilisez MRTG).
Le plugin check_snmp sera compilé et installé seulement si vous avez les paquets net-snmp et net-snmp-
utils installés sur votre système. Assurez-vous que le plugin soit présent
dans /usr/local/nagios/libexec avant de continuer. Si ce n'est pas le cas, installez net-snmp, net-
snmp-utils et recompilez/réinstallez les plugins Nagios.
Étapes
Il y a plusieurs étapes à suivre pour pouvoir superviser un nouveau routeur ou switch. Les
voici:
o Un gabarit d'hôte de type switch (nommé generic-switch) a déjà été créé dans le
fichier templates.cfg. Cela vous permet de rajouter des définitions d'hôtes de type
routeur/switch de façon simple.
Pré-requis
La première fois que vous configurez Nagios pour superviser un switch réseau, vous avez un
peu plus de travail à faire. Souvenez-vous, vous n'avez à le faire que pour le *premier* switch
à superviser.
#vi /usr/local/nagios/etc/nagios.cfg
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg
Enregistrez le fichier et quittez.
Configuration de Nagios
Vous allez devoir créer quelques définitions d'objets pour pouvoir superviser un nouveau routeur/switch.
#vi /usr/local/nagios/etc/objects/switch.cfg
Ajouter une nouvelle définition d'hôte pour le switch que vous souhaitez superviser. Si c'est le *premier* que
vous supervisez, vous pouvez simplement modifier l'exemple de définition d'hôte dans switch.cfg.
Remplacez les champs host_name, alias, et address par les valeurs appropriées pour votre switch.
define host {
use generic-switch ; Inherit default values from a template
host_name linksys-srw224p ; The name we're giving to this switch
alias Linksys SRW224P Switch ; A longer name associated with the
switch
address 192.168.1.253 ; IP address of the switch
hostgroups allhosts,switches ; Host groups this switch is associated
with
}
Remplacez linksys-srw224p dans les exemples de définitions ci-dessous par le nom que vous avez
renseigné dans le paramètre host_name que vous venez d'ajouter dans la définition d'hôte.
define service {
use generic-service
host_name linksys-srw224p
service_description PING
check_command check_ping!200.0,20%!600.0,60%
normal_check_interval 5
retry_check_interval 1
}
La description du service
Recontrôle le service toutes les minutes jusqu'à ce que son état final/hard soit déterminé
Le service sera:
o CRITICAL si le temps de réponse moyen (RTA) est plus élevé que 600 millisecondes ou que le nombre
de paquets perdus est égal ou supérieur à 60%
o WARNING si le RTA est supérieur à 200 ms ou que le nombre de paquets perdus est égal ou supérieur à
20%
o OK si le RTA est inférieur à 200 ms et que le nombre de paquets perdus est inférieur à 20%
Supervision de l'information d'état SNMP
Si votre switch ou routeur supporte SNMP, vous pouvez superviser un tas d'information en utilisant le
plugin check_snmp. Sinon, sautez cette section.
Ajoutez la définition de service suivante pour superviser le temps écoulé depuis la mise sous tension de votre
switch.
define service {
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Uptime
check_command check_snmp!-C public -o sysUpTime.0
}
Si vous souhaitez vous assurer qu'un port/interface particulier du switch est dans un état up, vous pouvez
ajouter une définition de service comme celle-ci:
define service {
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Port 1 Link Status
check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m
RFC1213-MIB
}
Dans l'exemple ci-dessus, -o ifOperStatus.1 fait référence à OID pour l'état opérationnel du port 1 sur le
switch.
L'option -r 1 indique au plugin check_snmp de retourner un état OK si 1 est trouvé dans la réponse SNMP (1
indique que le port est up) et CRITICAL sinon.
L'option -m RFC1213-MIB est optionnel et indique la MIB à utiliser parmi celles installées sur votre système
et peut aider à accélérer les choses.
Voilà pour l'exemple de supervision avec SNMP. Il y a des millions de choses qui peuvent être supervisées
par SNMP, aussi est-ce à vous décider ce que dont vous avez besoin et ce que vous souhaitez superviser. Bonne
chance!
Vous pouvez trouver les OIDs qui peuvent supervisés sur un switch en exécutant la commande suivante
(remplacez 192.168.1.253 par l'adresse IP de votre switch): snmpwalk -v1 -c public 192.168.1.253 -m
ALL .1
Vous aurez besoin que le plugin check_mrtgtraf connaisse l'emplacement du fichier où MRTG stocke ses
données, ainsi que les seuils, etc. Dans mon exemple, je supervise un des ports d'un switch Linksys. Le fichier
de log de MRTG est stocké dans /var/lib/mrtg/192.168.1.253_1.log. Voici la définition de service
que j'utilise pour superviser les données de bande passante stockées dans ce fichier…
define service {
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Port 1 Bandwidth Usage
check_command
check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!
5000000,5000000!10
}
L'option AVG indique qu'il doit utiliser des statistiques basées sur la moyene de la bande passante. Les
arguments 1000000,2000000 sont les seuils de warning (en bytes) pour le taux de trafic entrant.
Les arguments 5000000,5000000 sont des seuils critiques (en bytes) pour le taux de trafic sortant.
L' 10 option indique au plugin de renvoyer un état CRITICAL si le fichier de log MRTG est plus vieux que 10
minutes (il devrait être mis à jour toutes les 5 minutes).
Enregistrez le fichier.
Redémarrage de Nagios
Une fois que vous avez ajouté les nouvelles définitions d'hôte et de service dans le fichier switch.cfg, vous
êtes prêt à démarrer la supervision d'un routeur/switch. Pour cela, vous aurez besoin de vérifier votre
configuration et redémarrez Nagios.
Si le processus de vérification produit n'importe quel message d'erreur, réglez d'abord vos problèmes de
configuration avant de continuer. Assurez-vous de ne pas redémarrer Nagios avant que le processus de
vérification ne se déroule sans erreur!
o Introduction
o Supervision HTTP
o Supervision FTP
o Supervision SSH
o Supervision SMTP
o Supervision POP3
o Supervision IMAP
o Redémarrage de Nagios
Ce document décrit la façon de superviser des services, applications et protocoles rendus disponibles
publiquement. Par public j'entends les services qui sont accessibles à travers le réseau - que ce soit votre
réseau local ou plus grand avec Internet. Les exemples de ce type de services
incluent HTTP, POP3, IMAP, FTP, and SSH. Il y a beaucoup plus de services publics que ce que vous utilisez
probablement au quotidien. Ces services et applications, ainsi que les protocoles sous-jacents, peuvent en
général être supervisés avec Nagios sans nécessiter d'accès spéciaux.
Introduction
Les services privés, à l'opposé, ne peuvent pas être supervisés par Nagios sans agent intermédiaire de quelque
type. Les exemples de services privés associés à des hôtes sont des choses comme la charge CPU, l'utilisation
mémoire, l'utilisation du disque, le nombre d'utilisateurs connectés, des informations sur les processus, etc.
Ces services privés ou attributs d'hôtes ne sont en général pas exposés à un client externe. Cette situation
requiert qu'un agent intermédiaire de supervision soit installé sur chacun des hôtes dont vous avez besoin de
superviser ce type d'informations. Plus d'information sur la supervision des services privés attachés à des hôtes
de différents types peut être trouvée dans la documentation à:
Vous trouverez occasionnellement que cette information sur les services et applications privés peut être
supervisée avec SNMP. L'agent SNMP vous permet de superviser à distance l'information d'hôte normalement
privée (et inaccessible). Jetez un œil sur la documentation Supervision des routeurs/switchs pour avoir plus
d'information sur la façon de superviser des services avec le protocole SNMP.
Ces instructions impliquent que vous ayez installé Nagios comme précisé dans le guide rapide. Les exemples de
configuration ci-dessous font référence aux objets de configuration définis dans les fichiers d'exemples
(commands.cfg, templates.cfg, etc.) qui ont été installés si vous avez suivi le guide rapide.
Si vous ne parvenez pas à trouver un plugin approprié pour superviser ce dont vous avez besoin, vous pouvez
toujours écrire le vôtre. Les plugins sont faciles à écrire, ne vous laissez donc pas effrayer par cette idée. Lisez
la documentation sur le développement de plugins pour plus d'informations.
Je vais passer en revue la supervision de services basiques que vous aurez probablement à faire tôt au tard.
Chacun de ces services peut être supervisé en utilisant un des plugins compris dans la ditribution Nagios.
Allons-y…
Pour cet exemple, disons que vous souhaitez superviser une variété de services sur un hôte distant. Appelons
cet hôte remotehost. La définition de l'hôte peut être mise dans son propre fichier de configuration ou ajoutée
à un existant. Voilà à quoi pourrait ressembler la définition de l'hôte remotehost:
define host {
use generic-host ; Inherit default values from a template
host_name remotehost ; The name we're giving to this host
alias Some Remote Host ; A longer name associated with the host
address 192.168.1.50 ; IP address of the host
hostgroups allhosts ; Host groups this host is associated
with
}
Maintenant qu'une définition d'hôte a été ajoutée pour l'hôte à superviser, nous pouvons commencer à définir
les services qui doivent être contrôlés. Comme pour la définition de l'hôte, les définitions de services peuvent
être mises dans n'importe quel fichier de configuration.
Quelques exemples de définitions de services pour superviser des services publics communs ( HTTP, FTP, etc.)
sont donnés ci-dessous.
Supervision HTTP
Il y a de bonnes chances que vous ayez envie de superviser des serveurs web - que ce soit le vôtre ou celui de
quelqu'un d'autre. Le plugin check_http est juste fait pour ça. Il fonctionne avec le protocole HTTP et peut
superviser un temps de réponse, des codes d'erreurs, des chaînes de caractères dans la réponse HTML, des
certificats de serveurs, et beaucoup plus encore.
Le fichier commands.cfg contient une définition de commande pour utiliser le plugin check_http. Il
ressemble à ceci:
define command {
name check_http
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}
Une définition simple de service pour superviser un service HTTP sur la machine remotehost pourrait
ressembler à ceci:
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description HTTP
check_command check_http
}
Cette simple définition de service va superviser le service HTTP fonctionnant sur remotehost. Ce service
génèrera des alertes si le sereur web ne répond pas dans les 10 secondes ou si la réponse contient un code
d'erreur HTTP (403, 404, etc.). C'est tout ce dont vous avez besoin pour une supervision basique. Plutôt
simple, non ?
Pour des possibilités plus avancées de supervision, utilisez le plugin check_http manuellement avec --
help comme argument de la ligne de commande pour voir toutes les options que peut vous fournir ce plugin.
Cette syntaxe --help fonctionne avec tous les plugins couverts par cette documentation.
Une définition plus avancée pour superviser le service HTTP est donnée ci-dessous. Cette définition de service
va vérifier que l'adresse URI /download/index.php contient la chaîne de caractères latest-version.tar.gz.
Une erreur sera produite si la chaîne n'est pas trouvée, si l'URI n'est pas valable, ou si le serveur web met plus
de 5 secondes à répondre.
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description Product Download Link
check_command check_http!-u /download/index.php -t 5 -s "latest-
version.tar.gz"
}
Supervision FTP
Quand vous avez besoin de superviser des serveurs FTP, vous pouvez utiliser le plugin check_ftp. Le
fichier commands.cfg une définition de commande pour utiliser le plugin check_ftp qui ressemble à ceci:
define command {
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}
Une définition simple de service pour superviser un serveur FTP sur remotehost devrait ressembler à ceci:
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description FTP
check_command check_ftp
}
Cette définition de service va superviser le service FTP et générer des alertes si le serveur FTP ne répond pas
dans les 10 secondes.
Une définition de service plus avancée est donnée ci-dessous. Ce service va vérifier le serveur FTP en écoute
sur le port 1023 de remotehost. Une alerte sera émise si le serveur ne répond pas dans les 5 secondes ou si la
réponse que fait le serveur ne contient pas la chaîne de caractère Pure-FTPd [TLS].
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description Special FTP
check_command check_ftp!-p 1023 -t 5 -e "Pure-FTPd [TLS]"
}
Supervision SSH
Quand vous avez besoin de superviser des serveurs SSH, vous pouvez utiliser le plugin check_ssh. Le
fichier commands.cfg contient une définition de commande pour utiliser le plugin check_ssh qui
ressemble à ceci:
define command {
command_name check_ssh
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}
Une définition simple de service pour superviser un serveur SSH sur remotehost devrait ressembler à ceci:
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description SSH
check_command check_ssh
}
Cette définition de service va superviser le service SSH et générer des alertes si le serveur ne répond pas dans
les 10 secondes.
Une définition de service plus avancée est donnée ci-dessous. Ce service va vérifier le serveur SSH et générer
une alerte si le serveur ne répond pas dans les 5 secondes ou si le numéro de version ne correspond pas
à OpenSSH_4.2.
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description SSH Version Check
check_command check_ssh!-t 5 -r "OpenSSH_4.2"
}
Supervision SMTP
Le plugin check_smtp peut être utilisé pour superviser vos serveurs de messagerie. Le
fichier commands.cfg une définition de commande pour utiliser le plugin check_smtp qui ressemble à
ceci:
define command {
command_name check_smtp
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}
Une définition simple de service pour superviser un serveur SMTP sur remotehost devrait ressembler à ceci:
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description SMTP
check_command check_smtp
}
Cette définition de service va superviser le service SMTP et générer des alertes si le serveur SMTP ne répond
pas dans les 10 secondes.
Une définition de service plus avancée est donnée ci-dessous. Ce service va vérifier le serveur SMTP et générer
une alerte si le serveur ne répond pas dans les 5 secondes ou si la réponse du serveur ne contient pas la chaîne
de caractères mygreatmailserver.com.
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description SMTP Response Check
check_command check_smtp!-t 5 -e "mygreatmailserver.com"
}
Supervision POP3
Le plugin check_pop peut être utilisé pour superviser le service POP3 de vos serveurs de messagerie. Le
fichier commands.cfg une définition de commande pour utiliser le plugin check_pop qui ressemble à ceci:
define command {
command_name check_pop
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
}
Une définition simple de service pour superviser un serveur POP3 sur remotehost devrait ressembler à ceci:
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description POP3
check_command check_pop
}
Cette définition de service va superviser le service POP3 et générer des alertes si le serveur POP3 ne répond
pas dans les 10 secondes.
Une définition de service plus avancée est donnée ci-dessous. Ce service va vérifier le serveur POP3 et générer
une alerte si le serveur ne répond pas dans les 5 secondes ou si la réponse du serveur ne contient pas la chaîne
de caractères mygreatmailserver.com.
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description POP3 Response Check
check_command check_pop!-t 5 -e "mygreatmailserver.com"
}
Supervision IMAP
Le plugin check_imap peut être utilisé pour superviser le service IMAP4 sur vos serveurs de messagerie. Le
fichier commands.cfg une définition de commande pour utiliser le plugin check_imap qui ressemble à
ceci:
define command {
command_name check_imap
command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
}
Une définition simple de service pour superviser un serveur IMAP4 sur remotehost devrait ressembler à ceci:
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description IMAP
check_command check_imap
}
Cette définition de service va superviser le service IMAP4 et générer des alertes si le serveur IMAP ne répond
pas dans les 10 secondes.
Une définition de service plus avancée est donnée ci-dessous. Ce service va vérifier le service IMAP4 et
générer une alerte si le serveur ne répond pas dans les 5 secondes ou si la réponse du serveur ne contient pas
la chaîne de caractères mygreatmailserver.com.
define service {
use generic-service ; Inherit default values from a
template
host_name remotehost
service_description IMAP4 Response Check
check_command check_imap!-t 5 -e "mygreatmailserver.com"
}
Redémarrage de Nagios
Une fois que vous avez ajouté les définitions du nouvel hôte et du service à vos fichiers de configuration
d'objets, vous êtes prêt à démarrer la supervision de ceux-ci. Pour cela, vous devez vérifier votre
configuration et redémarrer Nagios.
Si le processus de vérification produit n'importe quel message d'erreur, réglez d'abord vos problèmes de
configuration avant de continuer. Assurez-vous de ne pas redémarrer Nagios avant que le processus de
vérification ne se déroule sans erreur!
o Introduction
Introduction
Il va falloir créer et éditer plusieurs fichiers de configuration avant de pouvoir surveiller quoique ce soit. Soyez
patient! La configuration de Nagios peut prendre du temps, surtout si vous êtes nouvel utilisateur. Quand vous
aurez compris comment fonctionne les choses, vous ne regretterez pas le temps passé. :-)
Les fichiers des ressources sont utilisés pour stocker les macros définies par les utilisateurs. L'avantage de ces
fichiers est de pouvoir y mettre des données sensibles de configuration (comme des mots de passe) qui ne
seront pas accessibles à travers les CGIs.
Vous pouvez définir un ou plusieurs fichiers de définitions des objets avec les
paramètres cfg_file et/ou cfg_dir dans le fichier de configuration principal.
Une introduction aux définitions d'objets et à la façon dont ils sont en relation les uns les autres peut être
consultée ici.
o Exemple de configuration
o Utilisation de l'authentification
o Alertes sonores
o Syntaxe Ping
o URL Splunk
Lors de la création et/ou l'édition des fichiers de configuration, gardez ce qui suit à l'esprit:
o Les lignes commençant par le caractère '#' sont considérées comme des commentaires et ne sont donc
pas traitées
o Les noms des variables doivent commencer au début de la ligne - ne mettez pas d'espace avant le nom
o Les noms des variables respectent la casse (majuscule/minuscule)
Exemple de configuration
Un exemple de fichier de configuration pour les CGIs (/usr/local/nagios/etc/cgi.cfg) est créé pour
vous quand vous suivez le guide rapide d'installation .
o Utilisation de l'authentification
o Alertes sonores
o Syntaxe Ping
o URL Splunk
Ci-dessous, vous trouverez les descriptions de chaque option de configuration du fichier principal de Nagios…
Exemple: main_config_file=/usr/local/nagios/etc/nagios.cfg
Cette option détermine le chemin d'accès à votre fichier de configuration principal .Les CGIs doivent savoir où
trouver ce fichier pour récupérer les informations de configuration, l'état courant des hôtes et des services,
etc.
Exemple: physical_html_path=/usr/local/nagios/share
C'est le chemin du répertoire physique de votre serveur où sont stockés les fichiers HTML de Nagios. Nagios
suppose que la documentation et les images (utilisées par les CGIs) sont stockées dans des sous-répertoires
nommés respectivement docs/ et images/.
Exemple: url_html_path=/nagios
Si, lors de l'accès à Nagios via un navigateur web, vous pointez sur une URL du
type http://www.myhost.com/nagios, cette variable doit avoir pour valeur /nagios. En fait, il s'agit
de la partie contenant le chemin d'accès aux pages HTML de Nagios dans l'URL utilisée pour accéder aux pages
HTML de Nagios.
Utilisation de l'authentification
Format: use_authentication=<0/1>
Exemple: use_authentication=1
Cette option détermine si les CGIs utiliseront l'authentification et les autorisations pour déterminer les
informations et les commandes auxquelles les utilisateurs auront accès. Je vous recommande vivement
d'utiliser l'authentification dans les CGIs. Si vous choisissez de ne pas le faire, assurez-vous de supprimer le CGI
de commande pour empêcher les utilisateurs non autorisés d'envoyer des commandes à Nagios. Ce CGI ne
devrait pas envoyer de commandes à Nagios si l'authentification est désactivée, mais deux précautions valent
mieux qu'une. Vous trouverez plus d'informations sur la façon de configurer l'authentification et les
autorisations dans les CGIs ici.
Exemple: default_user_name=guest
Cette variable définit un nom d'utilisateur par défaut pour accéder aux CGIs. Ainsi les utilisateurs d'un domaine
sécurisé (i.e., derrière un firewall) peuvent accéder aux CGIs sans avoir à s'authentifier auprès du serveur web.
Vous pouvez choisir cette fonctionnalité pour éviter le recours à l'authentification de base si vous n'utilisez pas
un serveur web sécurisé, car l'authentification de base transmet les mots de passe en clair sur Internet.
Ne définissez pas un utilisateur par défaut à moins que vous n'utilisiez un serveur web sécurisé et que vous
soyez sûr que tous ceux qui ont accès aux CGIs ont été authentifiés d'une manière ou d'une autre ! Si vous
définissez cette variable, ceux qui ne se sont pas authentifiés auprès du serveur web hériteront de tous les
droits que vous donnez à cet utilisateur !
Exemple: authorized_for_system_information=nagiosadmin,theboss
C'est une liste de noms d'utilisateurs authentifiés, séparés par des virgules, qui peuvent voir les informations
sur le système et le processus dans les CGIs d'informations complémentaires. Les utilisateurs de cette liste ne
sont pas automatiquement autorisés à passer des commandes système/processus. Si vous voulez que des
utilisateurs puissent aussi passer ces commandes, il faut les ajouter à la
variable authorized_for_system_commands. Vous trouverez plus d'informations sur la façon de configurer
l'authentification et les autorisations des CGIs ici.
Exemple: authorized_for_system_commands=nagiosadmin
C'est une liste de nom d'utilisateurs authentifiés, séparés par des virgules, qui peuvent passer des commandes
système/processus via le CGI de commande. Les utilisateurs de cette liste ne sont pas automatiquement
autorisés à visualiser les informations sur le système et le processus. Si vous voulez que des utilisateurs
puissent visualiser ces informations aussi, il faut les ajouter à la variable authorized_for_system_information.
Vous trouverez plus d'informations sur la façon de configurer l'authentification et les autorisations des CGI ici.
Exemple: authorized_for_configuration_information=nagiosadmin
C'est une liste de noms d'utilisateurs authentifiés, séparés par des virgules, qui peuvent voir les informations
liées à la configuration via le CGI de configuration. Les utilisateurs de cette liste peuvent voir les informations
sur tous les hôtes configurés, les groupes d'hôtes, les services, les contacts, les groupes de contacts, les
périodes, et les commandes. Vous trouverez plus d'informations sur la façon de configurer l'authentification et
les autorisations dans les CGI ici.
Exemple: authorized_for_all_hosts=nagiosadmin,theboss
C'est une liste de noms d'utilisateurs authentifiés, séparés par des virgules, qui peuvent voir l'état et la
configuration de tous les hôtes. Les utilisateurs de cette liste sont également automatiquement autorisés à voir
les informations de tous les services. Les utilisateurs de cette liste ne sont pas automatiquement autorisés à
envoyer des commandes aux hôtes ou aux services. Si vous voulez que des utilisateurs puissent aussi envoyer
des commandes, il faut les ajouter à la variableauthorized_for_all_host_commands. Vous trouverez plus
d'informations sur la façon de configurer l'authentification et les autorisations des CGIs ici.
Exemple: authorized_for_all_host_commands=nagiosadmin
C'est une liste de noms d'utilisateurs authentifiés, séparés par des virgules, qui peuvent envoyer des
commandes à tous les hôtes via le CGI de commande. Les utilisateurs de cette liste sont également
automatiquement autorisés à envoyer des commandes à tous les services. Les utilisateurs de cette liste ne sont
pas automatiquement autorisés à voir l'état ou la configuration de tous les hôtes ou services. Si vous voulez que
des utilisateurs puissent voir ces informations aussi, il faut les ajouter à la variable authorized_for_all_hosts.
Vous trouverez plus d'informations sur la façon de configurer l'authentification et les autorisations des CGIs ici.
Accès global aux informations sur les services
Format: authorized_for_all_services=<user1>,<user2>,…<usern>
Exemple: authorized_for_all_services=nagiosadmin,theboss
C'est une liste de noms d'utilisateurs authentifiés, séparés par des virgules, qui peuvent voir l'état et la
configuration de tous les services. Les utilisateurs de cette liste ne sont pas automatiquement autorisés à voir
les informations de tous les hôtes. Les utilisateurs de cette liste ne sont pas automatiquement autorisés à
envoyer des commandes à tous les services. Si vous voulez que des utilisateurs puissent aussi envoyer des
commandes, il faut les ajouter à la variableauthorized_for_all_service_commands. Vous trouverez plus
d'informations sur la façon de configurer l'authentification et les autorisations des CGIs ici.
Exemple: authorized_for_all_service_commands=nagiosadmin
C'est une liste de noms d'utilisateurs authentifiés, séparés par des virgules, qui peuvent envoyer des
commandes à tous les services via le CGI de commande. Ils ne sont pas non plus automatiquement autorisés à
envoyer des commandes aux hôtes. Les utilisateurs de cette liste ne sont pas automatiquement autorisés à voir
l'état ou la configuration de tous les services. Si vous voulez que des utilisateurs puissent aussi voir ces
informations, il faut les ajouter à la variable authorized_for_all_services. Vous trouverez plus d'informations
sur la façon de configurer l'authentification et les autorisations des CGIs ici.
Exemple: lock_author_names=1
Cette option vous autorise à restreindre le fait que les utilisateurs puissent changer le nom de l'auteur quand
ils soumettent des commentaires, des acquittements, et une période de maintenance planifiée depuis
l'interface web. Quand cette option est activée, les utilisateurs peuvent changer le nom de l'auteur associé à la
requête.
o 0 = Autorise les utilisateurs à changer les noms d'auteur quand ils soumettent des commandes
o 1 = Empêche les utilisateurs de changer les noms d'auteur quand ils soumettent des commandes
(défaut)
Image de fond du CGI de cartographie des états (Statusmap)
Format: statusmap_background_image=<image_file>
Exemple: statusmap_background_image=smbackground.gd2
Cette option permet de spécifier une image qui sera utilisée comme fond d'image dans le CGI de cartographie
des états si vous utilisez la méthode de dessin des coordonnées définies par l'utilisateur. L'image de fond n'est
disponible dans aucune autre méthode. Il est supposé que l'image est située dans le chemin des images HTML (
c.a.d /usr/local/nagios/share/images). Ce chemin est automatiquement déterminé en
ajoutant /images au chemin défini dans le paramètre physical_html_path.
Cette image peut être au format GIF, JPEG, PNG, ou GD2. Cependant, le format GD2 (de préférence en format
non compressé) est recommandé, en raison de la faible charge CPUrequise quand le CGI génère l'image.
Exemple: default_statusmap_layout=4
Cette option définit la méthode de dessin utilisée par défaut par le CGI de cartographie des états .Les valeurs
autorisées sont:
1 Couches imbriquées
2 Arbre réduit
3 Arbre équilibré
4 Circulaire
Exemple: statuswrl_include=myworld.wrl
Cette option permet d'inclure ses propres objets dans le monde VRML généré. Elle suppose que le fichier est
situé dans le chemin défini par le paramètre physical_html_path.
Ce fichier doit être un monde VRML valide (c.a.d que vous devez pouvoir le visualiser avec un navigateur VRML)
Exemple: default_statuswrl_layout=4
Cette option définit la méthode utilisée par défaut pour dessiner le monde VRML avec le CGI concerné
(Statusvrml) .Les options autorisées sont:
Valeur <layout_number> Méthode de dessin
2 Arbre réduit
3 Arbre équilibré
4 Circulaire
Exemple: refresh_rate=90
Cette option vous permet de spécifier le délai en secondes entre deux rafraîchissements de page dans les CGI
d'état, de cartographie des états, et d'informations complémentaires .
Alertes sonores
Formats: host_unreachable_sound=<sound_file> host_down_sound=<sound_file>service_criti
Cette option vous permet de spécifier un fichier audio à jouer dans votre navigateur lorsqu'il y a des problèmes
dans leCGI d'état. En cas de problèmes multiples, le fichier audio joué est celui du problème le plus critique.
Un problème est considéré comme le plus critique lorsqu'un ou plusieurs hôtes sont inaccessibles, alors qu'il est
le moins critique lorsqu'un ou plusieurs services sont dans un état inconnu (voyez l'ordre dans l'exemple ci-
dessus). Les fichiers audios sont censés se trouver dans le sous-répertoire media/ de votre répertoire HTML
(i.e. /usr/local/nagios/share/media).
Syntaxe Ping
Format: ping_syntax=<command>
Cette option définit quelle syntaxe doit être utilisée quand on veut tester un hôte avec ping à travers
l'interface WAP en utilisant le CGI statuswml .Vous devez inclure le chemin complet vers le fichier binaire
exécutable de ping, ainsi que les paramètres passés à la commande. La macro $HOSTADDRESS$ est
remplacée par l'adresse de l'hôte avant que la commande ne soit exécutée.
Exemple: escape_html_tags=1
Cette option détermine si les balises HTML contenues dans le message retour des plugins de services et d'hôtes
doivent être ou non échappées dans les CGI. Si vous activez cette option, votre message retour de plugin ne
peut pas contenir de liens hypertexte.
Exemple: notes_url_target=_blank
Cette option détermine le nom du cadre cible dans lequel doit être affiché les URL des notes. Les options
acceptables sont _blank, _self, _top, _parent, ou n'importe quel nom de cadre valide.
Exemple: action_url_target=_blank
Cette option détermine le nom du cadre cible dans lequel doit être affiché les URL d'action. Les options
acceptables sont _blank, _self, _top, _parent, ou n'importe quel nom de cadre valide.
Exemple: enable_splunk_integration=1
Cette option détermine si la fonctionnalité d'intégration avec Splunk est activée dans l'interface web. Si
activée, il vous sera présenté un lien Splunk It à divers endroits dans les CGIs (fichier journal, historique
d'alerte, détail d'hôte/service, etc.). Utile si vous essayez de rechercher pourquoi un problème particulier est
survenu. Pour plus d'informations sur Splunk, visitez http://www.splunk.com/.
URL Splunk
Format: splunk_url=<path>
Exemple: splunk_url=http://127.0.0.1:8000/
Cette option est utilisée pour définir l'URL de base de votre interface Splunk. Cet URL est utilisé par les CGIs
pour créer les liens si l'option enable_splunk_integration est activée.
o Introduction
o Plugin API
Introduction
Comme pas mal d'autres outils de supervision, Nagios n'intègre aucun mécanisme pour contrôler l'état des hôtes
et services sur votre réseau. Du coup, Nagios délègue à des programmes externes (appelés plugins) tout le sale
boulot.
Nagios exécutera un plugin seulement lorsqu'il sera nécessaire de vérifier le statut d'un service ou d'un hôte. Le
plugin fait quelque chose (notez le sens très général du terme) pour effectuer le contrôle et renvoie
simplement le résultat à Nagios. Nagios traitera les résultats qu'il aura reçu du plugin et prendra les mesures
nécessaires (en exécutant des gestionnaires d'événements, en envoyant des notifications, etc.).
Les plugins sont comme une couche intermédiaire entre le ordonnancement de contrôle présent dans le démon
Nagios et les services ou hôtes à superviser.
L'avantage de ce type d'architecture de plugin est que vous pouvez superviser à peu près tout ce que vous
voulez. Si vous pouvez automatiser le procédé de contrôle de quelque-chose, vous pouvez le superviser avec
Nagios. Il existe déjà plein de plugins qui ont été créés pour superviser des ressources basiques comme la
charge processeur, l'espace disque utilsé, les statistiques de la commande ping, etc. Si vous voulez superviser
autre chose, reportez-vous à la documentation nommée écrire ses plugins et créez les vôtres. C'est très simple!
L'inconvénient de ce type d'architecture de plugin est le fait que Nagios n'a absolument aucune idée de ce que
vous supervisez. Vous pourriez superviser les statistiques du trafic réseau, les taux d'erreur de données, la
température ambiante, la tension du CPU, la vitesse du ventilateur, la charge du processeur, l'espace disque,
ou la capacité de votre super_fantastique grille-pain à griller parfaitement votre pain le matin… Nagios ne
comprend pas les spécificités de ce qui est supervisé. Les plugins seulement savent exactement ce qu'ils
contrôlent et comment effectuer ces contrôles.
Plugin API
Vous pouvez trouver des informations sur les aspects techniques des plugins, ainsi que des informations sur
comment développer vos propres plugins ici.