Gestion et surveillance de réseau Smokeping Notes : ------ * Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant qu'utilisateur root. * Les commandes précédées de "#" signifient que vous devez travailler en tant qu'utilisateur root. * Les commandes comportant des lignes de commande plus spécifiques (par exemple "RTR-GW>" ou "mysql>") signifient que vous exécutez des commandes sur des équipements à distance, ou dans un autre programme. Exercices ---------- 0. Ouvrez une session sur votre PC ou ouvrez une fenêtre de terminal en tant qu'utilisateur sysadm. Une fois logué, vous pouvez effectuer les exercices suivants. 1. Installez Smokeping : $ sudo apt-get install smokeping 2. Configuration initiale $ cd /etc/smokeping/config.d $ ls -l -rwxr-xr-x 1 root root 578 2010-02-26 01:55 Alerts -rwxr-xr-x 1 root root 237 2010-02-26 01:55 Database -rwxr-xr-x 1 root root 413 2010-02-26 05:40 General -rwxr-xr-x 1 root root 271 2010-02-26 01:55 pathnames -rwxr-xr-x 1 root root 859 2010-02-26 01:55 Presentation -rwxr-xr-x 1 root root 116 2010-02-26 01:55 Probes -rwxr-xr-x 1 root root 155 2010-02-26 01:55 Slaves -rwxr-xr-x 1 root root 8990 2010-02-26 06:30 Targets $ sudo vi General Modifiez les lignes suivantes : owner = NOC contact = sysadmin@localhost cgiurl = http://pcX.ws.nsrc.org/cgi-bin/smokeping.cgi mailhost = localhost Sauvegardez le fichier et quittez. Redémarrons maintenant le service Smokeping afin de vérifier qu'il n'y a pas d'erreurs avant de poursuivre : $ sudo /etc/init.d/smokeping stop $ sudo /etc/init.d/smokeping start 2. Configurez la supervision des dispositifs Vous consacrerez la majeure partie de votre temps et de votre travail à configurer Smokeping dans le fichier /etc/smokeping/config.d/Targets. Dans le cadre de cet atelier, veuillez procéder comme suit : Utilisez la sonde FPing par défaut pour vérifier : - Les PC de tous les participants du NOC - Le NOC de l'atelier - Les commutateurs - Les routeurs Vous pouvez utiliser le schéma du réseau de classe sur wiki pour déterminer les adresses de chaque article, etc. Introduisez une certaine hiérarchie dans le menu Smokeping afin de faciliter ces contrôles. Exemple : + PCs menu = PC Atelier title = Les PC Atelier ++ pc1 menu = pc1 title = pc1 host = pc1 ++ pc2 menu = pc2 title = pc2 host = pc2 Enregistrez le fichier et redémarrez Smokeping : $ sudo /etc/init.d/smokeping stop $ sudo /etc/init.d/smokeping start Allez à votre navigateur et consultez la page Smokeping : http://10.10.x.y/cgi-bin/smokeping.cgi Si tout semble en ordre, continuez et ajoutez : + Routeurs ++ bb-gw menu = bb-gw title = bb-gw host = gw.ws.nsrc.org ++ rtr1 menu = rtr1 title = rtr1 host = rtr1.ws.nsrc.org + Commutateurs ++ bb-sw menu = sw title = sw host = sw.ws.nsrc.org ... Enregistrez le fichier, redémarrez smokeping et consultez à nouveau votre navigateur. 3. Ajoutez de nouvelles sondes L'entrée actuelle dans Probes (sondes) est correcte, mais si vous souhaitez utiliser d'autres contrôles Smokeping supplémentaires vous pouvez les ajouter ici et spécifier leur comportement par défaut. Vous pouvez le faire également dans le fichier Targets si vous le souhaitez. Voici un exemple de fichier Probes précisant les sondes à utiliser pour vérifier la latence HTTP et DNS, ainsi que la sonde fping utilisée pour la latence ping : $ sudo vi Probes *** Probes *** + FPing binary = /usr/bin/fping + EchoPingHttp + DNS binary = /usr/bin/dig pings = 5 step = 180 lookup = www.nsrc.org Enregistrez le fichier. 4. Ajoutez des contrôles de latence HTTP Maintenant, modifiez de nouveau votre fichier Targets : $ sudo vi Targets Ajoutez un contrôle de latence HTTP pour tous les PC de l'atelier. Ceci suppose d'ajouter une catégorie telle que : + HTTPServers menu = HTTP title = Serveurs HTTP probe = EchoPingHttp ++ PC1 host = pc1 ++ PC2 host = pc2 ... Si vous en avez le temps, vous pouvez vérifier certaines machines extérieures à l'atelier et à la conférence (le site Web de votre organisation, une page Web populaire, etc.) 5. Ajoutez des contrôles de latence DNS Vous pouvez effectuer des contrôles sur des noms internes ou externes, ou les deux, à l'aide de la sonde de latence DNS. Ajoutez une hiérarchie de menus pour la latence DNS. Contrôlez une adresse externe (nsrc.org) et une adresse interne (noc). Ces contrôles prennent la forme suivante(dans le fichier Targets): + DNS probe = DNS menu = DNS title = Test du temps de reponse DNS ++ nsrc host = nsrc.org ++ noc host = noc.ws.nsrc.org Quittez en enregistrant vos modifications dans le fichier Targets. Redémarrez Smokeping pour visualiser les modifications : $ sudo /etc/init.d/smokeping stop $ sudo /etc/init.d/smokeping start Recensez les autres sondes Smokeping et mettez-en éventuellement en oeuvre quelques-unes : http://oss.oetiker.ch/smokeping/probe/index.en.html Tenter d'expliquer tous les aspects syntaxiques du fonctionnement du fichier /etc/smokeping/config.d/Targets nécessiterait plusieurs pages, aussi prendrons-nous quelques exemples en cours et vous pourrez vous reporter aux fichiers de configuration Smokeping utilisés sur la machine NOC de l'atelier en visitant les pages suivantes : http://noc/configs/etc/smokeping http://noc/configs/etc/smokeping/config.d 6. Envoyez des alertes Smokeping $ sudo vi Alerts Mettez à jour les premières lignes du fichier : *** Alerts *** to = alertee@address.somewhere from = smokealert@company.xy afin d'inclure de vrais champs "to" et "from" pour votre serveur. Exemple : *** Alerts *** to = sysadm@localhost from = smokeping-alert@localhost Si vous avez installé RT, vous pouvez envoyer vos alertes à une file d'attente RT existante : *** Alerts *** to = net@localhost A la fin du fichier, ajoutez une autre alerte comme ceci : +anydelay type = rtt # in milliseconds pattern = >1 comment = Just for testing Observez le "pattern" (forme) de cette alerte. Cela signifie qu'une alerte sera déclenchée dès qu'une mesure présentera un retard supérieur à un millième de seconde. Il s'agit juste d'un test. Dans la réalité, vous créerez une alerte en fonction des valeurs de références observées. Par exemple, si le délai de vos serveurs DNS passe subitement de moins de 10 ms à plus de 100 ms. Vérifiez ensuite que des alertes sont définies pour certains de vos fichiers Targets. Vous pouvez activer les alertes en les définissant pour une sonde dans le fichier /etc/smokeping/config.d/Probes, ou sous la forme d'entrées Targets individuelles. Dans le cas présent, nous allons modifier le fichier Targets et activer les alertes pour nos contrôles de latence DNS. $ sudo vi /etc/smokeping/config.d/Targets Recherchez la section suivante dans le fichier : + DNS probe = DNS menu = External DNS Check title = DNS Latency ++ nsrc host = nsrc.org Et ajoutez la ligne d'alertes suivante après "+++ nsrc" +++ nsrc host = nsrc.org alerts = anydelay Enregistrez et fermez le fichier, puis redémarrez Smokeping : $ sudo /etc/init.d/smokeping stop $ sudo /etc/init.d/smokeping start Vérifiez votre messagerie électronique avec mutt $ mutt (Ou vérifiez vos files d'attente RT) Et regardez si vous avez reçu des alertes au bout de 5 minutes. 6. Graphiques multihôtes Après avoir défini un groupe d'hôtes sous un même type de sonde dans votre fichier /etc/smokeping/config.d/Targets, vous pouvez créer un graphique unique qui affichera les résultats de tous les tests Smokeping pour l'ensemble des hôtes que vous aurez définis. Ceci présente l'avantage de vous permettre de comparer rapidement, par exemple, un groupe d'hôtes que vous surveillez avec la sonde FPing. La fonction graphique multihôte dans Smokeping est extrêmement pointue et nécessite une attention particulière. Pour créer un graphique multihôte, modifiez tout d'abord le fichier Targets : $ sudo vi Targets Si vous aviez pour la sondage FPing une section déjà définie ressemblant à ce qui suit (ceci n'est qu'un exemple - votre propre fichier Targets peut se présenter différemment): + Local menu = Local title = Local Network ++ LocalMachine menu = Local Machine title = This host host = localhost ++ pc1 menu = pc1 title = pc1 host = pc1 ++ pc2 menu = pc2 title = pc2 host = pc2 ++ pc3 menu = pc3 title = pc3 host = pc3 Smokeping affiche actuellement les résultats de la sonde FPing pour chaque hôte dans des graphiques distincts. Pour afficher ces résultats sous la forme d'un graphique unique sur plusieurs lignes, tapez ce qui suit après définition du dernier hôte pour le sondage FPing : + MultiHostPCs menu = MultiHost Ping title = Consolidated Ping Response Time host = /Local/LocalMachine /Local/pc1 /Local/pc2 /Local/pc3 Faites bien attention à ce que la capitalisation soit respectée: Si votre Section LocalMachine s'écrit comme ça avec L et M majuscules, mettez bien la même chose dans la ligne host! (Remarque : si les lignes sont trop longues, vous pouvez avoir plusieurs lignes pour l'entrée "host" en utilisant le caractère "\" pour indiquer une autre ligne - posez des questions si vous avez des doutes !) Maintenant enregistrez et fermez le fichier, puis redémarrez Smokeping : $ sudo /etc/init.d/smokeping stop $ sudo /etc/init.d/smokeping start Vous devriez voir un nouveau graphique sous le menu "MultiHost Ping" de votre interface web Smokeping. Ce graphique comporte une ligne de couleur différente pour chaque hôte défini. 7. Instances esclaves - uniquement si nous en avons le temps. Cette description n'est fournie qu'à titre indicatif pour le cas où vous souhaiteriez essayer ce type de configuration à l'issue de l'atelier. L'idée est de pouvoir exécuter plusieurs instances Smokeping sur des sites divers supervisant les mêmes hôtes et/ou services que votre instance maîtresse. Les installations esclaves envoient leurs résultats au serveur maître et vous obtenez les résultats aux côtés de vos résultats locaux. Ceci permet de voir comment des utilisateurs extérieurs à votre réseau voient vos services et vos hôtes. Ceci peut constituer un outil puissant pour résoudre des problèmes de services et d'hôtes potentiellement difficiles à résoudre lorsque l'on ne dispose que de données locales. D'un point de vue graphique, les données se présentent ainsi : [esclave 1] [esclave 2] [esclave 3] | | | +-------+ | +--------+ | | | v v v +---------------+ | maître | +---------------+ Vous trouverez un exemple de ces données à l'adresse suivante : http://oss.oetiker.ch/smokeping-demo/ Si vous observez les différents groupes de graphiques, vous noterez que nombre de ces graphiques comportent plusieurs lignes avec un code couleur correspondant à des éléments tels que "median RTT from mipsrv01" - Il ne s'agit pas de graphiques multihôtes à proprement parler, mais de graphiques présentant des données issues de serveurs Smokeping externes. Pour configurer un serveur Smokeping maître/esclave, reportez-vous à la documentation suivante : http://oss.oetiker.ch/smokeping/doc/smokeping_master_slave.en.html Vous trouverez en outre un exemple d'étapes de configuration dans le fichier sample-smokeping-master-slave.txt.