Surveillance

Garder un œil sur tout, en permanence, ce n'est pas toujours possible.. Un peu d'aide ne sera pas de trop.



Souvent, lorsque l'on parle de monitoring, ce sont des outils comme Nagios qui apparaissent comme les solutions les plus pratiques, ou tout du moins les plus usitées.

Pourtant, si Nagios est idéal pour la surveillance en temps réel et les alertes automatiques par mail (ou autre), dès qu'il s'agit d'obtenir des statistiques ou des graphiques (directeurs compliant) sur tel ou tel autre paramètre, il faut avoir recours à des produits annexes comme Centreon, Nagvis, etc..

De plus, la configuration fine de Nagios et de ses dérivés n'est pas sans difficultés pour les non initiés. Un tuto est d'ailleurs en cours à partir de cette page..


Voici donc un petit outil accessible, non pas pour remplacer totalement Nagios, mais pour obtenir infos et graphiques relatifs aux fonctions essentielles, sur des périodes définies, au travers de n'importe quel navigateur.
Cette procédure est valable pour toutes les versions 5.x et 6.x de CentOS / RHEL.

monitorix2


Pré-requis et Installation de Monitorix sur CentOS


Monitorix est disponible via les dépôts Rpmforge (au besoin, consultez notre page dédiée à l'installation des dépôts tiers).

Côté parefeu, la configuration est la même que pour n'importe quel serveur Web (port 80 configuré par défaut pour Monitorix). Au besoin, si votre Firewall est actif, le minimum à autoriser (inutile si votre parefeu est désactivé ou déjà configuré) :

# iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# service iptables save



  • Les indispensables pré-requis (en root) :
# yum install httpd rrdtool rrdtool-perl
# yum install perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI
# yum install perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple


  • Puis l'outil Monitorix :
# yum install monitorix


  • Automatisez le démarrage du service Web Apache (httpd) indispensable et celui de monitorix :
# chkconfig httpd on
# chkconfig monitorix on


  • Enfin, on démarre le tout :
# service httpd start
# service monitorix start




Configuration de base


Par défaut, Monitorix est configuré pour limiter l'accès à la machine elle même (127.0.0.1). C'est à dire que l'interface Web ne peut pas être consultée depuis un autre poste. Il convient donc de corriger en autorisant, soit un ou plusieurs pc(s), le vôtre à minima, soit le réseau local, soit tout accès sans limitations. A adapter selon vos besoins et niveaux de sécurité (gardez à l'esprit qu'il s'agit de monitoring passif).

Le paramétrage d'accès se fait comme pour n'importe quel service Web au travers d'Apache et plus précisément via le fichier de configuration de chaque service Web. Ici donc, le fichier qui nous intéresse est "/etc/httpd/conf.d/monitorix.conf". Voici trois exemples fonctionnels.

  • Limiter l'accès à un seul poste, cherchez la ligne "allow from 127.0.0.1" et remplacez "127.0.0.1" par l'ip de votre poste comme dans l'exemple ci-dessous :
# vi /etc/httpd/conf.d/monitorix.conf
  • Fichier d'origine :
Alias /monitorix /usr/share/monitorix
ScriptAlias /monitorix-cgi /usr/share/monitorix/cgi-bin

<Directory /usr/share/monitorix/cgi-bin/>
        DirectoryIndex monitorix.cgi
        Options ExecCGI
        order deny,allow
        deny from all
        allow from 127.0.0.1
</Directory>
  • Fichier corrigé :
Alias /monitorix /usr/share/monitorix
ScriptAlias /monitorix-cgi /usr/share/monitorix/cgi-bin

<Directory /usr/share/monitorix/cgi-bin/>
        DirectoryIndex monitorix.cgi
        Options ExecCGI
        order deny,allow
        deny from all
        allow from 192.168.0.23
</Directory>



  • Autoriser l'ensemble du réseau local, modif sur la même ligne, elle devient :
Alias /monitorix /usr/share/monitorix
ScriptAlias /monitorix-cgi /usr/share/monitorix/cgi-bin

<Directory /usr/share/monitorix/cgi-bin/>
        DirectoryIndex monitorix.cgi
        Options ExecCGI
        order deny,allow
        deny from all
        allow from 192.168.0.
</Directory>


Note : N'oubliez pas le point au bout de la ligne


  • Accès sans limitation, remplacez simplement l'ip par "all" :
Alias /monitorix /usr/share/monitorix
ScriptAlias /monitorix-cgi /usr/share/monitorix/cgi-bin

<Directory /usr/share/monitorix/cgi-bin/>
        DirectoryIndex monitorix.cgi
        Options ExecCGI
        order deny,allow
        deny from all
        allow from all
</Directory>



  • Après chaque modification, redémarrez le service Web (Apache) :
# service httpd restart




Accès navigateurs


  • Pour afficher les stats, rendez vous à l'aide de votre navigateur préféré à l'adresse du serveur (nom local résolu ou adresse ip) :
 http://ip_du_serveur/monitorix



monitorix-1


  • Cochez la période souhaitée dans les 4 cases possibles (Daily pour journée en cours, Weekly pour semaine, etc) et cliquez sur "OK" :



monitorix2


Note 1 : Après installation, il n'y a pas d'historique, donc les graphs à la semaine, au mois ou à l'année n'afficheront pas grand chose ;-)

Note 2 : Par défaut, tous les graphiques sont affichés, il est possible de se limiter à certains paramètres via le menu déroulant "Graph".

Note 3 : Un double clic sur l'un des graphiques de l'interface Monitorix permet de zoomer sur celui ci.


Monitoring centralisé de la charge de plusieurs serveurs ou machines


A destination de ceux qui ont plusieurs machines à visualiser, il est possible de regrouper sur l'interface Web d'un seul serveur le graph principal (System Load ou charge système dans la langue de Molière) de chaque machine du réseau disposant d'un Monitorix en fonction.

  • Choisissez un Monitorix qui sera chargé de centraliser et ouvrez son fichier de configuration :
# vi /etc/monitorix.conf


  • Déplacez vous dans la section "Multihost" (vers la ligne 610). From scratch, la section ressemble à ceci :
# Multihost
# -----------------------------------------------------------------------------
our $MULTIHOST = "N";
our $MULTIHOST_FOOTER = "Y";
our $MULTIHOST_IMGS_PER_ROW = "2";
our @REMOTEHOST_LIST = (
        "server 1",     "http://www.example.com",
        "server 2",     "http://10.0.0.1",
        "server 3",     "http://192.168.0.100:8080",
);


  • Passez la ligne "our $MULTIHOST" à "Y" (pour yes) et renseignez les lignes "REMOTEHOST LIST". Exemple ci dessous avec la machine elle même + un serveur secondaire :
# Multihost
# -----------------------------------------------------------------------------
our $MULTIHOST = "Y";
our $MULTIHOST_FOOTER = "Y";
our $MULTIHOST_IMGS_PER_ROW = "2";
our @REMOTEHOST_LIST = (
         "server 1",     "http://192.168.0.7",
         "server 2",     "http://192.168.0.5",
);


  • Il est également possible de préciser le nom souhaité pour identifier les serveurs (nom de la machine au lieu de "serveur 1", "serveur 2", etc). Exemple :
# Multihost
# -----------------------------------------------------------------------------
our $MULTIHOST = "Y";
our $MULTIHOST_FOOTER = "Y";
our $MULTIHOST_IMGS_PER_ROW = "2";
our @REMOTEHOST_LIST = (
         "serveur samba",     "http://192.168.0.7",
         "serveur web",     "http://192.168.0.5",
);


  • Redémarrez monitorix pour prise en compte de vos modifs :
# service monitorix restart



  • Les machines devraient à présent apparaitre dans le menu déroulant de l'interface Monitorix (Multihost) :



monitorix-3


  • Si vous optez pour le choix "All Hosts", vous verrez apparaitre les graphiques "Charge Système" déclarés :



monitorix-4



L'outil Monitorix offre de nombreuses autres options. Vous trouverez plus de détails via les liens ci après.


Liens utiles :





N'hésitez pas à partager vos commentaires et/ou avancées sur ce sujet depuis le topic dédié du forum.