Mise en place - Supervision ad-hoc rapide
Lors de ce TP vous allez mettre en place une petite architecture système utilisé lors des séances suivantes, puis construire votre premier système simple de supervision.
Préliminaires
Comme vu lors du cours sur l'outillage de base, vous avez accès à la
commande vmiut
.
Par exemple, vmiut creer TOTO
permet de créer un serveur virtuel
nommé TOTO
sur la base d'une installation Debian Bullseye minimale
avec deux utilisateurs :
root
avec comme mot de passeroot
user
avec comme mot de passeuser
Un appel à vmiut --help
donne des détails sur son utilisation.
Environnement des TPs
Création des postes
Préparez 3 serveurs virtuels nommé moniteur
, poste1
et poste2
.
Identification réseau
Modifiez la configuration de vos 3 serveurs pour que
moniteur
ait comme adresse IPv4192.168.194.10
poste1
ait comme adresse IPv4192.168.194.21
poste2
ait comme adresse IPv4192.168.194.22
Connexion SSH
Faites en sorte que depuis votre machine physique vous puissiez
vous connecter en ssh en tant que root
sur chacun des 3 postes
via les commandes shell suivantes, sans spécifier de mot de passe
lors de la connexion (c'est-à-dire en utilisant une
authentification par clés plutôt que par mot de passe) et avec un
redirection des demandes d'affichage graphiques de la machine
virtuelle vers la machine physique :
ssh moniteur
ssh poste1
ssh poste2
Environnement sur les postes
Configurez vos serveurs de façon à ce que outre un éditeur de
textes de votre choix (emacs
, vim
, etc.) ils disposent des
outils suivants :
file
less
netcat
netstat
nmap
screen
Nommages des machines
Faites en sorte que sur chacun des postes chacune des 3 machines doit être accessible aussi bien par son nom que par son numéro IP.
Première supervision ad-hoc
Sauf spécification explicite, les différentes questions de cet exercice sont à exécuter sur le moniteur.
Vérification d'accès aux postes
Écrivez un script shell, nommé /usr/local/sbin/verifie-postes
,
qui :
- Pour les postes
poste1
etposte2
- envoie deux paquets
ICMP
ECHO_REQUEST
via la commandeping(1)
ajoute dans le fichier
/var/log/local-ping
une ligne de la formeTIMESTAMP:POSTE:RTT
avec
TIMESTAMP
l'heure UNIX (c'est-à-dire le nombre de secondes depuis l'epoch Unix)POSTE
le nom du posteRTT
le temps moyen de réponse du ping
- envoie deux paquets
Planification de la vérification
Sur le moniteur, planifiez l'exécution de ce script toutes les
minutes grâce à une table crontab(5)
placée dans /etc/cron.d
.
Première présentation du suivi
- Installez le serveur
apache2
. Écrivez un script shell, nommé
/usr/local/sbin/ping2html
, qui convertit le contenu de/var/log/local-ping
en un document HTML, dans/var/www/html/ping.html
. Ce document doit contenir deux tableaux représentants les temps moyens de réponses pour chacun des deux postes.Si possible dans ce tableau les dates (timestamps) doivent être représentées sous la forme
AAAA-MM-JJ-hh:mm
.- Planifiez la création de ce document HTML toutes les minutes en
appelant
ping2html
juste après l'exécution deverifie-postes
, si celle-ci a réussi, dans lacrontab
mise en place précédemment.
Amélioration de la représentation
La commande suivante permet de générer un image SVG dans
/tmp/image.svg
avec comme nom courbe
. Il faut pour cela lui
transmettre via son entrée standard des lignes de texte composés de
2 mots (une date et un temps de réponse).
gnuplot -e 'set terminal svg ; set output "/tmp/image.svg" ; set grid ; plot "-" using 1:2 with linespoint title "courbe"'
- Installez l'outil
gnuplot
- Écrivez un script, nommé
/usr/local/sbin/ping2svg
, qui convertit le contenu de/var/log/local-ping
en deux images au format SVG, respectivement/var/www/html/poste1.svg
et/var/www/html/poste2.svg
. Chaque image doit représenter la courbe des temps de réponse de chacun des 2 postes. - Planifiez la création de ces deux images toutes les minutes en
appelant
ping2svg
juste après l'exécution deping2html
, si celle-ci a réussi, dans lacrontab
mise en place précédemment. - Modifiez la commande
/usr/local/sbin/ping2html
pour y inclure des liens vers les 2 images générées.
Tests
- Sur
poste1
planifiez un arrêt/démarrage de l'interface réseau aléatoire toutes les deux minutes.