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 Systeme

CactiPlug v0.2 pour lier Cacti et Nagios

CactiPlug est un plugin que j’ai développer pour lier facilement Cacti (outils de génération de graphe RRD) et Nagios (outils de supervision).


Dennis Yusupoff, un lecteur russe du blog a apporté quelques modifications pratiques:

  • utilisation des hosts name en plus des adresses IP
  • redirection vers une page centralisant l’ensemble des services supervisés

La nouvelle version est disponible ici, la procédure d’installation reste inchangée (consultable là).

Vive l’open-source…

Catégories
Developpement Open-source Reseau

Lier Cacti et Nagios

Si vous suivez régulièrement ce blog, vous savez que Nagios et Cacti sont deux logiciels libres que je suis tout particulièrement de part mes activités professionnelles. Je cherchais depuis un moment un moyen simple et efficace pour pouvoir accéder aux graphes de Cacti à partir de l’interface de Nagios.

Ne trouvant rien de concluent sur le Web, j’ai décidé de coder un petit script PHP, nommé CactiPlug.php, permettant d’ajouter cette fonction à Nagios.

Mises à jour:

  • Amélioration de J.Montanard, le plugin est disponible en version 0.21.
  • Grâce à la contribution de Dennis Yusupoff, le plugin est maintenant disponible en version 0.2.

Concrètement cela donne quoi ?

Et bien la possibilité d’ajouter automatiquement un lien vers Cacti depuis l’interface Web de Nagios. Il suffit donc juste de cliquer sur un bouton (Image 1.png ) pour être redirigé automatiquement vers la page correspondante au host en question dans Cacti.

Nagios.jpg Cacti.jpg

Comment marche le hack CactiPlug.php ?

On utilise la macro « action_url » dans la définition du host (ou mieux du template associé au host) que l’on défini avec la valeur suivante:


action_url /nagios/cactiplug/cactiplug.php?ip=$HOSTADDRESS

Quand on clique sur le bouton (Image 1.png ), le script cactiplug.php est appelé. Ce dernier va prendre en paramètre l’adresse IP du host (macro $HOSTADDRESS) et interroger directement la base de donnée MySQL de Cacti pour obtenir l’URL de la page Cacti correspondante.

Installation de cactiPlug.php

L’installation donnée ci-dessous a été validé avec Nagios 3.2 et Cacti 0.8.7.

La première chose à faire est de télécharger le script cactiplug.

# wget https://raw.github.com/nicolargo/cactiplug/master/cactiplug.php

Puis ensuite de saisir les commandes suivantes:

# mkdir /usr/local/nagios/share/cactiplug

# cp cactiplug.php /usr/local/nagios/share/cactiplug

# chown -R nagios:nagios /usr/local/nagios/share/cactiplug

Ensuite il faut configurer Nagios pour qu’il prenne en compte le plugin. Le plus simple est d’ajouter la ligne suivante dans le template generic_host du fichier template.cfg (voir ici vous êtes perdu dans les fichiers de conf de Nagios).

define host{

name generic-host

notifications_enabled 1

event_handler_enabled 1

flap_detection_enabled 1

failure_prediction_enabled 1

process_perf_data 1

retain_status_information 1

retain_nonstatus_information 1

notification_period 24×7

register 0

action_url /nagios/cactiplug/cactiplug.php?ip=$HOSTADDRESS

}

Configuration du plugin

La dernière étape consiste à éditer le fichier /usr/local/nagios/share/cactiplug/cactiplug.php afin d’y saisir les informations relatives à votre base de données Cacti (host, nom de la base, login et password).

Ensuite, il ne reste plus qu’a relancer Nagios:

# service nagios restart

ou

# sudo /etc/init.d/nagios restart

J’attend vos retours si vous testez ce plugin.

Catégories
Open-source Reseau

Des cartes réseaux comme chez Free

Vous êtes admiratifs des cartes réseaux proposées sur le site de l’opérateur pour afficher en temps (presque) réel l’état de leurs liaisons ? Vous voulez faire la même chose chez vous ? Alors ce tutorial est fait pour vous…

Nous allons pour cela utiliser le logiciel open-source WeatherMap4RRD. Ce dernier peut produire des cartes de ce type:

cartefree.png

Vous avez besoin de quoi:

  • d’un logiciel permettant de produire des fichiers RRD (par exemple MRTG ou CACTI). Ces fichiers servirons de sources pour la production de la carte.
  • d’une carte de votre infrastructure (par exemple une carte de France ou de votre bâtiment) au format PNG mais n’est pas obligatoire…
  • d’un système d’exploitation de type Linux ou Windows avec un Apache/PHP correctement configuré.
  • de ce tutorial…

Installation de WeatherMap4RRD

La dernière version (1.2) date de décembre 2005 et elle est téléchargeable à cette adresse. Il existe deux versions: une version Perl (à lancer automatiquement par crontab et qui génère la carte sous la forme d’un fichier) et une version PHP qui génère directement une page HTML avec la carte. J’ai choisi pour ce tutorial d’installer cette deuxième version (le Linux magazine de mars 2008 parle de la version Perl).

# wget http://weathermap4rrd.tropicalex.net/get_file.php?id=19&path=/code&filename=weathermap4rrd-php-1.2final.tgz

# tar zxvf weathermap4rrd-php-1.2final.tgz
# cp -R weathermap4rrd-php-1.2final /var/www/html/weathermap4rrd
(remplacer /var/www/html/ par la racine de votre serveur Web)

En pointant un navigateur Web vers l’adresse de votre serveur vous devriez voir une carte par défaut.

http://localhost/weathermap4rrd

Si vous rencontrez l’erreur suivant:

WeatherMap4RRD 1.2 : An error occured : file /weathermap.conf not found. You should check that /weathermap.conf file exists.

Il est fort possible que cela vienne du fait que le script PHP n’arrive pas à trouver le fichier weathermap.conf dans votre arborescence de fichier. Le plus simple est alors de le passer un paramètre au script PHP:

http://localhost/weathermap4rrd/index.php?config=/var/www/html/weathermap4rrd/weathermap.conf

Configuration de WeatherMap4RRD

Il faut éditer le fichier weathermap.conf avec votre éditeur de texte favori.

La première chose à faire est de déclarer le nom de l’image de fond (si vous n’en avez pas, commentez la ligne avec un #). Il faut préciser au script la taille de l’image (comme si il ne pouvait pas le faire tout seul…)

BACKGROUND macarte.png

HEIGHT 800

WIDTH 421

On continue en fixant la taille de la fonte (valeur de 1 à 5), personnellement, je trouve que 1 est une bonne valeur pour la lisibilité.

FONT 1

Ensuite on fixe la position et les caractéristiques de la légende.

LEGENDPOS 500 380

LEGENDSTYLE line

Ensuite on fixe la position et les caractéristiques du titre de la cartee

TITLE « Ma carte à moi »

TITLEPOS 0 1

TITLEBACKGROUND 255 255 255

TITLEFOREGROUND 0 0 0

On doit ensuite configurer l’emplacement des fichiers HTML et PNG générés par le script (attention, le répertoire doit être en lecture/écriture pour l’utilisateur apache):

OUTPUTFILE /var/www/html/weathermap4rrd/weathermap.png

HTMLFILE /var/www/html/weathermap4rrd/weathermap.html

On entre enfin dans le vif du sujet en définissant les noeuds de notre réseau et les liaisons entre ces noeuds.

NODE PointA
POSITION 300 300
LABELTYPE round

NODE PointB
POSITION 550 75
LABELTYPE round

LINK A-B
NODES PointA – PointB
TARGET /usr/share/cacti/rra/firewall_traffic_in_130.rrd
INPOS 2
OUTPOS 1
UNIT bytes
BANDWIDTH 2000 4000
DISPLAYVALUE 1

La principale difficulté est de trouver l’emplacement du fichier RRD correspondant à cette liaison. Sous Cacti, le plus simple est d’aller dans le menu « Data sources » de la console d’administration, d’aller dans les détails de la liaison et de regarder le nom du fichier RRD.

Cacti.jpg

Une fois le fichier de configuration sauvegardé, votre nouvelle carte devrait s’afficher sans aucun problème !

Si vous avez besoin d’aller plus loin dans la configuration, je vous conseille cette lecture sur le site officiel (en Anglais).

Catégories
Open-source Reseau

Upgrader Cacti en version 0.8.7d

Une nouvelle version de Cacti vient d’être publiée (version marquée 0.8.7d), les améliorations sont décrites ici. Voici donc un tutoriel pour mettre à jour votre Cacti dans cette nouvelle version.

Télécharger la dernière version de cacti sur le site Web:

# cd /tmp
# wget http://www.cacti.net/downloads/cacti-0.8.7d.tar.gz
# tar zxvf cacti-0.8.7d.tar.gz

Archiver l’ancienne version (le répertoire /usr/share est le répertoire racine de cacti sous Fedora, il peut changer sur d’autres distributions):

# cd /usr/share
# mv cacti cacti.old
# mv /tmp/cacti-0.8.7d .
# ln -s cacti-0.8.7d cacti

Il faut ensuite éditer le fichier ./cacti/include/config.php et reproduire la configuration de la base de donnée MySQL qui se trouve dans l’archive ./cacti.old/include/config.php ou ./cacti.old/include/db.php (selon les versions).

# vi ./cacti/include/config.php
$database_type = « mysql »;
$database_default = « cacti »;
$database_hostname = « localhost »;
$database_username = « cactiuser »;
$database_password = « cactiuser »;
$database_port = « 3306 »;

Il ne reste plus qu’a récupérer les archives RRA, les scripts et les ressources depuis l’ancienne version et changer les droits d’accès comme ils étaient sur l’ancienne version:

# cp cacti.old/rra/* cacti/rra/
# cp -u cacti.old/scripts/* cacti/scripts/
# cp -u -R cacti.old/resource/* cacti/resource/
# chown -R cactiuser cacti/rra/ cacti/log/

Enfin, vous pouvez vous rendre à l’URL suivante: (par exemple) http://localhost/cacti/

Catégories
Open-source Reseau

Nagios vs Solutions payantes ?

Un lecteur m’a posé, par mail, la question suivante:


je suis à la recherche d’un produit de supervision et je trouve des produits
comme Patrol visualis, Spectrum, HP Open View…. aux prix exorbitants
– j’aurai à superviser: 20 switchs cisco, 10 routeurs cisco, des serveurs windows
2003, ISA, exchange et 60 cisco pix (en VPN ipsec et en extrémité un ISA) soit
environ 100 équipements snmp.
– ma priorité étant les « cisco pix » afin de détecter les ruptures de ligne adsl
et par exemple permettre d’envoyer un mail, sms avec une remontée d’alerte
visuelle sur le produit de supervision…
– obtenir des graphiques sur la bande passante utilisée…
– les équipements non snmp, peut-on les gérer par un ping à intervalle régulier ?
Ce produit est-il difficile à mettre en oeuvre ? (mes connaissances linux dates de 5 ans).


Ce genre de question revient régulièrement quand on doit faire le choix entre une solution open-source et une solution payante. Dans ce cas précis et au vu du nombre relativement faible de machine à « monitorer », je pense qu’une solution à base de Nagios (pour le monitoring) et de Cacti (pour la génération des graphes de bande passante ou autres) est la meilleure.

En effet, une des qualités première de Nagios est son architecture facilement adaptable à l’environnement, notamment grâce à l’utilisation de plugins. Notre lecteur dispose d’un parc composé en majorité de machine compatible SNMP, il sera donc très facile d’adapter Nagios aux besoins des utilisateurs. Il existe même des sites comme Nagios Exchange permettant de trouver facilement des extensions spécifiques pour les équipements Cisco et les serveurs Windows. Pour les équipements non compatibles SNMP, il est bien sur possible de les surveiller grâce à des « ping ». Pour être plus précis, on passe alors par un système de scripts permettant de faire un peu ce que l’on veut (faire une ping, émuler une requête HTTP, tester une connection telnet…). En ce qui concerne la remontée des alarmes, Nagios dispose de tout un panel de possibilité: message dans l’interface Web, message dans fichier syslog, mail, SMS (si vous disposez d’un serveur SMS).

Bien que l’installation de Nagios soit relativement simple, il faut avouer que les taches d’administrations (ajout/modification/suppression de machine) sont un peu lourdes. Elles peuvent cependant être faite par n’importe quel utilisateur maitrisant les bases d’un OS Linux. Si vous souhaitez toutefois avoir un support professionnel, de nombreuses SSII offrent leurs services pour l’installation et la maintenance de telles solutions.

L’archivage des l’utilisation de la bande passante n’est par contre pas une fonction inclue dans Nagios, je conseille pour cela l’utilisation d’un autre logiciel: Cacti. Ce dernier se présente lui aussi comme une interface Web et est bien plus simple à utiliser que des graphes MRTG.

Catégories
Reseau

Cacti, le complement idéal de Nagios !

Nous allons dans ce post parler de l’installation de Cacti, qui me semble offrir des fonctions complémentaires à Nagios déjà évoqué dans ce blog.

C’est quoi donc ?

Cacti est une interface Web écrite en PHP permettant de gérer des graphes RRD. Ces graphes RRD peuvent avoir comme source le résultat de n’importe quelle requêtes SNMP ou d’un simple script. Cela permet donc une large possibilitée d’utilisation. La gestion se fait par des menus relativement simple à utiliser (il faut tout de même un temps de prise en main mais la documentation est très bien faite).

Configuration nécessaire

Un operating system (Unix de préference)
Un serveur Web fraichement installé (Apache par exemple).
Une base de données MySQL.
Les sources de Cacti ou un package pour votre operating system.

Installation de cacti (exemple donnée pour une Fedora Core 6)

Update: cliquez ici pour voir un nouvel article sur une procédure d’upgrade en version 0.8.7 

Il faut commencer par installer les utilitaires SNMP:

# yum install net-snmp net-snmp-utils

Puis Cacti en lui même (on utilise le package du repos extra):

# yum install cacti

Avant toute chose, nous allons ajouter la configuration nécessaire pour que le serveur Web (Apache) prenne en compte cacti:

# cd /etc/httpd/conf.d/
# vi cacti.conf
Alias /cacti/ /usr/share/cacti/
<Directory /cacti/>
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# apachectl restart

Après vous être placé dans le répertoire d’installation, il faut créer la base de donnée MySQL (on part sur l’hypothése ou la base de donnée est sur le même serveur):

# mysqladmin –user=root create cacti
# mysql cacti < cacti.sql
# mysql –user=root mysql
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘somepassword’;
mysql> flush privileges;

… et la configurer en éditant le fichier include/config.php:

# vi include/db.php
<?
/* make sure these values refect your actual database/host/user/password */
$database_type = « mysql »;
$database_default = « cacti »;
$database_hostname = « localhost »;
$database_username = « cactiuser »;
$database_password = « password »;
$database_port = « 3306 »;
?>

Nous pouvons alors lancer un navigateur Web sur l’URL: http://votreadresseip/cacti/
Au premier lancement, une page de configuration va apparaître. Vous devez choisir RRD (dernière version).

Il est parfois nécessaire de changer les droits du répertoire de travail de Cacti:

# cd /usr/share/cacti/
# chown -R cacti rra/ log/

La dernière étape va automatiser le lancement de cacti toutes les 5 minutes:

# crontab -e -u cacti
*/5 * * * * /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

Et voila, vous avez maintenant un bel outils pour générer toutes les courbes RRD possibles 😉