Partie 3: Server Cacti

2-Zabbix:


Zabbix est une solution de supervision système développée par Alexei Vladishev depuis 2001. 
Zabbix est conçu pour superviser des réseaux, et de surveiller les statuts de différents services, systèmes et réseaux. Il utilise une base de données pour stocker les informations et se configure à travers une interface Web. 
Il se base sur les protocoles de communication connus (SNMP, HTTP, etc.), ce qui permet une surveillance avec ou sans agent . Il permet de produire des graphiques et des alertes avec envoi de notifications (email, SMS). 
Le cœur de Zabbix est codé en C. L’interface web est quant à elle, développée en PHP et en JavaScript. Il est livré sous la licence GPL v2. A souligner que La partie serveur s’installe uniquement sur Linux, contrairement au partie agent, qui est disponible sur des divers systèmes d’exploitation (Windows, Linux, Solaris, FreeBSD, …etc). 

Globalement, Zabbix reprend les idées mises en oeuvre dans Nagios/Centreon. 




3-MRTG: Multi Router Traffic Grapher


Logiciel Open source sous licence GPL créé et maintenu par Tobias Oetiker et Dave Rand. Le logiciel MRTG a passé par 3 phases principales : 

-MRTG-1 :
Créé pendant l’été 1994 et codé uniquement en Perl

-MRTG-2 : Janvier 1997
Remplacement par du code en C ANSI et utilisation d’un outil cfgmaker

-MRTG-3 : Novembre 1997
Codage des parties critiques en C ANSI plus amélioration des temps de calcul

C’est un outil multi-fonctions :

   •Collecte périodiquement des données de type SNMP et autres
   •Produit du code HTML contenant les courbes des données recueillies
   •Archive automatiquement les données dans des fichiers de log de taille constante (quotidien, hebdomadaire, mensuel et annuel)
   •Permet à l’utilisateur de définir des programmes en entrée


3.2 Format du Cfgfile:

#----- CPU load -------------------------

 Target[someserver.load]: 1.3.6.1.4.1.2021.10.1.3.1&.1.3.6.1.4.1.2021.10.1.3.2:readcommunity at so meIP * 100 
 Title[someserver.load]: CPU Load for someserver.somewhere.com 
 MaxBytes[someserver.load]: 20
 AbsMax[someserver.load]: 500
 Options[someserver.load]: gauge
 Shortlegend[someserver.load]: bogomips
 YLegend[someserver.load]: Load 
 LegendI[someserver.load]: Load-1 
 LegendO[someserver.load]: Load-5 
 Legend1[someserver.load]: 1 Minute Load Average
 Legend2[someserver.load]: 5 Minute Load Average 
 PageTop[someserver.load]: 


 


Partie 3: Server Cacti


3.1 Généralités



Cacti est un logiciel de supervision qui est un front-end de RRDTool. Il est basé sur un serveur web avec une base de données MySQL et PHP. Il est destiné a surveiller l'activité de toute architecture informatique à partir de graphiques. Cela nécessite l’installation d’un serveur LAMP (Linux, Apache,Mysql, Php) pour fonctionner, Apache pour l’interface web, Mysql pour stocker les données et Php pour le langage machine.

Autrement dit, CACTI permet de représenter graphiquement divers statuts de périphériques réseau utilisant SNMP ou encore grâce à des scripts (Bash, PHP, Perl, VBs...) pour assembler les informations concernés . 
Cette solution n'est donc pas destinée à alerter en temps réel sur les dysfonctionnements d'un système mais bien de proposer une vision dans le temps de l'évolution d'indicateurs matériels et logiciels. 

Cacti est écrit comme une collection de scripts PHP dont Le script clé est “poller.php”, qui tourne toutes les 5 minutes (par défaut). Il réside dans /usr/share/cacti/site. 
Cacti utilise RRDtool pour créer les graphiques pour chaque équipement via les données statistiques qui sont récupérés de cet équipement. Vous pouvez ajuster tout ceci depuis l’interface Web de Cacti. 

3.2- RRD Tool

: Round Robin Database  

RRD est l'acronyme de « Round Robin Database » équivalent a « base de données cyclique».
C’est une base de données métriques qui génère de graphiques et qui est basée sur le développement de MRTG. 
Un fichier RRD peut inclure plusieurs RRA (Round Robin Archive) qui correspondent aux différents cycles de surveillance des données (jour, semaine, mois, année, etc.). 

Le mécanisme RRDTool permet d’entreposer des données dans des fichiers de taille fixe, définie à la création, par un mécanisme de pile LILO (Last In Last Out). RRDTool permet de stocker toutes les informations de supervision réseau et de générer des graphiques. MRTG est utilisé pour récupérer ces informations avec SNMP. 

Le programme RRDtool est créé et maintenu par son auteur Tobias Oetiker dès 1995. Il est librement téléchargeable sur le site suivant :
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/.
Les fichiers RRD sont situés dans « /var/lib/cacti/rra » quand Cacti est installé à travers Debian/Ubuntu. 

L’istallation manuel du RRDTool ce fait comme suivant:
        sudo su
           apt-get install libpango1.0-dev libxml2-dev
           wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz
           tar -zxvf rrdtool-1.4.7.tar.gz
           cd rrdtool-1.4.7
           mkdir /tmp/rrdbuild
           export BUILD_DIR=/tmp/rrdbuild
           mkdir /opt/rrdtool-1.4.7
           export INSTALL_DIR=/opt/rrdtool-1.4.7
          ./configure –prefix=$INSTALL_DIR ; make ; make install


RRDTOOL est présentement installé dans /opt/rrdtool-1.4.7 

Adressage du Binding php5-RRDtool :
        apt-get install php5-cli php5-dev
        mkdir -p /usr/local/src/php-5.3.5/ext
        cd /usr/local/src/php-5.3.5/ext
        wget http://oss.oetiker.ch/rrdtool/pub/contrib/php_rrdtool.tar.gz
        tar -zxvf php_rrdtool.tar.gz
        cd rrdtool
        phpize
       ./configure –with-rrdtool=/opt/rrdtool-1.4.7 –with-php-config=/usr/bin/php config
        Make
        make install


La commande suivante initialise un fichier RRD :
 
   # rrdtool create RRddb.rrd \
        --start 1120082400 \
          DS:vitesse:COUNTER:600:U:U \
          RRA:AVERAGE:0.5:1:24 \
          RRA:AVERAGE:0.5:6:10





-------------------------------------------------- 

3.3 - Cacti Fonctionnement

Installation du Cacti sur Ubuntu:

Pour effectuer l’installation du Cacti, il faut avoir le serveur LAMP . 
Cacti a besoin des paquets Ubuntu rrdtool, php5, php5-mysql, php5-cli, snmp. La mémoire pour PHP5 est de 128 Mo recommandée à modifier dans /etc/php5/apache2/php.ini

  wget http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz
  tar xzf cacti-0.8.7b.tar.gz 
  sudo mv cacti-0.8.7b.tar.gz /var/www/cacti 
  cd /var/www/cacti 
  sudo chown -R www-data:www-data /var/ww/cacti 


Créer la base de données et le compte associé sur MySQL 
 CREATE USER 'cacti'@'localhost' IDENTIFIED BY '****************';   
 GRANT USAGE ON * . * TO 'cacti'@'localhost' IDENTIFIED BY '****************' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; 
 CREATE DATABASE IF NOT EXISTS `cacti` ;   
 GRANT ALL PRIVILEGES ON `cacti` . * TO 'cacti'@'localhost'; 

Injecter le dump de la base dans la base ainsi créée. 
 mysql -u root -p cacti < cacti.sql 


Editer le fichier include/config.php pour y renseigner les paramètres de connexion à la base de données 
 $database_type = "mysql"; 
 $database_default = "cacti"; 
 $database_hostname = "localhost"; 
 $database_username = "cactiuser"; 
 $database_password = "cactipass"; 
 $database_port = "3306"; 

Il ne reste plus qu’à se rendre sur /cacti/install/ en se connectant au serveur sur lequel Cacti est installé et de répondre aux quelques écrans proposés. 
 
 
 

Tout est en place au niveau des programmes externes dont a besoin Cacti pour fonctionner. Il est maintenant possible de se connecter sur l’interface de Cacti avec admin comme identifiant et cacti comme mot de passe. Il vous est demandé de le changer immédiatemment après. Pour finir, exécuter le poller toutes les 5 minutes par exemple avec une tâche cron. 
 sudo nano /etc/cron.d/cacti 

Y mettre cette ligne 
 */5 * * * * www-data php /var/www/cacti/poller.php > /dev/null 2>&1 


Dans ce qui vient, on va presenter les etapes necessaires pour manipuler l'interface web du Cacti:
Management -> Devices -> Add
Indiquer les attributs de l’équipement
 – Nous allons ajouter une configuration pour notre routeur de sortie, gw.ws.nsrc.org*
Ajout d’un Équipement *Actual


La figure suivante montre la création d’un nouveau Équipement 


Après avoir créer le “hote”, on peut créer le graphe relie a cet équipement 



L'équipement ajouté détecte automatiquement les interfaces reliées 



•Les Graphes créés peuvent être placee dans des arbre selon un critere choisi 

Comments