Personal tools
You are here: Home GNU / Linux Debian 4.0 Etch Installer Nagios sur Debian
Document Actions
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Installer Nagios sur Debian

by Pierre-Yves Landuré last modified 2013-01-30 12:08

Nagios est un logiciel de supervision d'infrastructure informatique très puissant. Il permet d'obtenir des informations détaillées sur le fonctionnement des serveurs, ainsi que des alertes mail, SMS et autres. Ce guide vous aide à l'installer depuis les sources sur Debian.

Ce guide est obsolète. Utilisez la nouvelle version sur le Help Desk Biapy:

Installer Nagios sur Debian

Ce guide a été testé avec les distributions suivantes :

  • Debian 5.0 Lenny
  • Debian 6.0 Squeeze

Pré-requis

Ce guide nécessite un serveur Apache 2 avec support du PHP 5 disposant du script suivant :

Paramètres

Renseignez le nom de domaine ou sera disponible l'application :

DOMAIN="nagios.domaine-exemple.fr"

Installation

Installez les paquets nécessaires à la mise en place de Nagios :

command apt-get install wget build-essential subversion\
             libgd2-xpm-dev traceroute libltdl3-dev \
             libssl-dev libgnutls-dev libbind-dev \
             libpq-dev libkrb5-dev libradius1-dev libldap2-dev \
             libmysqlclient15-dev openssh-client fping \
             dnsutils turqstat snmp openssl mysql-client postgresql-client \
             qstat libsnmp-perl libsnmp-session-perl libnet-snmp-perl

Mise en place du cœur de Nagios

Récupérez l'URL de la dernière version de Nagios :

SOURCE_URL="$(command wget --output-document=- --quiet \
    'http://sourceforge.net/projects/nagios/' \
    | command grep 'href=.*nagios-.*.tar.gz' \
    | command sed -e 's/^.*href="\([^"]*\)".*$/\1/')"

Récupérez le numéro de version à partir de l'URL :

VERSION=$(command echo "${SOURCE_URL}" \
    | command sed -e 's/^.*nagios-\([^/]*\).tar.gz.*$/\1/')

Installez les sources du logiciel :

command wget "${SOURCE_URL}" \
    --output-document="/tmp/nagios-${VERSION}.tar.gz"

Décompressez l'archive ainsi obtenue :

command tar --directory "/tmp" -xzf "/tmp/nagios-${VERSION}.tar.gz"

Placez-vous dans le dossier créé par la commande précédente :

command cd "/tmp/nagios-${VERSION}"

Renseignez l'emplacement de l'installation :

./configure \
    --prefix="/usr/share/nagios" \
    --bindir="/usr/bin" \
    --with-lockfile="/var/lock/nagios.lock" \
    --with-checkresult-dir="/var/spool/nagios/checkresult" \
    --with-httpd-conf="/etc/apache2/conf.d" \
    --sysconfdir="/etc/nagios" \
    --sharedstatedir="/var/lib/nagios/com" \
    --localstatedir="/var/lib/nagios/var" \
    --datadir="/usr/share/nagios/html" \
    --with-cgiurl="/cgi-bin" \
    --with-htmlurl="/"

Lancez la compilation :

command make all

Une fois la compilation terminée, créez l'utilisateur système dédié à Nagios :

command adduser --system \
    --home "/usr/share/nagios" \
    --no-create-home \
    --group nagios

Installez le coeur de Nagios :

command make install

Mettez en place les exemples de configuration :

command make install-config

Mettez en place le fichier init.d de Nagios :

command make install-init

Ajoutez Nagios au démarrage du système :

command update-rc.d nagios defaults

Créez le dossier destiné à recevoir les logs de Nagios :

command mkdir "/var/log/nagios"
command chown nagios:nagios "/var/log/nagios"

Ajout des plugins Nagios

Récupérez l'URL de la dernière version des plugins :

SOURCE_URL="$(command wget --output-document=- --quiet \
    'http://sourceforge.net/projects/nagiosplug/' \
    | command grep 'href=.*nagios-plugins-.*.tar.gz' \
    | command sed -e 's/^.*href="\([^"]*\)".*$/\1/')"

Récupérez le numéro de version à partir de l'URL :

VERSION=$(command echo "${SOURCE_URL}" \
    | command sed -e 's/^.*nagios-plugins-\([^/]*\).tar.gz.*$/\1/')

Téléchargez les sources des plugins Nagios :

command wget "${SOURCE_URL}" \
    --output-document="/tmp/nagios-plugins-${VERSION}.tar.gz"

Décompressez l'archive ainsi obtenue :

command tar --directory "/tmp" -xzf "/tmp/nagios-plugins-${VERSION}.tar.gz"

Placez-vous dans le dossier ainsi créé :

command cd "/tmp/nagios-plugins-${VERSION}"

Configurez l'installation des plugins :

./configure --prefix="/usr/share/nagios"

Lancez la compilation :

command make

Installez les plugins :

command make install

Mise en place d'une configuration modulaire

Afin d'accélérer la gestion quotidienne de l'application, j'ai modularisé la structure de la configuration de Nagios pour la remplacer par une infrastructure de dossier "available" / "enabled" similaire à celle d'Apache 2 sur Debian. Suivez les instructions qui suivent pour mettre en place cette structure modulaire.

Sauvegardez la configuration par défaut mise en place par la procédure d'installation :

command mv '/etc/nagios' '/etc/nagios.orig'

Téléchargez l'archive de la configuration modulaire :

command wget 'http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-nagios-sur-debian/nagios-tar.gz' \
    --output-document='/tmp/nagios.tar.gz'

Décompressez le fichier téléchargé :

command tar --directory='/etc' -xzf '/tmp/nagios.tar.gz'

Mettez en place les scripts d'assistance à la configuration de l'application :

/etc/nagios/scripts/install-tools.sh

Configuration du serveur Web

Activez la configuration de Nagios spécifique à votre serveur HTTP à l'aide de l'outil a2tools :

command a2tools add-custom "${DOMAIN}" "
  # Fix nagios charset display.
  AddDefaultCharset UTF-8

  ScriptAlias /cgi-bin /usr/share/nagios/sbin
  <Directory /usr/share/nagios/sbin>
    AllowOverride AuthConfig
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all

    AuthName \"Nagios Access\"
    AuthType Basic
    AuthUserFile /etc/nagios/htpasswd.users
    require valid-user
  </Directory>

  DocumentRoot /usr/share/nagios/html/
  <Directory /usr/share/nagios/html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride AuthConfig
    Order allow,deny
    allow from all

    AuthName \"Nagios Access\"
    AuthType Basic
    AuthUserFile /etc/nagios/htpasswd.users
    require valid-user
  </Directory>
"

Faites en sorte que le fichier des commandes nagios puisse être modifié par le serveur HTTP :

command chown www-data:nagios '/var/lib/nagios/var/nagios.cmd'

Paramétrage initial

Afin que votre configuration de Nagios soit fonctionnelle, activez une configuration minimale :

command nagios-enable-timeperiod 24x7
command nagios-enable-contactgroup admins
command nagios-enable-hostgroup servers
command nagios-enable-host-template \
    generic-host linux-server windows-server
command nagios-enable-host localhost
command nagios-enable-service-template \
    generic-service local-service network-service
command nagios-enable-service \
    localhost-disk-root localhost-load localhost-ping localhost-apt \
    localhost-total-procs localhost-zombie-procs localhost-users
command nagios-enable-servicegroup \
    disks loads pings procs ssh swaps upgrades users

Créez le contact d'administration de votre outil à l'aide de l'outil nagios-tools :

command nagios-tools add-contact "admin" "Nagios administrator" "root@localhost" "admins"

Assignez-lui un mot de passe, et notez précieusement les paramètres d'identification ainsi obtenus :

command nagios-tools set-contact-password "admin"

Premier démarrage

Vérifiez que la configuration ne contient aucune erreur :

command nagios -v /etc/nagios/nagios.cfg

Si cette commande ne vous signale aucune erreur, démarrez le démon de surveillance :

/etc/init.d/nagios start

Vous pouvez maintenant accédez à l'outil via l'URL fournie par la commande :

command echo "http://${DOMAIN}"

Utilisez l'utilisateur configuré précédemment dans ce guide pour vous identifier.

Description succincte des outils mis en place par ce guide

Ce guide met en place quelques outils destinés à simplifier l'administration de Nagios. Le principal est le script nagios-tools. Ce script permet de créer simplement et rapidement des services, des hôtes, des contacts, etc... Par exemple, pour créer un "host" nagios pour le serveur "mon-serveur.domaine.fr", utilisez la commande :

command nagios-tools add-host "mon-serveur.domaine.fr" "servers"

L'adresse IP du serveur est détectée automatiquement, la configuration est créée dans le dossier hosts-available, activée, et le service nagios est redémarré automatiquement si la configuration obtenue ne contient aucune erreur.

Pour en savoir plus sur les fonctionnalités de nagios-tools, je vous invite à expérimenter en vous basant sur la documentation minimale fournie par la commande :

command nagios-tools

En complément de nagios-tools, ce guide met en place des scripts permettant d'activer ou de désactiver rapidement des morceaux de configuration nagios. Le fonctionnement de ces scripts est similaire à celui des scripts Apache 2 a2ensite et a2dissite. Pour obtenir la liste des scripts d'administration de la configuration Nagios disponibles, utilisez cette commande :

command find '/usr/bin' -type l -name 'nagios-*able-*' | command sort

Les dossiers correspondants à ce scripts se trouvent dans le dossier de configuration /etc/nagios.

Exemple de configuration

Si vous gérez plusieurs serveurs, hébergeant des sites Plone 3, Wordpress, Redmine, vTiger, voici un exemple complet de configuration.

Organisation des services

Créez un groupe de services destiné à grouper les réponses aux ping de vos serveurs :

command nagios-tools add-servicegroup pings "Ping replies"

Créez un groupe de services destiné à grouper l'état des serveurs SSH de vos serveurs :

command nagios-tools add-servicegroup ssh "SSH servers"

Créez un groupe de services destiné à grouper l'état des sites Wordpress de vos serveurs :

command nagios-tools add-servicegroup wordpress "Wordress sites"

Créez un groupe de services destiné à grouper l'état de vos serveurs de base de données :

command nagios-tools add-servicegroup databases "Database servers"

Ajout d'un serveur

Voici un exemple de procédure d'ajout de serveur. Renseignez le nom d'hôte du serveur :

SERVER="server.domaine.fr"

Ajoutez l'hôte Nagios pour le serveur (l'adresse IP est détectée automatiquement si le nom de votre serveur est un nom de domaine valide) :

command nagios-tools add-host "${SERVER}" "servers"

Remarque : "servers" est le groupe de serveur dans lequel nous ajoutons notre serveur.

Ajoutez le service de vérification du ping pour le serveur :

command nagios-tools add-service "${SERVER}" "pings" "ping"

Ajoutez le service de vérification de la connexion SSH pour le serveur :

command nagios-tools add-service "${SERVER}" "ssh" "ssh"
  • Ajout d'un site internet sur le serveur :
    Pour ajoutez une vérification d'hébergement de site Wordpress sur votre serveur, utilisez la commande suivante (l'URL du site Wordpress à vérifier est la valeur graissée. Modifiez-la à votre convenance) :
    command nagios-tools add-service "${SERVER}" "wordpress" "http" "http://blog.domaine.fr"

    Remarque : la valeur "wordpress" correspond au groupe de services auquel est ajouté le service.

Pour allez plus loin

Installation de l'extension de surveillance délocalisée NRPE

L'add-on NRPE permet de surveiller les caractéristiques de machines distances (utilisation CPU, espace disque, etc...). Il est indispensable si vous devez surveiller un parc de serveurs. Cet add-on se divise en deux parties : une extension Nagios a mettre en place sur votre instance, et un démon à installer sur la machine distante.

Récupérez l'URL de la dernière version de l'extension :

SOURCE_URL="$(command wget --output-document=- --quiet \
    'http://exchange.nagios.org/directory/Addons/Monitoring-Agents/NRPE-%252D-Nagios-Remote-Plugin-Executor/details' \
    | command grep 'href=.*nrpe-.*.tar.gz' \
    | command sed -e 's/^.*href="\([^"]*\)".*href.*$/\1/')"

Récupérez le numéro de version à partir de l'URL :

VERSION=$(command echo "${SOURCE_URL}" \
    | command sed -e 's/^.*nrpe-\([^/]*\).tar.gz.*$/\1/')

Téléchargez les sources :

command wget "${SOURCE_URL}" \
    --output-document="/tmp/nrpe-${VERSION}.tar.gz"

Décompressez l'archive ainsi obtenue :

command tar --directory "/tmp" -xzf "/tmp/nrpe-${VERSION}.tar.gz"

Placez-vous dans le dossier ainsi créé :

command cd "/tmp/nrpe-${VERSION}"

Configurez l'installation du plugin :

./configure --prefix="/usr/share/nagios"

Lancez la compilation :

command make check_nrpe

Installez l'extension NRPE sur votre système :

command make install-plugin

Ajoutez la commande check_nrpe à votre configuration Nagios :

echo 'define command{
    command_name check_nrpe
    command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
    }' | tee /etc/nagios/commands-available/check_nrpe.cfg
command nagios-enable-command check_nrpe

Vous pouvez maintenant surveiller les machines exécutant le démon NRPE à distance.

Si vous souhaitez mettre en place une surveillance via NRPE sur l'un de vos serveur, je vous invite à lire Installer l'outil de supervision distante NRPE sur Debian.

Pour plus d'information sur l'installation de NRPE sur les machines distantes, je vous invite à lire Monitorer les hôtes Linux (Debian) distant avec le serveur NRPE de Nagios.

Remerciements

Attachments

Petites erreurs

Posted by Thireus at 2011-06-09 03:20
Dans Paramétrage initial

La commande est "nagios-enable-hosts-template" et NON PAS "nagios-enable-host-template" avec host sans 's'.

Donc la bonne commande :

command nagios-enable-hosts-template \
generic-host linux-server windows-server

La commande suivante :

command chown www-data:nagios '/var/lib/nagios/var/nagios.cmd'

Doit être effectuée après un premier démarrage de nagios, sinon le fichier n'existe pas.

Merci pour le tuto :)

erreurs

Posted by m at 2011-12-07 14:04
j'ai eu des erreurs avec la dernière version de nagios :

/usr/bin/install: omission du répertoire « includes/rss/extlib »
/usr/bin/install: omission du répertoire « includes/rss/htdocs »
/usr/bin/install: omission du répertoire « includes/rss/scripts »
make[1]: *** [install] Erreur 1
make[1]: quittant le répertoire « /usr/src/nagios/html »
make: *** [install] Erreur 2


pour les résoudre :

Ouvrir le fichier Makefile avec la commande « nano -c /usr/src/nagios/html/Makefile »

-Ligne 78
Remplacer « for file in includes/rss/*; \ » par « for file in includes/rss/*.*; \ »

-Ligne 80
Remplacer « for file in includes/rss/extlib/*; \ » par « for file in includes/rss/extlib/*.*; \ »

BlogBang
Navigation
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards:

Wikio