Installer et configurer un serveur Xymon
Xymon est un outil de supervision pour les serveurs (Linux, Unix, Windows), les applications et les équipements réseau. Les informations sur la “santé” de ces divers clients sont collectées et présentées sur une page web avec pour chacun d’eux, un voyant vert, jaune ou rouge représentant l’état du “service” supervisé. Par défaut, Xymon est capable de superviser un ensemble de services réseau, les ressources d’un serveur, l’état d’un service HTTP (et HTTPS) et met à jour une collection de graphes RRD permettant de voir l’évolution dans le temps. Xymon fonctionne sur le principe client / serveur : un serveur Xymon collectera les informations des différents clients. Dans cet article nous verrons l’installation et la configuration d’un serveur Xymon (4.3.7), l’installation d’un client et quelques astuces…
Historique
Xymon a été inspiré par Big Brother. Certaines parties du code de Big Brother ont été réécrites en C pour augmenter la vitesse de traitement des données des clients. Il profite d’une configuration centralisée : contrairement à Big Brother où il fallait se connecter sur chacun des clients pour modifier, par exemple, un seuil de supervision, tout est fait maintenant côté serveur. Xymon est OpenSource.
Entre Big Brother et Xymon, il y a eu Hobbit mais c’est une marque déposée. Le projet a donc été renommé en Xymon.
Installation du serveur
Je pars d’une Debian Squeeze toute neuve. Deux possibilités d’installation : avec les sources ou avec les paquets Debian. Attention, ceux de la distribution sont plus anciens que ceux disponibles sur sourceforge.
Via les paquets Debian
Les étapes à suivre :
Récupérez les .deb du serveur et du client Xymon :
wget http://downloads.sourceforge.net/project/xymon/Xymon/4.3.7/xymon_4.3.7_amd64.deb wget http://downloads.sourceforge.net/project/xymon/Xymon/4.3.7/xymon-client_4.3.7_amd64.deb
Installez d’abord le client puis le serveur. Indiquez l’adresse IP de votre serveur Xymon au moment de l’installation du client (vous pouvez modifier la configuration avec dpkg-reconfigure xymon-client).
dpkg -i xymon-client_4.3.7_amd64.deb dpkg -i xymon_4.3.7_amd64.deb
Le serveur Xymon nécessite un serveur web pour afficher les pages de supervision. Je fais le choix ici de lighttpd :
apt-get install lighttpd
Pour démarrer le serveur Xymon :
/etc/init.d/xymon start
Via les sources
Voici les étapes nécessaires pour l’installation du serveur Xymon en utilisant les sources :
Récupérez l’archive de Xymon sur sourceforge
cd /usr/local/src wget http://downloads.sourceforge.net/project/xymon/Xymon/4.3.7/xymon-4.3.7.tar.gz
On décompresse l’archive et on se place dans le répertoire de Xymon :
tar xvzf xymon-4.3.7.tar.gz cd xymon-4.3.7
Il faudra installer les prérequis suivants pour compiler Xymon :
apt-get install build-essential sudo fping librrd-dev libpcre3-dev libldap2-dev libssl-dev
Il faut également un serveur web : installez celui de votre choix. Pour cet article, j’ai choisi lighttpd :
apt-get install lighttpd
Créez l’utilisateur Xymon. Sur une Debian par exemple :
getent group xymon > /dev/null || addgroup --system xymon getent passwd xymon > /dev/null || adduser --system \\ --home /usr/lib/xymon --no-create-home \\ --ingroup xymon --disabled-password --disabled-login \\ --gecos "Xymon System Monitor" xymon
Lancez la configuration du serveur Xymon et répondez aux questions :
./configure.server
Pour la compilation :
make && make install
Pour démarrer le serveur (à adapter en fonction de votre configuration) :
su - xymon -s /bin/bash -c '/usr/lib/xymon/server/xymon.sh start'
C’est terminé pour l’installation. Quel que soit votre choix, paquets Debian ou sources, passez à l’étape configuration afin de faire pointer votre serveur web sur le répertoire www de Xymon et de contrôler la configuration par défaut.
Configuration du serveur
Pour terminer l’installation, il faut maintenant configurer le serveur web pour pointer sur le répertoire www de Xymon ainsi que sur les répertoires de cgi.
- La configuration de votre serveur est normalement stockée dans /etc/xymon. Dans le fichier /etc/xymon/xymonserver.cfg, modifiez
XYMONSERVERWWWURL="/"
parXYMONSERVERWWWURL=""
. - Voici pour exemple un /etc/lighttpd/lighttpd.conf qui fonctionne.
Pour activer la gestion des cgis pour les deux URLs de Xymon (xymon-cgi et xymon-seccgi), activez le module cgi :
lighty-enable-mod cgi
.Modifiez sa configuration par défaut par celle-ci.
Relancez lighttpd et pointez votre navigateur sur l’adresse de votre serveur Xymon.
Installation des clients
Pour installer un client sur votre distribution, vous pouvez opter pour le paquet fourni par celle-ci (parfois moins récent que la version 4.3.7 présentée ici), les sources ou dans le cas d’une Debian utiliser le .deb disponible sur sourceforge.
Installation depuis les sources
Voici les étapes nécessaires pour l’installation du client Xymon en utilisant les sources :
Récupérez l’archive de Xymon sur [sourceforge](http://sourceforge.net/projects/xymon/files/latest/download.
cd /usr/local/src wget http://downloads.sourceforge.net/project/xymon/Xymon/4.3.7/xymon-4.3.7.tar.gz
On décompresse l’archive et on se place dans le répertoire de Xymon :
tar xvzf xymon-4.3.7.tar.gz cd xymon-4.3.7
Créez l’utilisateur Xymon. Sur une Debian par exemple :
getent group xymon > /dev/null || addgroup --system xymon getent passwd xymon > /dev/null || adduser --system \\ --home /usr/lib/xymon --no-create-home \\ --ingroup xymon --disabled-password --disabled-login \\ --gecos "Xymon System Monitor" xymon
Lancez la configuration et répondez aux questions :
./configure.client
- Server side client configuration, or client side [server] ? server
- What userid will be running Xymon [xymon] ? xymon
- Where do you want the Xymon installation [/usr/lib/xymon] ? /usr/lib/xymon
- What is the IP-address of your Xymon server [127.0.0.1] ? 192.168.1.141 dans mon exemple. A remplacer par l’adresse ip de votre serveur Xymon.
Puis la compilation et l’installation :
make -s && make install
Assurez-vous d’avoir un /etc/hosts correctement configuré : vous devez avoir une entrée pour votre adresse ip avec le nom de votre machine et son domaine :
192.168.1.140 puppet.home puppet
Pour démarrer le client :
su - xymon -s /bin/bash -c '/usr/lib/xymon/client/runclient.sh start'
Installation sur une Debian
Voici les étapes nécessaires à l’installation d’un client sur une Debian en utilisant le .deb disponible sur sourceforge :
Récupérez le .deb du client Xymon et installez-le :
wget http://downloads.sourceforge.net/project/xymon/Xymon/4.3.7/xymon-client_4.3.7_amd64.deb dpkg -i xymon-client_4.3.7_amd64.deb
A ce jour, le paquet n’embarque pas de script d’init. En voici un récupéré dans le paquet xymon-client (4.3.0) d’une Squeeze (j’ai modifié tous les hobbit en xymon).
Contrôlez et modifiez si nécessaire la configuration du client dans le fichier /etc/default/xymon-client. Il est préférable, si vous avez de multiples domaines, d’indiquer le nom de votre serveur avec son domaine pour la variable CLIENTHOSTNAME.
Le fichier /etc/xymon/xymonclient.cfg doit également être modifié pour lire correctement les informations du fichier précédent. Une version de ce fichier est disponible link.
Pour démarrer le client :
/etc/init.d/xymon-client start
Configuration côté serveur
Le client est démarré. Il va maintenant envoyer son status toutes les 5 minutes à votre serveur Xymon. Pour qu’il apparaisse sur l’interface, il faut le rajouter dans le fichier /etc/xymon/hosts.cfg. Voici un exemple :
127.0.0.1 xymon.home # bbd http://xymon.home/
192.168.1.200 varnish.home
192.168.1.140 puppet.home
Astuces
Quelques astuces pour débuter dans l’optimisation de votre supervision.
Grouper vos serveurs
Le fichier hosts.cfg offre beaucoup de possibilités. Par exemple, il est possible de grouper vos serveurs avec le mot clé “group”. Si je modifie mon fichiers hosts.cfg comme suit :
group Supervision
127.0.0.1 xymon.home # bbd http://xymon.home/
group Serveurs
192.168.1.200 varnish.home
192.168.1.140 puppet.home
L’affichage devient :
Être alerté par mail ou autres
Il est possible d’être alerté par mail en cas de problème détecté par la supervision. Vous pouvez aussi faire jouer un script de votre choix : il est alors possible d’être alerté par SMS, service de notification push… Tout se configure dans le fichier /etc/xymon/alerts.cfg. Par exemple si veux recevoir un mail en cas de problème, mail qui se répètera toutes les 20 minutes sans résolution du problème et un mail pour avertir de la fin d’un incident :
HOST=%
MAIL moi@mail.fr REPEAT=20 RECOVERED
Supprimer un test par défaut
Il est possible de désactiver un test par défaut sur un de vos serveurs supervisés via le fichier /etc/xymon/hosts.cfg. Par exemple, pour mes tests avec des containers LXC, je désactive la supervision du disque (je rajoute la supervision ssh au passage) :
group Supervision
127.0.0.1 xymon.home # bbd http://xymon.home/ NOCOLUMNS:disk
group Serveurs
192.168.1.200 varnish.home # ssh NOCOLUMNS:disk
192.168.1.140 puppet.home # ssh NOCOLUMNS:disk
Attention : si vous désactivez un test, il faudra effacer l’historique de celui-ci sous peine d’avoir un voyant “purple”. A voir un peu plus bas.
Modifier les seuils d’alerte
Dans le fichier /etc/xymon/analysis.cfg, il est possible de modifier la supervision d’un client : rechercher un mot clé dans un fichier de log, modifier les seuils de déclenchement d’une alerte, superviser un process, un port… Voici quelques exemples et la sortie Xymon :
HOST=varnish.home
PROC varnishd 1
PROC puppet 1
DISK * 80 90
LOG /var/log/messages %(I/O|read).error COLOR=red
PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=Varnish
A savoir : Xymon supervise par défaut uniquement le /var/log/messages de vos serveurs Linux. Pour modifier ce comportement, il faudra voir la configuration de /etc/xymon/client-local.cfg.
Acquitter un test/un serveur
Si un incident est en cours et que vous souhaitez acquitter un test (et donc l’alerting), vous pouvez le faire via le formulaire du voyant “info” ou par le formulaire accessible via le menu en haut (Administration/Enable disable).
Supprimer un test, un serveur / tests purple
Vous pouvez avoir besoin de supprimer un test ou un serveur et vous pouvez rencontrer des tests en “purple” : c’est ce qui arrive quand un serveur n’a pas envoyé de status pour un test (précédemment référencé) depuis 30 minutes.
- Pour supprimer un test :
bash /usr/lib/xymon/server/bin/xymon 127.0.0.1 "drop HOSTNAME ftp"
Si vous testez une extension Xymon et que vous la désactivez ensuite, vous êtes typiquement dans le cas ou le voyant deviendra “purple” si vous ne supprimez pas le test.
Pour supprimer un serveur, il faudra d’abord le retirer du fichier hosts.cfg puis :
/usr/lib/xymon/server/bin/xymon 127.0.0.1 "drop HOSTNAME"
Pour supprimer tous les tests en purple :
#!/bin/bash
# PURGE PURPLE
for i in `/usr/lib/xymon/server/bin/xymon 127.0.0.1 "hobbitdboard color=purple fields=testname,hostname"`
do
CLIENT=`echo $i|cut -d"|" -f2`
TEST=`echo $i|cut -d"|" -f1`
echo "Suppression $CLIENT -> $TEST"
/usr/lib/xymon/server/bin/xymon 127.0.0.1 "drop $CLIENT $TEST"
done
C’est terminé pour cette introduction sur l’installation d’un serveur Xymon. Il reste de multiples possibilités à explorer que je n’ai pas détaillé ici. Le but de cet article est d’apporter un support pour les prochains sujets autour de Xymon et Puppet : envoyer les rapports Puppet sur Xymon, une supervision automatique avec Xymon et Puppet…