Catégories
Nagios Open-source Reseau

Mise à jour de Nagios 3.2.0

L’équipe de développement de Nagios n’a pas pris de longues vacances cette année. En effet, ils ont profité de notre absence pour sortir une version 3.2.0 du cœur de leur logiciel de supervision (voir le changelog ici). Vous pouvez lire ce billet pour mettre à jour votre Nagios d’une version 3.x vers cette version 3.2.0.

Catégories
Nagios Open-source Reseau Systeme

NConf, une interface Web pour Nagios

Utilisateurs de Nagios, votre rêve va bientôt se réaliser ! Une équipe Suisse travaille sur le saint Graal de la supervision système et réseau. En effet leur projet NConf vient répondre à un besoin récurrent des utilisateurs de Nagios: l’impossibilité d’administrer son serveur via une interface Web.

Nous allons dans ce billet tester la version 1.2.6 de NConf sur un serveur Nagios 3.1. Je pars sur l’hypothèse ou le serveur Nagios a été installé en suivant mes deux premiers tutos (1 et 2).

Catégories
Nagios Open-source Planet-libre Systeme

Pour en finir avec NDO

Vu le nombre de messages sur le forum concernant l’installation et la configuration de NDO (la petite boite qui fait le lien entre Nagios et Centreon), je me devais de rédiger ce billet sur le sujet. Nous allons donc voir étape par étape les choses à vérifier et à faire pour faire fonctionner ce bouzin (oui, oui c’est un bouzin).

Dans la suite de ce billet, je pars sur l’hypothése ou vous avez installé Nagios et Centreon en suivant cette série de billets.

NDO c’est quoi ?

NDO est un module additionnel permettant à Nagios d’écrire dans une base de données l’état des machines et services à superviser.

NDO est composé de deux modules: NDOMOD et NDO2DB.

NDOMOD doit être lancé sur le serveur Nagios et permet de récupérer les informations remontées par Nagios pour les transmettre via TCP (ou un socket Unix) vers NDO2DB.

NDO2DB est un daemon qui écoute sur un port TCP (ou un socket Unix) et écrit les données recues dans une base de donnée (MySQL ou PgSQL).

Compilation de NDO

Le plugin est a récupérer à l’adresse suivante: http://www.nagios.org/download/addons/ ou en saisissant les commandes suivantes:

# sudo -s

# cd /usr/src

# wget http://dfn.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz

Remarque: la version disponible au moment de l’écriture de ce billet est la 1.4b9 (à modifier par vos soins).

On lance la compilation pour une utilisation d’une base de donnée MySQL:

# tar zxvf ndoutils-1.4b9.tar.gz

# cd ndoutils-1.4b9

# ./configure –disable-pgsql –with-mysql-lib=/usr/lib/mysql –with-ndo2db-user=nagios –with-ndo2db-group=nagios

# make

La compilation doit se faire sans erreur…

Installation de NDO

NDO ne dispose pas d’un « installateur » standard, il faut donc saisir les commandes suivantes (toujours en mode root):

# cd /usr/src/ndoutils-1.4b9

# cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o

# cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db

On écrase les droits par défaut de ces fichiers:

# chown nagios:nagios /usr/local/nagios/bin/ndo*

# chmod 774 /usr/local/nagios/bin/ndo*

Configuration de la base de donnée MySQL

Avant que NDO2DB ne puisse écrire des informations dans la base de donnée, il faut créer et configurer cette dernière.

Création de la base de données MySQL NDO:

# mysqladmin -u root -p create ndo

# mysql -u root -p mysql

mysql> GRANT ALL ON ndo.* TO ndouser@localhost IDENTIFIED BY ndopassword;

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Puis on la configure:

# cd /usr/src/ndoutils-1.4b9/db

# ./installdb -u ndouser -p ndopassword -h localhost -d ndo

… Table ‘nagios.nagis_dbversion’ doesn’t exist at ./installdb line 51…

Remarque: vous pouvez ignorer l’erreur.

Configuration de NDO

La configuration de NDO se fait par deux fichiers:

  • ndomod.cfg : configuration de NDOMOD
  • ndo2db.cfg: configuration de NDO2DB

Leux fichiers doivent être initialisés:

# cp config/ndomod.cfg /usr/local/nagios/etc/

# cp config/ndo2db.cfg /usr/local/nagios/etc/

On leurs donne les droits:

# chown nagios:nagios /usr/local/nagios/etc/ndo*

Puis on les édite de la manière suivante:

# vi /usr/local/nagios/etc/ndomod.cfg

instance_name=Central

output_type=unixsocket

output=/usr/local/nagios/var/ndo.sock

tcp_port=5668

output_buffer_items=5000

buffer_file=/usr/local/nagios/var/ndomod.tmp

et:

# vi /usr/local/nagios/etc/ndo2db.cfg

ndo2db_user=nagios

ndo2db_group=nagiosgrp

socket_type=unix

socket_name=/usr/local/nagios/var/ndo.sock

tcp_port=5668

db_servertype=mysql

db_host=localhost

db_name=ndo

db_port=3306

db_prefix=nagios_

db_user=ndouser

db_pass=ndopassword

Configuration de Nagios

Nous allons configurer Nagios pour qu’il passe les informations automatiquement à NDOMOD. Pour celà, il faut éditer le fichier /usr/local/nagios/etc/nagios.cfg et y ajouter les 2 lignes suivantes:

# vi /usr/local/nagios/etc/nagios.cfg

event_broker_options=-1

broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

Attention, si vous faite un copier/coller pour ajouter les lignes de
configuration dans le nagios.cfg, il faut faire attention à la ligne:

broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

qui est sur une seule ligne et pas en deux lignes…

Automatisation du lancement de NDO

NDO n’est pas fourni avec un script de démarrage automatique (au démarrage du serveur). Voici donc un procédure à suivre pour une installation sous GNU/Linux Ubuntu (script à adapter à votre distribution).

Pour automatiser le lancement de NDO au démarrage du serveur, il faut ajouter le script suivant dans le fichier /etc/init.d/ndo2db). Il faut le rendre exécutable:

# sudo chown root:root /etc/init.d/ndo2db

# sudo chmod 755 /etc/init.d/ndo2db

On automatise le lancement du processus ndo2db au démarrage du serveur:

# sudo update-rc.d ndo2db defaults

Test de NDO + Nagios

Pour que votre configuration soit prise en compte, il faut lancer NDO et relancer Nagios:

# /etc/init.d/ndo2db start

# /etc/init.d/nagios restart

Running configuration check…done.

Stopping nagios: No directory, logging in with HOME=/

done.

Starting nagios:No directory, logging in with HOME=/

No directory, logging in with HOME=/

done.

Remarque: vous pouvez ignorer les messages: « No directory, logging in with HOME=/ »

Si tout se passe bien, Nagios devrait commencer à écrire les informations dans la base de donnée MySQL. Pour vous en assurer, allez voir du coté du fichier de log si vous avez les messages suivants:

tail -f /usr/local/nagios/var/nagios.log

[1234886298] Auto-save of retention data completed successfully.

Configuration de NDO pour Centreon

Passons maintenant aux choses sérieuses avec la configuration de NDO pour Centreon. Il faut commencer par modifier la base de donnée MySQL pour prendre en compte Centreon (quand je vous disais bouzin…):

# cd /usr/src/centreon-2.0/www/install

# mysql -u root -p ndo < ./createNDODB.sql

# mysql -u root -p

mysql> GRANT SELECT , INSERT , UPDATE , DELETE ON ndo . * TO ndouser@localhost IDENTIFIED BY ndopassword;

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)

mysql> exit

Nous allons maintenant générer les fichiers de configuration NDO par Centreon. Pour celà, il faut aller dans le menu Configuration/Centreon, puis cliquer sur
le lien ndo2db.cfg dans le menu de gauche et cliquer sur le lien
Principal.

Centreon - IT & Network Monitoring-1.jpg

Saisir la configuration suivante dans l’onglet General (Socket type: Unix et fichier socket /usr/local/nagios/var/ndo.sock):

  • Socket type: unux
  • Socket name: /usr/local/nagios/var/ndo.sock

Centreon - IT & Network Monitoring-11.jpg

Modifier le login/password pour l’accès à la base de donnée NDO (ndouser/ndopassword):

Centreon - IT & Network Monitoring-3.jpg

il faut ensuite aller dans le menu Configuration/Centreon, puis
cliquer sur le lien ndomod.cfg dans le menu de gauche et cliquer sur le
lien Principal.

Centreon - IT & Network Monitoring-12.jpg
Saisir la configuration suivante:
  • Socket type: unixsocket
  • Output: /usr/local/nagios/var/ndo.sock
  • Buffer File: /usr/local/nagios/var/ndomod.tmp
Centreon - IT & Network Monitoring-15.jpg

Enfin nous allons exporter la configuration de Centreon vers Nagios (et donc normalement écraser les anciens fichiers de configuration de NDO).

La première chose à faire est de vérifier que les droits du
répertoire /usr/local/nagios/etc (et de tout ce qui a dessous) sont
compatible avec un écriture qui va être faite par Centreon (donc avec
l’utilisateur www-data):

# chmod -R 664 /usr/local/nagios/etc

Nagios reste le coeur de notre système de supervision. Ainsi quand
un host/service est créé dans l’interface de Centreon (menu
configuration / Hosts / Add), il faut ensuite exporter cette nouvelle
configuration pour qu’elle soit prise en compte par Nagios et donc
affiché dans l’interface de supervision de Centreon.

Il faut pour cela se rendre dans le menu Configuration / Nagios et saisir le formulaire suivant:

Centreon - IT & Network Monitoring-9.jpg

Le résultat de la commande doit être le suivant:

Centreon - IT & Network Monitoring-10.jpg

Il faut également penser à vérifier que l’exportation vers le répertoire de Nagios se passe sans problème (il ne faut PAS de message de type KO dans l’écran précédant).

Cette action est a répéter a chaque fois que vous souhaitez ajouter une configuration depuis Centreon vers Nagios.

Après quelques minutes, les informations
sur l’état de vos machines/services devraient remonter dans Centreon à
travers le module NDO. Pour vérifier que tout ce passe bien à ce
niveau, il faut se rendre dans le menu Monitoring / Event logs et
vérifier qu’il n’y a pas d’erreur au niveau ndomod:

Centreon - IT & Network Monitoring-14.jpg

Et voilà, vous devriez avoir un système opérationnel. En cas de problème pour suivre cette procédure, vous pouvez toujours poser une question sur le forum.

Catégories
Open-source

Mise à jour de Nagios en version 3.1.0

Ce week-end est sortie la version 3.1.0 de Nagios, notre outil de supervision libre favori. Si vous avez suivi la série d’articles suivants pour installer votre serveur Nagios, alors nous allons voir comment mettre à jour Nagios dans cette dernière version.

Attention, à l’heure actuelle (26/01/2009) cette version est une version de développement/test. A ne pas mettre sur un serveur de production.

Nagios.jpg

Les nouveautés de cette version 3.1.0

Le « changelog » traduit en Français est disponible ici. A noter que cette version est mineure et prépare le terrain pour la future version 3.2.0. Au niveau de l’interface Web à noter l’utilisation du langage PHP.

Mise à jour de Nagios 3.1.0 depuis une version 3.0.x

Backup de l’ancienne version

Il est préférable de sauvegarder son ancienne configuration… au cas ou..

   # cd /tmp

# tar zcvfh ./nagios-backup.tgz /usr/local/nagios –exclude var/archives

ATTENTION: mettre deux – avant le exclude

Si quelque chose se passe mal au niveau de la mise à jour, il sera toujours possible de revenir en arrière en saisissant les commandes suivantes:

   # cd /tmp

   # tar zxvf ./nagios-backup.tgz

Téléchargement de la dernière version

Il faut au préalable des opérations suivantes, se loguer en tant qu’utilisateur nagios afin que les fichiers soient générés avec les bons droits.

Sur Ubuntu ou Debian:

   # sudo -s nagios

Puis télécharger la dernière version stable (3.1.0 au moment de l’écriture de ce billet).

   # mkdir src

   # cd src

# wget http://switch.dl.sourceforge.net/sourceforge/nagios/nagios-3.1.0.tar.gz

Compilation et installation

On décompresse puis on lance la compilation:

# tar zxvf nagios-3.1.0.tar.gz

# cd nagios-3.1.0

# ./configure –with-command-group=nagios

ATTENTION: mettre deux – avant le with

   # make all

Si la compilation se termine sans erreur, vous pouvez l’installer sur votre système, sinon je vous conseille de poster votre erreur dans le forum officiel de Nagios:

# make install

# rm -rf /usr/local/nagios/share

# make install-html

Vérification de la configuration et redémarrage de Nagios

On va dans un premier temps vérifier que nos fichiers de configurations sont compatibles avec cette nouvelle version:

   # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

   Si vous avez ce rapport à la fin:

   Total Warnings: 0

   Total Errors: 0

   C’est bon pour vous 😉

Finalement on relance Nagios (en repassant en mode root) dans la nouvelle version:

Sur Ubuntu ou Debian:

# /etc/init.d/nagios restart

Et voilà le travail !

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 4

Nous arrivons bientôt à la fin de l’installation de notre serveur de supervision. Avec Nagios et Centreon il est parfaitement opérationnel. Je trouve cependant qu’il manque encore à Centreon des fonctions de graphes évoluées. C’est pour cela que je propose d’ajouter sur notre bébé un serveur Cacti.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 3

Les deux premiers billet de cette série nous ont permis d’installer le coeur de notre serveur de supervision: le logiciel Nagios. Nous allons donc maintenant nous occuper de l’enrobage: l’interface Web d’administration Centreon.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Centreon offre à Nagios une nouvelle interface et lui apporte de nouvelles fonctionnalités. Il va rendre la configuration de Nagios plus facile et d’avoir une interface graphique améliorée. C’est une interface qui pour moi n’est pas obligatoire mais qui peut s’avérer utile dans certains cas:

  • si une équipe doit gérer le serveur Nagios, il sera plus facile de les former en utilisant Centreon
  • si vous êtes allergique aux fichiers de configuration au format texte
  • si vous êtes un “accro” aux interfaces Web

Attention toutefois, Centreon va générer des fichiers de configuration de Nagios à sa manière. Vous allez donc perdre tout le contrôle sur ces fichiers… Bref si vous êtes un administrateur système soigneux, qui prend soit de commenter/archiver voir gérer en configuration ce type de fichiers, je vous conseille de passer votre chemin et d’attendre le prochain billet de cette série.

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 2

Attention:

avant de suivre ce tutoriel, il faut avoir effectuer toutes les étapes
de la première partie de tutoriel (PART1) qui est disponible ici.

Actuellement le couple NDO / Centreon n’est pas compatible avec Nagios 4.

Dans un premier billet, nous avons installé un serveur GNU/Linux. Il est maintenant temps de passer au chose sérieuse en installant le coeur de notre système: Nagios.

A l’heure ou je rédige ce billet, la dernière version de Nagios est la 3.5.1, hors si on regarde la version disponible dans les packages apt d’Ubuntu, on voit qu’ils sont un peu en retard au niveau des version. C’est donc pour cette raison que je préfère compiler Nagios depuis les sources afin de disposer de la dernière version sur notre serveur de supervision.

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 1

Cela fait maintenant un petit moment que ce blog existe. Il aborde bien des sujets autours des logiciels libres mais il y en a un qui suscite plus d’intérêt que les autres: la supervision système et réseau. La complexité de ces logiciels et la faible documentation Francophone (bien que ce soit en train de changer) y est surement pour quelque chose.

Je propose donc de commencer une série de billets sur l’installation d’un serveur de supervision basé uniquement sur des solutions libres.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Les caractéristiques de ce serveur seront les suivantes:

  • Système d’exploitation: GNU/Linux Ubuntu Server Edition 8.10 ou supérieure
  • Nagios 3.4.1
  • Centreon 2.3.8
  • Cacti 0.8.7i

Trêve de blabla, entrons directement dans le vif du sujet avec l’installation du système d’exploitation et des pré-requis systèmes qui vont servir de base à notre serveur de supervision.

Catégories
Open-source Reseau

Surveiller les interfaces de son Cisco avec Nagios

Qui veut surveiller l’état des interfaces de ses routeurs Cisco doit obligatoirement se plonger dans l’arborescence des MIB SNMP. Heureusement, Patrick Proy a eu la bonne idée d’intégrer dans un seul et même script Perl toutes les fonctions pour répondre à ce besoin.

Nous allons dans ce billet voir comment installer et tester le plugin check_snmp_int.pl puis configurer Nagios pour prendre en compte ce nouveau plugin.

Installation du plugin

Il faut dans un premier temps se rendre dans le répertoire ou les plugin Nagios sont stockés (/usr/local/libexec/nagios par exemple) puis y télécharger la dernière version du plugin (1.4.8 au moment de l’écriture de ce billet):

cd /usr/local/libexec/nagios
wget http://nagios.manubulon.com/check_snmp_int.pl

Ensuite on le rend executable par Nagios:

chown nagios:nagios check_snmp_int.pl
chmod 555 check_snmp_int.pl

Enfin on vérifie que l’utilisateur Nagios (ou celui qui doit lancer Nagios) peut exécuter ce script:

su – nagios
nagios> /usr/local/libexec/nagios/check_snmp_int.pl -h
… la syntaxe va s’afficher …
nagios> exit

Si vous avez une erreur lors de l’éxécution du script, cela peut être dû à l’absence des pré-requis suivants sur votre système:

  • Perl doit être installé dans le répertoire /usr/bin/perl
  • La librairie Perl nommée Net::SNMP doit être installé (via CPAN)
  • Le fichier ‘utils.pm doit être présent dans le répertoire des plugins Nagios

Test du plugin

Nous allons dans un premier temps chercher la liste des interfaces réseau du routeur Cisco (ou autre compatible avec MIB-2 standard) à superviser:

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n zzzz -v
Alarm at 15 + 5
SNMP v1 login
Filter : zzzz
OID : 1.3.6.1.2.1.2.2.1.2.26, Desc : Async54
OID : 1.3.6.1.2.1.2.2.1.2.28, Desc : Async56
OID : 1.3.6.1.2.1.2.2.1.2.18, Desc : Async46
OID : 1.3.6.1.2.1.2.2.1.2.12, Desc : Async40
OID : 1.3.6.1.2.1.2.2.1.2.31, Desc : Async59
OID : 1.3.6.1.2.1.2.2.1.2.19, Desc : Async47
OID : 1.3.6.1.2.1.2.2.1.2.22, Desc : Async50
OID : 1.3.6.1.2.1.2.2.1.2.34, Desc : Async62
OID : 1.3.6.1.2.1.2.2.1.2.13, Desc : Async41
OID : 1.3.6.1.2.1.2.2.1.2.23, Desc : Async51
OID : 1.3.6.1.2.1.2.2.1.2.4, Desc : Null0
OID : 1.3.6.1.2.1.2.2.1.2.35, Desc : Loopback0
OID : 1.3.6.1.2.1.2.2.1.2.30, Desc : Async58
OID : 1.3.6.1.2.1.2.2.1.2.5, Desc : Async33
OID : 1.3.6.1.2.1.2.2.1.2.11, Desc : Async39
OID : 1.3.6.1.2.1.2.2.1.2.1, Desc : Ethernet3/0
OID : 1.3.6.1.2.1.2.2.1.2.39, Desc : Virtual-Access2
OID : 1.3.6.1.2.1.2.2.1.2.14, Desc : Async42
OID : 1.3.6.1.2.1.2.2.1.2.37, Desc : Virtual-Template1
OID : 1.3.6.1.2.1.2.2.1.2.16, Desc : Async44
OID : 1.3.6.1.2.1.2.2.1.2.20, Desc : Async48
OID : 1.3.6.1.2.1.2.2.1.2.17, Desc : Async45
OID : 1.3.6.1.2.1.2.2.1.2.29, Desc : Async57
OID : 1.3.6.1.2.1.2.2.1.2.36, Desc : Tunnel0
OID : 1.3.6.1.2.1.2.2.1.2.3, Desc : Serial3/1
OID : 1.3.6.1.2.1.2.2.1.2.25, Desc : Async53
OID : 1.3.6.1.2.1.2.2.1.2.2, Desc : Serial3/0
OID : 1.3.6.1.2.1.2.2.1.2.7, Desc : Async35
OID : 1.3.6.1.2.1.2.2.1.2.33, Desc : Async61
OID : 1.3.6.1.2.1.2.2.1.2.9, Desc : Async37
OID : 1.3.6.1.2.1.2.2.1.2.6, Desc : Async34
OID : 1.3.6.1.2.1.2.2.1.2.15, Desc : Async43
OID : 1.3.6.1.2.1.2.2.1.2.10, Desc : Async38
OID : 1.3.6.1.2.1.2.2.1.2.27, Desc : Async55
OID : 1.3.6.1.2.1.2.2.1.2.32, Desc : Async60
OID : 1.3.6.1.2.1.2.2.1.2.8, Desc : Async36
OID : 1.3.6.1.2.1.2.2.1.2.21, Desc : Async49
OID : 1.3.6.1.2.1.2.2.1.2.24, Desc : Async52

Il faut ensuite noter le nom système des interfaces à surveiller (par exemple Serial 3/0 et Serial 3/1 dans mon cas).

Puis on lance ensuite la commande pour vérifier l’état de l’interface Serial 3/0:

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n « Serial3/0 » -r
Serial3/0:UP:1 UP: OK

On a donc maintenant la commande à éxécuter, il ne reste plus qu’a l’intégrer dans notre configuration de Nagios.

Configuration de Nagios

On commence par se rednre dans le répertoire ou se trouve les fichiers de configuration de Nagios (/usr/local/etc/nagios par exemple):

cd /usr/local/etc/nagios

Puis si vous êtes sous Nagios 3.x ou supérieur dans le sous-répertoire objects:

cd objects

Enfin on édite le fichier commands.cfg puis on y ajoute la section suivante:

###################
# check_snmp_int.pl
###################

# ‘check_snmp_int.pl’, vérifier l’état de l’interface reseau
define command{
command_name    check_snmp_int
command_line    $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -r
}

On vient donc de créer une nouvelle commande Nagios qui appelera le plugin check_snmp_int avec deux paramètres:

  • $ARG1$: nom de la communauté SNMP à utiliser (public la plupart du temps)
  • $ARG2$: nom de l’interface à superviser

Enfin , on ajoute un nouveau service pour le routeur Cisco à superviser (par exemple dans le fichier network.cfg):

define host{
use             routeur
host_name       cisco
alias           Routeur liaison WAN
address         <adresseIProuteurcisco>
}
define service{
use                     generic-service
host_name               cisco
service_description     LS 1
check_command           check_snmp_int!public!« Serial3/0 »
}

Et si en plus je veux…

…surveiller la bande passante utilisée et envoyer une alerte si celle-ci dépasse un certain seuil ? Aller Noël n’est pas si loin…

Il suffit de créer une nouvelle commande Nagios et d’utiliser l’option -k du plugin. Par exemple pour surveiller un interface Serial3/0 et emmettre une alerte de warning si  débit dépasse 1.6 Mbps puis une alerte critique si ce dernier passe la barre des 1.9 Mbps ?

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n « Serial3/0 » -k -w 1600,1600 -c 1900,1900

Je vous laisse convertir cette commande système vers une commande Nagios, cela vous fera un bon exercice 😉

Catégories
Open-source Systeme

Installation de Nagios sur FreeBSD

FreeBSD étant, à mon humble avis, le meilleur « operating system » pour les fonctions réseaux, il était normal qu’un blog comme le mien s’intéresse à l’installation de Nagios, l’outil de supervision open-source, sur ce système.

Le but de ce tutoriel est d’installer Nagios version 3.0.6 sur un serveur FreeBSD 7.0. Je pars sur l’hypothèse ou le lecteur a des connaissances de bases sur FreeBSD.

Avant de commencer…

On s’assure que notre FreeBSD est à jour au niveau de l’arbre des ports (« port tree »).

portsnap fetch
portsnap update

On installe les pre-requis

Avant de se lancer dans l’installation de Nagios, un certain nombre de logiciels doivent être présent sur votre système.

Serveur et client – MySQL

Le serveur MySQL hébergera la base de donnée ou Nagios stockera les informations sur les réseaux supervisés.

cd /usr/ports/databases/mysql50-server
make
make install
make clean

cd /usr/ports/databases/mysql50-client
make
make install
make clean

cd /usr/ports/databases/mysql50-scripts
make
make install
make clean

On édite ensuite le fichier /etc/rc.conf pour y ajouter la ligne suivante:

mysql_enable= »YES »

Puis on lance le daemon:

/usr/local/etc/rc.d/mysql-server start

Enfin on effectue les configurations de base:

mysqladmin -u root password ‘votremotdepasse’

mysql -u root -p

mysql> DROP DATABASE test;

mysql> DELETE FROM mysql.user WHERE user =  »;

mysql> FLUSH PRIVILEGES;

Serveur Web – Lighttpd

J’ai choisi d’utiliser Lighttpd en lieu et place d’Apache pour hébérger l’interface Web de Nagios. En effet, ce seveur est moins gourmant et tout aussi rapide.

cd /usr/ports/www/lighttpd
make
make install
make clean

Pour une installation plus détaillée (avec support PHP), je vous conseille la lecture de ce billet (en Anglais).

On édite ensuite le fichier /etc/rc.conf pour y ajouter la ligne suivante:

lighttpd_enable= »YES »

On configure le serveur:

vi /usr/local/etc/lighttpd.conf

server.document-root        = « /usr/local/www/ »

# Nagios
alias.url =     (
« /nagios/cgi-bin » => « /usr/local/www/nagios/cgi-bin »,
« /nagios » => « /usr/local/www/nagios »
)

$HTTP[« url »] =~ « ^/nagios/cgi-bin » {
cgi.assign = ( «  » => «  » )
}

$HTTP["url"] =~ "^/nagios/cgi-bin" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/usr/local/etc/nagios/passwd"
        auth.require = ( "" => (
                "method" => "basic",
                "realm" => "nagios",
                "require" => "user=nagiosadmin"
                )
        )
}

$HTTP["url"] =~ "^/nagios" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/usr/local/etc/nagios/passwd"
        auth.require = ( "" => (
                "method" => "basic",
                "realm" => "nagios",
                "require" => "user=nagiosadmin"
                )
        )
}

Avant de lancer le serveur il faut créer le fichier de log avec les bon droits:

touch /var/log/lighttpd.error.log
chown www:www touch /var/log/lighttpd.error.log

touch /var/log/lighttpd.access.log
chown www:www /var/log/lighttpd.access.log

Puis on lance le daemon:

/usr/local/etc/rc.d/lighttpd start

La configuration de Lighttpd est la suivante par défaut:

  • Fichier de configuration: /usr/local/etc/lighttpd.conf
  • Emplacement par défaut du site (« document root ») : /usr/local/www/data/
  • Utilisateur et groupe avec lequel Lighttpd est lancé: www

Installation de Nagios à partir des ports

On doit dans un premier temps se rendre dans le répertoire /usr/port/net-mgmt/nagios. On vérifie la version que l’on va installer en consultant le fichier distinfo:

cd /usr/ports/net-mgmt/nagios
cat distinfo
MD5 (nagios-3.0.6.tar.gz) = 900e3f4164f4b2a18485420eeaefe812
SHA256 (nagios-3.0.6.tar.gz) = bedeb2c1ffbf7525ec19ac84a66bad60a19d2b0544cbf050a53bfc363c09bb22
SIZE (nagios-3.0.6.tar.gz) = 2735504

On lance ensuite l’installation du serveur et des plugins Nagios:

cd /usr/port/net-mgmt/nagios
make WITH_MYSQL= »YES »
> EMBEDDED_PERL = X
make install
make clean

cd /usr/port/net-mgmt/nagios-plugins
make
make install

On édite ensuite le fichier /etc/rc.conf pour y ajouter la ligne suivante:

nagios_enable= »YES »

La configuration initiale est la suivante:

  • Script de démarrage du service Nagios: /usr/local/etc/rc.d/nagios
  • Localisation du serveur (executable): /usr/local/bin/nagios
  • Répertoire de configuration: /usr/local/etc/nagios
  • Répertoire des plugins: /usr/local/libexec/nagios
  • Répertoire racine pour le service Web: /usr/local/www/nagios

Avant de lancer le serveur, il faut aller dans le répertoire de configuration et configurer votre serveur en fonction de vos besoins. Vous pouvez lire le billet suivant pour vous aider.

Une fois la configuration faite et validée par la commande suivante:

/usr/local/bin/nagios -v /usr/local/etc/nagios/nagios.cfg

Total Warnings: 0
Total Errors: 0

Il faut ensuite créer le fichier passwd préhalablement configuré dans Lighttpd:

cd /usr/ports/www/rubygem-htauth
make
make install
make clean

htpasswd-ruby -c /usr/local/etc/nagios/passwd admin

Enfin on lance le daemon Nagios:

/usr/local/etc/rc.d/nagios start

Vous pouvez tester le tout en utilisant un navigateur Web et en saisissant l’URL: http://<adresseIPduserveur>/nagios/

Et voili, c’est beau, c’est stable, c’est simple, c’est BSD !!!

Quelques commandes pour finir

Vérifier la syntaxe des fichiers de configurations:

/usr/local/bin/nagios -v /usr/local/etc/nagios/nagios.cfg

Arrêter le daemon Nagios:

/usr/local/etc/rc.d/nagios start

Relancer le daemon Nagios:

/usr/local/etc/rc.d/nagios restart