Professional Documents
Culture Documents
Par djibril
Vous souhaitez vous lancer dans l'installation de Nagios mais vous êtes perdu dans la
documentation officielle assez volumineuse et les différents tutoriels sur la toile pas toujours
compréhensibles ?
Cet article va vous guider à réaliser une installation simplifiée de Nagios et une configuration
pour superviser une machine Linux, Windows et un switch.
Installation et configuration de Nagios pour débutants par djibril
I - Introduction..............................................................................................................................................................3
I-A - Exemple de réseau à superviser...................................................................................................................3
I-B - Les prérequis................................................................................................................................................. 3
I-B-1 - Système d'exploitation...........................................................................................................................3
I-B-2 - Bibliothèques nécessaires..................................................................................................................... 3
II - Installation de Nagios............................................................................................................................................ 3
II-A - Création des comptes et groupes nécessaires............................................................................................ 3
II-B - Téléchargement de Nagios et de ses plugins.............................................................................................. 4
II-C - Compilation et installation de Nagios........................................................................................................... 4
II-D - Personnalisation de la configuration de Nagios........................................................................................... 6
II-E - Configuration de l'interface web................................................................................................................... 7
II-F - Compilation et installation des plugins Nagios............................................................................................. 7
II-G - Démarrage de Nagios.................................................................................................................................. 7
III - Configuration de Nagios....................................................................................................................................... 8
III-A - Surveillance locale....................................................................................................................................... 8
III-B - Surveillance à distance................................................................................................................................ 9
III-B-1 - Machines à surveiller sous Windows................................................................................................ 10
III-B-2 - Machines à surveiller sous Linux...................................................................................................... 11
III-B-2-a - Installation de NRPE et des plugins Nagios sur le serveur Linux distant................................. 11
III-B-2-b - Installation de NRPE sur le serveur Nagios............................................................................. 15
III-B-3 - Switch à surveiller............................................................................................................................. 17
IV - Mise à jour de Nagios........................................................................................................................................ 19
V - Liens.....................................................................................................................................................................21
VI - Conclusion.......................................................................................................................................................... 21
VII - Remerciements.................................................................................................................................................. 21
-2-
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
I - Introduction
Le but de cet article est d'installer un serveur de supervision pour détecter les pannes ou incohérences, et récupérer
des informations sur des serveurs Windows, Linux ou switch et autres éléments d'un réseau. L'outil de supervision
que nous utiliserons sur notre parc informatique est le logiciel open source Nagios et le serveur sur lequel l'installation
sera faite aura un système d'exploitation Linux.
Pour la rédaction de cet article, je me suis basé sur la documentation officielle de Nagios, d'autres cours trouvés sur
la toile, ainsi qu'un peu d'huile de coude !! Vous aurez en fin d'article un résumé de ces différents liens.
La configuration du réseau que nous allons essayer de superviser est de type réseau LAN et contient trois machines
et un switch, il dispose également d'un serveur DNS.
• Un serveur Linux nommé supervion sur lequel sera installé Nagios pour superviser notre réseau. Il aura pour
IP 192.168.1.12.
• Un serveur Linux servprod qui sera supervisé . Il aura pour IP 192.168.1.10.
• Un serveur Windows winprod qui sera supervisé. Il aura pour IP 192.168.1.11.
• Un switch 3com4300 nommé switch que l'on supervisera également. Il aura pour IP 192.168.1.1.
Le système d'exploitation choisi est "OpenSuse" 11.3 (c'est la version la plus récente à ce jour). Cette machine a pour
adresse IP 192.168.1.12 et s'appelle supervision. Le but de cet article n'est pas de vous montrer comment installer
Linux, nous supposons que vous savez le faire !! Nagios s'installe sur n'importe quelle distribution Linux (Debian,
Ubuntu, Redhat…), les commandes données dans cet article devraient s'appliquer à la majorité des distributions
Linux.
Nous avons besoin d'installer Apache et PHP car nous visualiserons les données à travers une interface web. Il nous
faudra également un compilateur C/C++ pour l'installation des différents packages Nagios.
Pour installer ces différentes librairies, utilisez YaST et recherchez apache2, apache2-mod_php5, php5, gcc et gcc-
c++ et installez-les. Il faut également installer "Net-SNMP" afin de pouvoir lancer des requêtes snmp pour superviser
des routeurs ou switchs par exemple. Sous Debian ou Ubuntu, vous devriez pouvoir installer ces librairies avec apt-
get, ou yum sous RedHat.
II - Installation de Nagios
Création du compte utilisateur nagios que nous allons mettre dans le groupe nagios
Sous OpenSuse
supervision:~ # useradd -m -G nagios nagios
-3-
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Sous Debian
supervision:~ # useradd -m -g nagios nagios
Attribution d'un mot de passe à l'utilisateur "nagios". Ce mot de passe est "nagios"
Création d'un groupe "nagcmd" permettant l'exécution des commandes externes à travers l'interface web. Rajout
des utilisateurs Nagios et Apache à l'intérieur du groupe "nagcmd".
Sous OpenSuse
supervision:~ # groupadd nagcmd
supervision:~ # usermod -G nagcmd nagios
supervision:~ # usermod -G nagcmd wwwrun
Sous Debian
supervision:~ # groupadd nagcmd
supervision:~ # usermod -g nagcmd nagios
supervision:~ # usermod -g nagcmd www-data
N.B. Sous OpenSuse, le compte utilisateur d'Apache est wwwrun et son groupe est www. Maintenant que les
comptes ont été créés , nous allons procéder aux téléchargements et l'installation des librairies Nagios.
Nous avons besoin de "Nagios" et de ses plugins. Nous les téléchargerons sur le site de Nagios.
Création d'un répertoire /nagios/download dans lequel nous déposerons les archives à installer.
À ce jour, la version la plus récente de Nagios est la 3.2.3 et celle du "plugin Nagios" est la 1.4.16.
N.B. Nagios vous donne la possibilité de créer vos propres plugins via différents langages de programmation,
notamment Perl. Pour en savoir plus, consultez cet article : Concevoir facilement un plugin Nagios en Perl.
supervision: # cd /nagios/download/
supervision:/nagios/download # tar xzf nagios-3.2.3.tar.gz
Puis exécuter le script de configuration en lui précisant le nom du groupe créé précédemment.
supervision:/nagios/download # cd nagios-3.2.3/
supervision:/nagios/download/nagios-3.2.3 # ./configure --with-command-group=nagcmd
-4-
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Installons les fichiers de configuration. Les fichiers seront automatiquement installés dans le répertoire /usr/local/
nagios/etc
-5-
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Les fichiers de configuration se trouvent dans le répertoire /usr/local/nagios/etc. Éditons le fichier contacts.cfg
pour y mettre les informations de l'administrateur de Nagios, notamment l'adresse électronique où les alertes seront
envoyées.
Fichiers /usr/local/nagios/etc/objects/contacts.cfg
supervision:/nagios/download/nagios-3.2.3 # vi /usr/local/nagios/etc/objects/contacts.cfg
###############################################################################
# CONTACTS.CFG - SAMPLE CONTACT/CONTACTGROUP DEFINITIONS
#
# Last Modified: 05-31-2007
#
# NOTES: This config file provides you with some example contact and contact
# group definitions that you can reference in host and service
# definitions.
#
# You don't need to keep these definitions in a separate file from your
# other object definitions. This has been done just to make things
# easier to understand.
#
###############################################################################
###############################################################################
###############################################################################
#
# CONTACTS
#
###############################################################################
###############################################################################
# Just one contact defined by default - the Nagios admin (that's you)
# This contact definition inherits a lot of default values from the 'generic-contact'
# template which is defined elsewhere.
define contact{
contact_name nagiosadmin ; Short name of user
use generic-contact ; Inherit default values from generic-contact template
(defined above)
alias Administrateur Nagios ; Full name of user
email toto@tutu.fr ; Adresse Email pour les notifications
}
###############################################################################
###############################################################################
#
# CONTACT GROUPS
#
###############################################################################
###############################################################################
define contactgroup{
contactgroup_name admins
alias Administrateurs Nagios
members nagiosadmin
}
-6-
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Remettons-nous dans le répertoire de téléchargement afin de décompresser les sources, les compiler et les installer.
supervision:/nagios/download/nagios-3.2.3 # cd /nagios/download/
supervision:/nagios/download # tar xzf nagios-plugins-1.4.16.tar.gz
supervision:/nagios/download # cd nagios-plugins-1.4.16/
supervision:/nagios/download/nagios-plugins-1.4.16 # ./configure --with-nagios-user=nagios --with-
nagios-group=nagios
supervision:/nagios/download/nagios-plugins-1.4.16 # make
supervision:/nagios/download/nagios-plugins-1.4.16 # make install
À la première installation, et à chaque fois que vous ferez des modifications de Nagios ou que vous aurez besoin de
redémarrer Nagios, assurez-vous que tous les fichiers de configuration sont conformes. Pour cela, lancez toujours
cette commande.
S'il n'y a pas d'erreur, on peut continuer. Afin que nagios et apache2 puissent démarrer automatiquement au
démarrage du serveur, faites ceci :
Changer la permission de ce répertoire /usr/local/nagios/var/rw afin de pouvoir effectuer certaines actions depuis
l'interface Nagios.
-7-
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Avant de se connecter à la page web de Nagios, il est important de vérifier que le pare-feu du serveur ne bloque pas
l'affichage des pages web, pour cela, allons dans
• YaST ;
• Catégorie "Sécurité et utilisateurs" ;
• Pare-feu ;
• Rajoutons "Serveur http" à la liste des services autorisés de la zone externe.
Maintenant nous pouvons nous connecter à Nagios via le lien suivant : http://supervision/nagios
Nous n'allons pas voir comment configurer entièrement Nagios car c'est infini et pour en savoir plus, vous devrez
vous pencher sur la documentation officielle. Néanmoins, nous allons essayer de paramétrer Nagios pour surveiller
l'espace disque du serveur Nagios et d'autres serveurs Windows et Linux ainsi que leur accessibilité.
À ce stade de l'article, Nagios ne surveille que le serveur sur lequel il est installé. Si vous cliquez sur le lien Services
ou Hosts de la page web, vous ne verrez que localhost.
Certains services sont par défaut surveillés, notamment le swap, l'espace disque de la partition root /, le ping, etc.
-8-
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Pour modifier les services surveillés par Nagios en local, il faut aller dans le fichier localhost.cfg qui se trouve dans
le répertoire /usr/local/nagios/etc/objects. Vous y trouverez différentes sections. La première est la section host.
Pour la vérification de l'espace disque, il faut voir le service utilisant le programme "check_local_disk". Vous
trouverez cette ligne :
check_command check_local_disk!20%!10%!/
En fait, Nagios lance un programme s'appelant "check_local_disk" en lui passant en argument 20% et 10%. Ce
programme va vérifier l'espace disque et envoyer à Nagios 0 si tout est OK, 1 (pour warning) si l'espace disque
restant est inférieur à 20 % ou 2 (pour critique) si l'espace disque restant est inférieur à 10 %. Avec ce code retour,
Nagios va afficher un message adapté au niveau de l'interface web. Vous pouvez les modifier pour tester.
En fait, il existe un fichier "commands.cfg" dans le répertoire /usr/local/nagios/etc/objects où sont listées toutes
les commandes que Nagios utilisera en local.
Exemple
# 'check_local_disk' command definition
define command{
command_name check_local_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ -u $ARG4$
}
On remarquera que Nagios lance en réalité le programme check_disk au lieu de check_local_disk qui est en fait
un alias avec les paramètres -w $ARG1$ -c $ARG2$ -p $ARG3$.
$ARG1 correspond au 20%, $ARG2 au 10% et $ARG3 à /. Pour en savoir plus sur les arguments, consultez la
documentation officielle nagiosplugins et chercher check_disk.
Mettons-nous à la place de Nagios en ligne de commande et lançons check_disk. À noter que tous les programmes
Nagios se trouvent dans le répertoire /usr/local/nagios/libexec.
Vous remarquez que le code retourné est bien 0. Affinons notre requête pour afficher les tailles en Gigabytes au lieu
de MB (par défaut). L'option -u nous le permet.
Si vous souhaitez que Nagios fasse le même affichage, il faut modifier le fichier "commands.cfg" pour soit lui mettre
en dur -u GB ou bien lui donner un quatrième argument nous donnant le choix de le paramétrer. Exemple :
Voilà, c'est magique !!! Pour les autres services, le principe est le même. Avec un peu, voir beaucoup d'huile de
coude et vous pourrez y arriver !!
Pour surveiller des machines distantes il faut qu'il y ait sur ces machines un agent qui pourra renseigner les plugins
Nagios des informations dont ils ont besoin. La mise en place de cet agent diffère en fonction du système d'exploitation
-9-
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
de la machine à surveiller ou du matériel. Nous prendrons pour exemple une machine Windows, Linux et un switch.
Une fois l'agent installé, il faut créer de nouvelles définitions d'hôtes et de service pour surveiller la machine puis
redémarrer le démon Nagios.
Pour notre article, nous allons installer l'addon NSClient++ sur la machine Windows et utiliser le greffon check_nt
pour communiquer avec NSCLient++. Ce greffon check_nt est déjà installé vu que Nagios l'est. Vous pouvez le
trouver dans le fichier "commands.cfg".
Il est possible d'utiliser d'autres agents Windows (comme NC_Net) mais il faudra dans ce cas modifier les commandes
et les définitions de services… Mais nous, nous utiliserons NSClient++. Téléchargez-le à cette adresse ici et s'il
n'est proposé que la version 64bits (NSClient++-0.3.8-x64.msi), testez ce lien et récupérez NSClient++-0.3.8-
Win32.msi. Je vous rappelle que notre machine Windows s'appelle "winprod".
• Installation de l'agent
Une fois votre fichier MSI téléchargé, installez-le sur la machine winprod. Il vous demandera l'adresse IP de votre
serveur Nagios, vous pouvez mettre le nom DNS si votre réseau en dispose d'un. Si vous souhaitez préciser un mot
de passe, mettez-le dans le champ adéquat. Ensuite activez les champs plugins, check_nt et check_nrpe. Pour ce
qui nous concerne, nous ne mettrons pas de mot de passe.
• Configuration de Nagios
Remettons-nous sur notre serveur Nagios "supervision" et éditons le fichier de configuration de Nagios.
Décommentons la ligne faisant référence aux templates de configuration des machines Windows.
supervision:~ # vi /usr/local/nagios/etc/nagios.cfg
supervision:~ # cat /usr/local/nagios/etc/nagios.cfg | grep windows.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
Nous avons dit à Nagios de regarder le fichier "windows.cfg" pour y trouver les définitions des hôtes Windows.
Cette méthode est intéressante car nous pouvons définir toutes nos machines Windows dans le même fichier, mais
je préfère avoir un fichier par serveur Windows pour une meilleure lisibilité et maintenance. Pour ce faire, je ne l'utilise
que pour exemple de fichiers.
Créons un répertoire où stocker tous les fichiers de configuration de nos machines Windows et précisons-le à Nagios.
Trouvons les lignes commentées commençant par #cfg_dir=… Créons une ligne identique en précisant le chemin
vers le répertoire que nous avons créé. Décommentez-la. Puis Commentons la ligne cfg_file=/usr/local/nagios/etc/
objects/windows.cfg car nous ne l'utiliserons plus. Voici le résultat :
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
...
...
cfg_dir=/usr/local/nagios/etc/serveurs_windows
#cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers
- 10 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Modifions ce fichier en remplaçant "winserver" par "winprod" (nom de notre serveur Windows). Puis changeons
l'adresse IP par la nôtre ou par winprod étant donné que nous disposons d'un DNS.
Faisons une petite vérification !
Il n'y a pas d'erreur, tout fonctionne bien, on peut le vérifier sur notre site Nagios http://localhost/nagios.
Dans le fichier winprod.cfg, nous testons plusieurs services présents par défaut. Notre serveur windows appartient
au hostgroup "windows-servers", ce groupe doit être défini une seule fois pour toutes les machines Windows que
nous surveillerons. Comme nous souhaitons faire un fichier par serveur, nous définirons ce hostgroup dans un fichier
à part et l'enlèverons du fichier winprod.cfg.
supervision:~ # vi /usr/local/nagios/etc/serveurs_windows/hostgroup_windows.cfg
define hostgroup{
hostgroup_name windows-servers ; The name of the hostgroup
alias Serveurs Windows ; Long name of the group
members winprod ; Serveurs membre du groupe séparés par des virgules
}
Voilà, à ce stade, Nagios surveille notre machine winprod et vous pouvez rajouter d'autres serveurs Windows
(machine.cfg dans le répertoire serveurs_windows).
Nous avons besoin d'un agent sur les serveurs à surveiller et des plugins Nagios. Nous utiliserons pour plugins
"NRPE".
NRPE(Nagios Remote Plugin Executor) est un "Addons" pour Nagios qui permet d'exécuter des plugins sur un
serveur Linux/Unix distant. Cela permet de surveiller des ressources locales (charge du processeur, utilisation de la
mémoire, espace disque…) qui ne sont normalement pas disponibles depuis d'autres machines. Afin d'interroger le
client NRPE il faudra utiliser le greffon "check_nrpe" sur notre serveur Nagios "supervision". Pour ce faire il va falloir
installer nrpe sur notre serveur Nagios, et sur toutes les machines à surveiller. De plus il faudra installer les plugins
Nagios sur chaque serveur distant à surveiller.
III-B-2-a - Installation de NRPE et des plugins Nagios sur le serveur Linux distant
Avant de commencer l'installation, nous devons d'abord nous assurer de disposer de la librairie "libssl-dev",
sinon, il faut l'installer. Elle correspond à "openssl-devel". Notre serveur servprod à surveiller est un serveur sous
"OpenSuse" également. Pour les autres distributions, il faudra installer la librairie "build-essential". Il peut être
également intéressant d'installer les librairies make, gcc, gcc-c++ et Net-SNMP. Pour information, sous Debian, ces
commandes devraient suffire.
Sous Debian
apt-get install make gcc g++
apt-get install libssl-dev
apt-get install snmpd snmp scli
- 11 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
servprod:~ # cd /usr/local/src/
servprod:/usr/local/src # wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/
nrpe-2.13.tar.gz
servprod:/usr/local/src # wget http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/
nagios-plugins-1.4.16.tar.gz
Sous Debian
servprod:/usr/local/src # groupadd nagios && useradd nagios -g nagios -p nagios
servprod:/usr/local/src # cd /usr/local/src/nrpe-2.13
servprod:/usr/local/src # ./configure --disable-ssl --enable-command-args
servprod:/usr/local/src # make all && make install
/usr/local/nagios/bin:
total 72K
drwxrwxr-x 2 nagios nagios 72 Jan 17 16:12 .
drwxrwxr-x 4 nagios nagios 96 Jan 17 16:12 ..
-rwxrwxr-x 1 nagios nagios 70K Jan 17 16:12 nrpe
/usr/local/nagios/libexec:
total 36K
drwxrwxr-x 2 nagios nagios 80 Jan 17 16:12 .
drwxrwxr-x 4 nagios nagios 96 Jan 17 16:12 ..
-rwxrwxr-x 1 nagios nagios 35K Jan 17 16:12 check_nrpe
servprod:/usr/local/src # cd ../nagios-plugins-1.4.16/
servprod:/usr/local/src/nagios-plugins-1.4.16 # ./configure
servprod:/usr/local/src/nagios-plugins-1.4.16 # make && make install
ls -R /usr/local/nagios
servprod:/usr/local/src/nagios-plugins-1.4.16 # ls -R /usr/local/nagios
/usr/local/nagios:
bin include libexec share
/usr/local/nagios/bin:
nrpe
/usr/local/nagios/include:
- 12 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
ls -R /usr/local/nagios
/usr/local/nagios/libexec:
check_apt check_disk check_hpjd check_ircd check_nntp check_oracle
check_sensors check_udp utils.sh
check_breeze check_disk_smb check_http check_load check_nrpe check_overcr
check_smtp check_ups
check_by_ssh check_dns check_icmp check_log check_nt check_ping
check_snmp check_users
check_clamd check_dummy check_ide_smart check_mailq check_ntp check_pop
check_ssh check_wave
check_cluster check_file_age check_ifoperstatus check_mrtg check_ntp_peer check_procs
check_swap negate
check_dhcp check_flexlm check_ifstatus check_mrtgtraf check_ntp_time check_real
check_tcp urlize
check_dig check_ftp check_imap check_nagios check_nwstat check_rpc
check_time utils.pm
/usr/local/nagios/share:
locale
/usr/local/nagios/share/locale:
de fr
/usr/local/nagios/share/locale/de:
LC_MESSAGES
/usr/local/nagios/share/locale/de/LC_MESSAGES:
nagios-plugins.mo
/usr/local/nagios/share/locale/fr:
LC_MESSAGES
/usr/local/nagios/share/locale/fr/LC_MESSAGES:
nagios-plugins.mo
/etc/services
servprod:/usr/local/src/nagios-plugins-1.4.16 # vi /etc/services
...
nrpe 5666/tcp # NRPE
...
N.B. Si vous supervisez une machine protégée par un pare-feu, pensez à ouvrir le port 5666 en TCP qui est utilisé
par NRPE. Sinon vous aurez ce type de message d'erreur : CHECK_NRPE: Socket timeout after 10 seconds.
servprod:/usr/local/src/nagios-plugins-1.4.16 # cp /usr/local/src/nrpe-2.13/sample-config/nrpe.cfg /
usr/local/nagios/nrpe.cfg
servprod:/usr/local/src/nagios-plugins-1.4.16 # vi /usr/local/nagios/nrpe.cfg
dont_blame_nrpe=1
- 13 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Si le répertoire /etc/xinetd.d n'existe pas, c'est que xinetd n'est pas installé. Sous OpenSuse, il devrait être installé
par défaut, mais sous Debian il faudra l'installer via la commande : apt-get install xinetd. Ensuite, créez le fichier
/etc/xinetd.d/nrpe.
/etc/xinetd.d/nrpe
servprod:/usr/local/src/nagios-plugins-1.4.16 # vi /etc/xinetd.d/nrpe
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -n -c /usr/local/nagios/nrpe.cfg -i
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 192.168.1.12
}
• server_args
• -n : déshabilite ssl.
• -i : utilise xinetd.
• only_from : permet de lister les hôtes autorisés à contacter nrpe
• Redémarrage de xinetd :
/etc/init.d/xinetd restart
/usr/local/nagios/libexec/check_nrpe -n -H 127.0.0.1
CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
# tail -f /var/log/messages
Jan 17 16:36:27 servprod nrpe[13105]: Unable to open config file '/usr/local/nagios/nrpe.cfg' for
reading
Jan 17 16:36:27 servprod nrpe[13105]: Config file '/usr/local/nagios/nrpe.cfg' contained errors,
aborting...
ls -alh /usr/local/nagios/nrpe.cfg
- 14 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
En effet, Nagios ne peut pas lire le fichier, changeons les droits du fichier.
/usr/local/nagios/libexec/check_nrpe -n -H 127.0.0.1
NRPE v2.12
Tout fonctionne parfaitement, paramétrons NRPE afin de pouvoir lire l'espace disque.
vi /usr/local/nagios/nrpe.cfg
/usr/local/nagios/libexec/check_disk -w 10% -c 5% -u GB
DISK OK - free space: / 222 GB (96% inode=-); /dev 0 GB (99% inode=99%);| /
=9GB;207;219;0;231 /dev=0GB;0;0;0;0
Voilà, nrpe fonctionne correctement en local. Il ne reste plus qu'à vérifier que l'on arrive à le joindre depuis notre
serveur Nagios.
supervision:~ # cd /usr/local/src/
supervision:/usr/local/src # wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/
nrpe-2.13.tar.gz
supervision:/usr/local/src # tar zxf nrpe-2.13.tar.gz
supervision:/usr/local/src # cd /usr/local/src/nrpe-2.13
supervision:/usr/local/src/nrpe-2.13 # ./configure --disable-ssl --enable-command-args
supervision:/usr/local/src/nrpe-2.13 # make all && make install
- 15 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Essayons maintenant de l'intégrer à Nagios. Il faut définir un objet command et les services dans servprod.cfg.
Commençons par créer un répertoire serveurs_linux où déposer notre fichier servprod.cfg.
mkdir /usr/local/nagios/etc/serveurs_linux/
vi /usr/local/nagios/etc/nagios.cfg
...
cfg_dir=/usr/local/nagios/etc/serveurs_windows
cfg_dir=/usr/local/nagios/etc/serveurs_linux
...
vi /usr/local/nagios/etc/objects/commands.cfg
vi /usr/local/nagios/etc/serveurs_linux/servprod.cfg
servprod.cfg
# definition de la machine
define host{
use linux-server ;
host_name servprod ;
alias Serveur servprod ;
address servprod ;
}
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################
define service{
use generic-service
host_name servprod
service_description Espace disque /
check_command check_nrpe!check_disk!80%!90%!/
}
- 16 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
servprod.cfg
define service{
use generic-service
host_name servprod
service_description Charge CPU
check_command check_nrpe!check_load!80!90
}
define service{
use generic-service
host_name servprod
service_description Nombre utilisateurs
check_command check_nrpe!check_users!2!10
}
Redémarrage de Nagios.
Le script /etc/init.d/nagios start|stop|restart n'est pas toujours d'une fiabilité sans faille. Afin d'éviter d'avoir plusieurs
démons nagios qui tourneraient et qui mettraient à jour la même interface CGI. Voici comment éviter ce désagrément :
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
/etc/init.d/nagios stop; pkill nagios; /etc/init.d/nagios start
Remarque : Vous devez être en train de vous dire "Pourquoi n'avons-nous pas créé de fichier hostgroup comme
pour les serveurs Windows ?" En fait la définition du hostgroup "linux-server" pour les Linux se trouve dans le
fichier /usr/local/nagios/etc/objects/localhost.cfg (fichier de configuration du serveur supervision). Nous pourrions
décider d'ôter de ce fichier la définition du hostgroup pour la mettre dans un fichier à part, ce qui serait bien sûr
beaucoup plus propre.
À ce stade, je pense que vous commencez déjà à comprendre le fonctionnement de Nagios. Il existe un fichier
d'exemple de configuration pour les switches (/usr/local/nagios/etc/objects/switch.cfg), créons un répertoire /usr/
local/nagios/etc/switches, rajoutons ce fichier à l'intérieur.
Dans nagios.cfg, par défaut la ligne définissant le chemin où trouver les fichiers de configuration des switches existe
déjà mais elle est commentée, il suffit donc de la décommenter.
/usr/local/nagios/etc/nagios.cfg
# directive as shown below:
cfg_dir=/usr/local/nagios/etc/serveurs_windows
cfg_dir=/usr/local/nagios/etc/serveurs_linux
#cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers
/usr/local/nagios/etc/switches/switch3com.cfg
###############################################################################
# SWITCH.CFG - SAMPLE CONFIG FILE FOR MONITORING A SWITCH
#
# Last Modified: 10-03-2007
#
- 17 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
/usr/local/nagios/etc/switches/switch3com.cfg
# NOTES: This config file assumes that you are using the sample configuration
# files that get installed with the Nagios quickstart guide.
#
###############################################################################
###############################################################################
###############################################################################
#
# HOST DEFINITIONS
#
###############################################################################
###############################################################################
define host{
use generic-switch ; Inherit default values from a template
host_name MONSWITCH3COM ; The name we're giving to this switch
alias Linksys SRW224P Switch ; A longer name associated with the switch
address 192.168.1.1 ; IP address of the switch
hostgroups switches ; Host groups this switch is associated with
}
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################
define service{
use generic-service ; Inherit values from a template
host_name MONSWITCH3COM ; The name of the host the service is associated with
service_description PING ; The service description
check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service
normal_check_interval 5 ; Check the service every 5 minutes under normal conditions
retry_check_interval 1 ; Re-check the service every minute until its final/hard state is
determined
}
define service{
use generic-service ; Inherit values from a template
host_name MONSWITCH3COM
service_description Uptime
check_command check_snmp!-C public -o sysUpTime.0
}
define service{
use generic-service ; Inherit values from a template
host_name MONSWITCH3COM
service_description Port 1 Link Status
check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB
}
- 18 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
/usr/local/nagios/etc/switches/switch3com.cfg
# Monitor bandwidth via MRTG logs
define service{
use generic-service ; Inherit values from a template
host_name MONSWITCH3COM
service_description Port 1 Bandwidth Usage
check_command check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!
AVG!1000000,1000000!5000000,5000000!10
}
/usr/local/nagios/etc/switches/hostgroup_switch.cfg
###############################################################################
###############################################################################
#
# HOST GROUP DEFINITIONS
#
###############################################################################
###############################################################################
define hostgroup{
hostgroup_name switches ; The name of the hostgroup
alias Les Switches ; Long name of the group
}
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
/etc/init.d/nagios stop; pkill nagios; /etc/init.d/nagios start
Dernière petite explication d'un service de switch. Ce service lance une commande snmp avec pour arguments -C
public -o ifOperStatus.1 -r 1 -m RFC1213-MIB :
define service{
use generic-service ; Inherit values from a template
host_name MONSWITCH3COM
service_description Port 1 Link Status
check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB
}
-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 facultative 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 de décider ce dont
vous avez besoin et ce que vous souhaitez superviser. Bonne chance !
ASTUCE
Vous pouvez trouver les OID qui peuvent être supervisés sur un switch en exécutant la commande suivante :
snmpwalk -v1 -c public IP_DE_VOTRE_SWITCH -m ALL .1
Il est important de s'informer des nouvelles mises à jour de Nagios. Il est donc important de connaître la démarche
à suivre car il est inutile de devoir tout réinstaller. Je vais vous exposer les lignes de commandes à lancer.
- 19 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
N.B. Je me suis basé sur la documentation officielle de Nagios, n'hésitez pas à y jeter un coup d'œil pour de plus
amples informations. Pour savoir si votre nagios est à jour, il suffit de regarder la page d'accueil WEB de votre nagios.
Dans cette documentation, nous allons exposer la première méthode, plus précisément en passant de Nagios 3.3.1
à Nagios 3.4.1 sur notre serveur nommé « supervision ».
La mise à jour ne nécessite pas les droits root. Il faut se connecter avec l'utilisateur « nagios ».
Afin de rester dans la même logique de notre article, plaçons-nous dans le répertoire où nous avions téléchargé les
fichiers compressés de Nagios (sinon créez ce répertoire).
nagios@supervision:~> cd /nagios/download
nagios@supervision:/nagios/download>
Téléchargement
nagios@supervision:/nagios/download> wget http://prdownloads.sourceforge.net/sourceforge/nagios/
nagios-3.4.1.tar.gz
On pourrait s'attendre à la création d'un répertoire nagios-3.4.1, mais on a plutôt un répertoire nagios.
nagios@supervision:/nagios/download> ls -alh
drwxr-xr-x 5 nagios nagios 4,0K oct. 26 11:56 .
drwxr-xr-x 3 root root 4,0K janv. 18 2011 ..
drwxr-xr-x 16 nagios users 4,0K juil. 25 23:20 nagios
-rw-r--r-- 1 nagios nagios 1,7M juil. 26 05:32 nagios-3.4.1.tar.gz
nagios@supervision:/nagios/download> cd nagios
nagios@supervision:/nagios/download/nagios>
Compilons le code source de Nagios et lançons l'installation de la mise à jour des binaires. Cette étape n'engendre
pas l'écrasement de vos fichiers de configuration.
- 20 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/
Installation et configuration de Nagios pour débutants par djibril
Si tout s'est bien déroulé, votre Nagios est à jour. Vous le constaterez en allant sur la page d'accueil de l'interface
Nagios.
V - Liens
• Site de Nagios
• Les plugins Nagios (documentation officielle)
• NSClient++
• Autre lien NSClient++
• Traduction de la documentation officielle de Nagios
• Concevoir facilement un plugin Nagios en Perl
VI - Conclusion
J'espère que cet article vous a aidé à débuter et installer Nagios sur votre serveur.
N'hésitez pas à faire des remarques, corrections ou appréciations :
VII - Remerciements
Je remercie l'équipe dvp.com pour les remarques et la relecture de cet article, notamment ClaudeLELOUP et stoyak.
- 21 -
Copyright ® 2012 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.
http://djibril.developpez.com/tutoriels/linux/nagios-pour-debutant/