Agenda: exercises-nagios-afnog2011-vFR.txt

File exercises-nagios-afnog2011-vFR.txt, 37.0 KB (added by admin, 7 years ago)
Line 
1
2Installation et Configuration de Nagios
3
4Notes :
5------
6* Les commandes précédées de "$" signifient que vous devez exécuter
7  la commande en tant qu'utilisateur général - et non en tant
8  qu'utilisateur root.
9
10* Les commandes précédées de "#" signifient que vous devez travailler
11  en tant qu'utilisateur root.
12
13* Les commandes comportant des lignes de commande plus spécifiques
14  (par exemple "RTR-GW>" ou "mysql>") signifient que vous exécutez
15  des commandes sur des équipements à distance, ou dans un autre
16  programme.
17
18Exercices
19---------
20
21Exercices Partie I
22----------------
23
240. Ouvrez une session sur votre PC ou ouvrez une fenêtre de terminal
25   en tant qu'utilisateur sysadm.
26
271. Il se peut que vous ayez à installer la version 3 de Nagios.
28   Vous devez effectuer cette installation en tant qu'utilisateur root
29   ou sysadmin et utiliser le commande "sudo". Assurez-vous aussi que
30   vous disposez de l'éditeur Vim (VI aMélioré), car ce dernier facilite
31   le travail sur de gros fichiers. En tant que sysadm :
32
33   $ sudo apt-get install nagios3 vim
34
35   Sauf si vous avez déjà un agent MTA installé, nagios3 va installer
36   postfix en tant que dépendance. Sélectionnez l'option "Site
37   Internet". (Si vous aviez voulu utiliser un autre agent MTA,
38   vous l'auriez probablement installé avant nagios3)
39
40   Vous serez invité à entrer le mot de passe nagiosadmin. Entrez
41   le mot de passe d'atelier normal.
42
43   Pour accéder aux documents dans /usr/share/doc/nagios3-doc/html/
44   (qui peuvent également être consultés via l'interface web Nagios),
45   entrez :
46
47    $ sudo apt-get install nagios3-doc
48
49
502. Regardez le fichier contenant le mot de passe. Il est haché (crypté)
51
52    $ cat /etc/nagios3/htpasswd.users
53
54
553. Nagios devrait déjà être opérationnel !
56
57    - Ouvrez un navigateur et accédez à votre machine de la façon suivante :
58
59    http://pcN.ws.nsrc.org/nagios3/
60
61    - À l'invite de connexion, répondez comme indiqué ci-dessous :
62
63        username: nagiosadmin
64        pass: <MOT DE PASSE DE LA CLASSE>
65
66    Allez jusqu'à la page "Host Detail" (Détail des hôtes) pour
67    voir ce qui est déjà configuré.
68
69
704. Examinons l'organisation de la configuration... Mais, devenons
71   tout d'abord l'utilisateur root de votre machine :
72
73
74    $ sudo bash
75
76    # cd /etc/nagios3
77    # ls -l
78
79    -rw-r--r-- 1 root root    1882 2008-12-18 13:42 apache2.conf
80    -rw-r--r-- 1 root root   10524 2008-12-18 13:44 cgi.cfg
81    -rw-r--r-- 1 root root    2429 2008-12-18 13:44 commands.cfg
82    drwxr-xr-x 2 root root    4096 2009-02-14 12:33 conf.d
83    -rw-r--r-- 1 root root      26 2009-02-14 12:36 htpasswd.users
84    -rw-r--r-- 1 root root   42539 2008-12-18 13:44 nagios.cfg
85    -rw-r----- 1 root nagios  1293 2008-12-18 13:42 resource.cfg
86    drwxr-xr-x 2 root root    4096 2009-02-14 12:32 stylesheets
87
88    # cd conf.d
89    # ls -l   
90
91    -rw-r--r-- 1 root root 1695 2008-12-18 13:42 contacts_nagios2.cfg
92    -rw-r--r-- 1 root root  418 2008-12-18 13:42 extinfo_nagios2.cfg
93    -rw-r--r-- 1 root root 1152 2008-12-18 13:42 generic-host_nagios2.cfg
94    -rw-r--r-- 1 root root 1803 2008-12-18 13:42 generic-service_nagios2.cfg
95    -rw-r--r-- 1 root root  210 2009-02-14 12:33 host-gateway_nagios3.cfg
96    -rw-r--r-- 1 root root  976 2008-12-18 13:42 hostgroups_nagios2.cfg
97    -rw-r--r-- 1 root root 2167 2008-12-18 13:42 localhost_nagios2.cfg
98    -rw-r--r-- 1 root root 1005 2008-12-18 13:42 services_nagios2.cfg
99    -rw-r--r-- 1 root root 1609 2008-12-18 13:42 timeperiods_nagios2.cfg
100
101    Notez que le paquet installe des fichiers dont le nom comporte
102    "nagios2". Ceci est dû au fait qu'il s'agit des mêmes fichiers
103    que ceux utilisés pour le paquet Debian de Nagios version 2.
104    Toutefois, une modification a été apportée au fichier de
105    configuration hôte passerelle "gateway", cŽest pourquoi il a été
106    créé avec le nom correct "nagios3".
107
108
1095. Vous avez une configuration qui surveille déjà votre système
110   (localhost_nagios2.cfg) et votre passerelle amont par défaut
111   (host-gateway_nagios3.cfg).
112
113Jetez un coup d'oeil au fichier de configuration de la passerelle
114par défaut : il est très simple.
115
116(Remarque : la fonctionnalité de complétion à l'aide de la touche
117Tabulation est utile ici. Tapez "cat host-g" puis appuyez sur
118Tabulation ; le nom du fichier est complété automatiquement)
119
120    # cat host-gateway_nagios3.cfg
121
122    # Une définition de l'hôte pour la passerelle de la route par défaut
123    define host {
124            host_name   gateway
125            alias       Default Gateway
126            address     10.10.0.254
127            use         generic-host
128            }
129
130
131
132PARTIE II
133Configuration des équipements
134-----------------------------------------------------------------------------
135
1360. Ordre de configuration
137
138Conceptuellement nous allons construire nos fichiers de configuration
139en partant du périphérique "le plus proche" pour aller ensuite vers
140les plus éloignés.
141
142En procédant dans cet ordre, vous définirez les dispositifs faisant
143office de parents pour d'autres périphériques.
144
145En cas de doute, pensez à consulter le schéma du réseau de notre classe.
146
147Nous recommandons la création d'instances comme ceci:
148
149rtr   (routeur de sortie : 10.10.0.254)
150sw    (commutateur de la classe : 10.10.0.253, parent : rtr)
151rtr1  (routeur du groupe 1 : 10.10.0.201, parent : sw)
152rtr2  (routeur du groupe 2 : 10.10.0.202, parent : sw)
153rtr3  (routeur du groupe 3 : 10.10.0.203, parent : sw)
154rtr4  (routeur du groupe 4 : 10.10.0.204, parent : sw)
155rtr5  (routeur du groupe 5 : 10.10.0.205, parent : sw)
156rtr6  (routeur du groupe 6 : 10.10.0.206, parent : sw)
157rtr7  (routeur du groupe 7 : 10.10.0.207, parent : sw)
158rtr8  (routeur du groupe 8 : 10.10.0.208, parent : sw)
159rtr9  (routeur du groupe 9 : 10.10.0.209, parent : sw)
160rtr10 (routeur du groupe 10 : 10.10.0.210, parent : sw)
161
162pc1     (10.10.0.1, parent : s1)
163pc2     (10.10.0.2, parent :       s2)
164pc3     (10.10.0.2, parent : s1)
165pc4     (10.10.0.2, parent :       s2)
166.
167pc19    (10.10.0.19, parent : s1)
168pc20    (10.10.0.20, parent :      s2)
169
170(remarquez que les PC impaires ont comme parent s1, les paires, s2)
171
172s1      (sur le backbone : 10.10.0.241, parent : sw)
173s2      (sur le backbone : 10.10.0.242, parent : sw)
174noc     (sur le backbone : 10.10.0.250, parent : sw)
175ap1     (sur le backbone : 10.10.0.251, parent : sw)
176
177Nous recommandons d'intégrer ces éléments dans les fichiers suivants :
178
179routers.cfg         (rtr, ap1, rtr1...rtr10)
180switches.cfg        (sw, s1, s2)
181noc.cfg             (noc)
182group1pcs.cfg           (pc1, pc2)
183group2pcs.cfg           (pc3, pc4)
184group3pcs.cfg           (pc5, pc6)
185group4pcs.cfg           (pc7, pc8)
186group5pcs.cfg           (pc9, pc10)
187group6pcs.cfg           (pc11, pc12)
188group7pcs.cfg           (pc13, pc14)
189group8pcs.cfg           (pc15, pc16)
190group9pcs.cfg           (pc17, pc18)
191group10pcs.cfg          (pc19, pc20)
192
1931. Nous devons d'abord indiquer à Nagios de surveiller le routeur
194   de passerelle de notre classe, à savoir 10.10.0.254 :
195
196   # cd /etc/nagios3/conf.d/
197
198Créez le routeur de passerelle de la manière suivante :
199
200   # editor routers.cfg
201
202define host {
203    use         generic-host
204    host_name   rtr
205    alias       Gateway router
206    address     10.10.0.254
207}
208
209Dans le même fichier, créez les configs pour les routeurs du groupe :
210
211define host {
212    use         generic-host
213    host_name   rtr1
214    alias       Group 1 Router
215    address     10.10.0.201
216    parents     sw
217}
218
219Procédez de même pour ap1, rtr2, rtr3, rtr4, rtr5, rtr6, rtr7, rtr8, rtr9,
220rtr10
221       
222Notez que l'entrée "sw" pour notre commutateur de passerelle n'a
223pas encore été créée. C'est la prochaine étape.
224
225Sauvegardez le fichier et quittez.
226
227
2282. Créez un fichier nommé switches.cfg et ajoutez une entrée pour cet élément :
229
230   # editor switches.cfg
231
232define host {
233    use         generic-host
234    host_name   sw
235    alias       Backbone switch
236    address     10.10.0.253
237    parents     rtr
238}
239
240
241Ajoutons également nos commutateurs virtuels - s1 et s2 (les
242parents étant sw) :
243
244
245Par exemple :
246
247define host {
248    use         generic-host
249    host_name   s1
250    alias       s1
251    address     10.10.0.241
252    parents     sw
253}
254
255define host {
256    use         generic-host
257    host_name   s2
258    alias       s2
259    address     10.10.0.242
260    parents     sw
261}
262
263Sauvegardez et quittez :
264
265À ce stade, Nagios est configuré pour surveiller si nos hôtes
266principaux (les parents) sont actifs (UP)sur le réseau de notre
267classe. La prochaine étape consiste à ajouter les différents hôtes,
268à savoir les  images des PC virtuels de la classe (pc1 à pc39)
269
270Veillez à ajouter lŽentrée "parents" correcte pour chaque hôte.
271
272Rappelez-vous que si vous ne comprenez pas les relations de parenté
273existant au sein de notre réseau, vous pouvez consulter le schéma
274logique de ce dernier ici :
275
276  http://noc.ws.nsrc.org/dakar-gestion-supervision-reseau/wiki/TopologieReseau
277
278Faites référence aux transparents de la présentation qui parlent
279de la gestion des parents, dans la présentation:
280
281"Notion de Parents"
282
283
284LES ÉTAPES 2A - 2C DOIVENT ÊTRE RÉPÉTÉES À CHAQUE MISE À JOUR DE
285LA CONFIGURATION !
286   
287
2882a. Vérifiez que vos fichiers de configuration sont corrects :
289
290    # nagios3 -v /etc/nagios3/nagios.cfg
291
292    ... Le système devrait renvoyer des avertissements du type :
293Warning: Host 'rtr' has no services associated with it!
294Warning: Host 'sw' has no services associated with it!
295etc.
296...
297Total Warnings: N
298Total Errors:   0
299
300Les choses semblent normales - Aucun problème grave n'a été décelé
301pendant le contrôle.
302
303Nagios indique qu'il est inhabituel de surveiller un périphérique
304aux seules fins de s'assurer de son existence sur le réseau, sans
305surveiller également les services associés.
306
307
3082b. Rechargez/Redémarrez Nagios
309
310    # /etc/init.d/nagios3 restart
311
312L'utilisation de l'option "restart" (redémarrage) n'est pas toujours
313fiable à 100 % en raison d'un bogue dans le script d'initialisation
314de Nagios.
315
316Par sécurité, vous pouvez prendre l'habitude de procéder comme ci-dessous :
317
318    # /etc/init.d/nagios3 stop
319    # /etc/init.d/nagios3 start
320
321
3222c. Accédez à l'interface web (http://pcN.ws.nsrc.org/nagios3) et
323vérifiez que les hôtes que vous venez d'ajouter sont visibles dans
324l'interface. Cliquez sur "Host Detail" (Détail des hôtes) sur la
325gauche de l'écran Nagios pour vérifier. L'état qui s'affiche peut
326être "PENDING" (en attente) jusqu'à ce que le contrôle soit effectué.
327
328
329ASTUCE : Vous allez devoir répéter cette opération à plusieurs
330reprises. Si vous regroupez l'ensemble sur une seule ligne, comme
331ci-dessous, alors vous pourrez utiliser la touche de déplacement
332vers le haut et relancer le tout en une seule fois :
333
334    nagios3 -v /etc/nagios3/nagios.cfg && /etc/init.d/nagios3 restart
335
336Le double '&&' assure que le redémarrage n'aura lieu que si la
337configuration est valide.
338
339
3403. Créez les entrées pour les PC de la classe
341
342Maintenant que nos routeurs et commutateurs sont définis, nous
343allons pouvoir créer des entrées pour tous nos PC très facilement.
344Pensez aux relations de parenté :
345
346Ici encore, si vous ne comprenez pas la relation de parenté, pensez
347à consulter le schéma du réseau de la classe à l'adresse suivante:
348
349  http://noc.ws.nsrc.org/dakar-gestion-supervision-reseau/wiki/TopologieReseau
350
351Voici trois exemples d'entrées. Une pour le NOC, une pour le pc1
352et une autre pour le pc20. Vous devriez pouvoir utiliser cet exemple
353pour créer des entrées pour tous les PC de la classe plus le NOC.
354
355Nous pourrions placer ces entrées dans des fichiers séparés mais,
356étant donné la petite taille de notre réseau, nous allons utiliser
357un seul fichier appelé pcs.cfg.
358
359REMARQUE : Ne créez pas d'entrée pour votre propre PC ou routeur.
360Cela a déjà été fait dans le fichier /etc/nagios3/conf.d/localhost_nagios2.cfg.
361Cette définition permet de définir le point de vue du réseau Nagios. Par
362conséquent, lorsque vous arrivez à l'étape où vous pourriez créer une entrée
363pour votre PC, ignorez-la et passez au PC suivant dans la liste.
364
365Décrivons d'abord les machines de notre NOC qui, pour le moment, comprend
366une machine.
367
368    # editor noc.cfg
369       
370# le NOC de notre classe
371
372define host {
373    use         generic-host
374    host_name   noc
375    alias       machine du NOC de l'atelier
376    address     10.10.0.250
377    parents     sw
378}
379
380
381Enregistrez et fermez le fichier. Créez ensuite un fichier pour
382décrire les périphériques du groupe un, en procédant comme indiqué
383ci-dessous :
384
385        # editor group1pcs.cfg
386
387# PCs
388
389define host {
390    use         generic-host
391    host_name   pc1
392    alias       pc1
393    address     10.10.0.1
394    parents     s1
395}
396
397define host {
398    use         generic-host
399    host_name   pc2
400    alias       pc2
401    address     10.10.0.2
402    parents     s2
403}
404
405
406
407Procédez ainsi pour tous les PC du groupe 1 ; notez que le parent
408est conservé. Lorsque vous avez terminé, sauvegardez et fermez le
409fichier.
410
411Faites de même pour les PC du groupe 2 :
412
413        # editor group2pcs.cfg
414
415define host {
416    use         generic-host
417    host_name   pc3
418    alias       pc3
419    address     10.10.0.3
420    parents     s1
421}
422
423
424define host {
425    use         generic-host
426    host_name   pc4
427    alias       pc4
428    address     10.10.0.4
429    parents     s2
430}
431
432
433Procédez ainsi pour tous les PC du groupe 2 ; notez bien le parent
434s1/s2 (PC impaires = parent s1, paires = parent s2). Lorsque vous avez
435terminé, sauvegardez et fermez le fichier.
436
437Faites attention aux entrées des parents et aux adresses IP.
438
439Prenez les trois entrées ci-dessus et développez-les pour créer les
440entrées restantes organisées par groupe pour tous les PC actifs.
441En d'autres termes, créez les entrées des PC 1 à 20 par groupe (en
442pensant à ignorer votre PC).
443
444
445Comme précédemment, répétez les étapes 2a à 2c pour vérifier votre
446configuration, corrigez les erreurs éventuelles et activez-la.
447
4485. Visualisez votre instance Nagios sur le web. Notez que "Status
449   Map" (Carte dŽétat) vous offre une représentation graphique des
450   relations parent-enfant que vous avez définies.
451
452
453PARTIE III
454
455Configurer le contrôle des services du NOC de la classe
456-------------------------------------------------------
457
4580. Configuration
459
460Maintenant que notre matériel est configuré, nous pouvons commencer
461à indiquer à Nagios les services à surveiller sur le matériel
462configuré, comment regrouper le matériel de façon intéressante,
463comment regrouper les services, etc.
464
4651. Affectez un contrôle de services au NOC de notre classe
466
467    # editor hostgroups_nagios2.cfg
468
469    - Trouver le groupe d'hôtes nommé "ssh-servers". Dans la section membres
470          de la définition, remplacez la ligne :
471
472members                 localhost
473
474    par
475
476members                 localhost,noc
477
478Sauvegardez le fichier et quittez
479
480Vérifiez que vos modifications sont correctes :
481
482        # nagios3 -v /etc/nagios3/nagios.cfg
483       
484Redémarrez Nagios pour voir les nouveaux services associés à votre hôte :
485
486        # /etc/init.d/nagios3 restart
487
488Cliquez sur "Service Detail" (Détails du service) dans l'interface web de
489Nagios pour voir votre nouvelle entrée.
490
491
492PARTIE IV
493Définition des services pour tous les PC
494-----------------------------------------------------------------------------
495
4960. Par défaut, l'intervalle de contrôle normal (normal_check_interval)
497des services est de 5 (minutes) dans generic-service_nagios2.cfg.
498Vous pouvez porter cette valeur à 1 pour accélérer la détection des
499problèmes de service, tout du moins  dans l'atelier.
500
5011. Déterminez les services à définir et les périphériques associés
502
503   - C'est le coeur même de l'utilisation de Nagios et des outils de
504     surveillance réseau en général.
505
506 Jusqu'ici, nous avons simplement utilisé la commande ping pour
507 vérifier que les hôtes physiques sont actifs sur notre réseau et
508 nous avons commencé à surveiller un seul service sur un seul hôte
509 (votre PC). La prochaine étape consiste à décider quels services
510 vous souhaitez surveiller pour chacun des hôtes de la classe.
511
512   - Caractéristiques de cette classe particulière :
513
514     Routeurs :  Service ssh et snmp
515     Commutateurs : Service telnet et éventuellement ssh ainsi que snmp
516     PC :      Tous les PC offrent un service ssh et http et devraient
517                   avoir un service SNMP maintenant
518               Le NOC offre aussi un service snmp
519             
520     Nous allons donc configurer Nagios afin qu'il vérifie ces
521     services sur ces périphériques.
522
5232.) Vérifiez que SSH est exécuté sur les routeurs et les images des PC de
524    l'atelier
525
526   - Dans le fichier services_nagios2.cfg, il existe déjà une entrée
527     pour le contrôle des services SSH, vous n'avez donc pas besoin
528     de créer cette étape. Au lieu de cela, il vous suffit de redéfinir
529     l'entrée "ssh-servers" dans le fichier
530         /etc/nagios3/conf.d/hostgroups_nagios2.cfg.
531
532         L'entrée initiale dans le fichier ressemblait à ceci :
533
534# A list of your ssh-accessible servers
535define hostgroup {
536        hostgroup_name  ssh-servers
537                alias           SSH servers
538                members         localhost,noc
539        }
540
541     Que faut-il modifier à votre avis ?
542         
543         Corriger la ligne "members". Vous devez créer des entrées pour tous les
544         PC de la classe, les routeurs et les commutateurs exécutant ssh.
545
546     Avec ces informations et le schéma du réseau, vous devriez pouvoir
547         finaliser cette entrée.
548     
549     L'entrée devrait ressembler à ceci :
550
551define hostgroup {
552        hostgroup_name  ssh-servers
553                alias           SSH servers
554                members         localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pc10,pc11,pc12,pc13,pc14,pc15,pc16,pc17,pc18,pc19,pc20
555        }
556
557         Remarque : conservez "localhost" - Cette entrée identifie
558         votre PC et représente le point de vue réseau de Nagios.
559         Ainsi, par exemple, si vous êtes sur le "pc3", vous ne
560         devrez pas inclure "pc3" dans la liste des PC de la classe,
561         car il est représenté par l'entrée "localhost".
562         
563         L'entrée "members" sera une longue ligne et bouclera
564         probablement à l'écran.
565
566         Pensez à inclure l'ensemble des PC et routeurs que vous
567         avez définis. N'incluez pas d'entrées si elles ne sont pas
568         déjà définies dans pcs.cfg, switches.cfg ou routers.cfg.
569
570    - Lorsque vous avez terminé, effectuez le contrôle avant démarrage :
571
572    # nagios3 -v /etc/nagios3/nagios.cfg
573
574    Si tout semble correct, redémarrez Nagios
575
576    # /etc/init.d/nagios3 stop
577    # /etc/init.d/nagios3 start
578
579    et visualisez vos modifications dans l'interface web de Nagios.
580
581        Pour poursuivre avec les groupes d'hôtes, vous pouvez créer des
582        groupes supplémentaires pour une utilisation ultérieure, comme par
583        exemple tous nos serveurs virtuels. NŽhésitez pas à modifier de
584        nouveau le fichier hostgroups_nagios2.cfg :
585
586     # editor hostgroups_nagios2.cfg
587
588        et ajoutez les lignes suivantes à la fin du fichier :
589
590# Une liste de routeurs virtuels
591define hostgroup {
592        hostgroup_name  cisco7200
593                alias           Cisco 7200 Routers
594                members         rtr1,rtr2,rtr3,rtr4,rtr5,rtr6,rtr7,rtr8,rtr9,rtr10
595        }
596
597Enregistrez et fermez le fichier. Vérifiez que tout est correct :
598
599    # nagios3 -v /etc/nagios3/nagios.cfg
600
601    Si tout semble correct, alors redémarrez Nagios
602
603    # /etc/init.d/nagios3 stop
604    # /etc/init.d/nagios3 start
605
6063.) Vérifiez que http fonctionne sur tous les PC de la classe.
607
608    - Cette étape est presque identique à l'exercice précédent. Il
609      vous suffit de modifier la création du service HTTP pour chaque
610      PC (pas de routeurs ou de commutateurs). Rappelez-vous que vous
611      n'avez pas besoin d'ajouter votre machine car celle-ci est déjà
612      définie en tant que "localhost".
613
6144.) OPTIONS SUPPLÉMENTAIRES : Plutôt que de simplement vérifier
615    qu'un serveur Web est exécuté sur les PC de la classe, vous pourriez
616    également vérifier que le service nagios3 est disponible, en demandant
617    le chemin /nagios3/. Cela signifie passer des options supplémentaires
618    au plugin check_http.
619
620     Pour une description des options disponibles, tapez les commandes
621     suivantes :
622
623      # /usr/lib/nagios/plugins/check_http
624      # /usr/lib/nagios/plugins/check_http --help
625
626     et bien sûr vous pouvez consulter la documentation nagios en
627     ligne ou rechercher sur Google des informations sur check_http.
628     Vous pouvez même lancer le plugin manuellement pour effectuer
629     un contrôle ponctuel de service :
630
631     # /usr/lib/nagios/plugins/check_http -H localhost -u /nagios3/
632
633     L'objectif est donc de configurer Nagios pour invoquer check_http de cette
634         manière. Créez un fichier pour stocker les informations, qu'on appellera
635         service-nagios.cfg
636       
637        # editor service-nagios.cfg
638
639       
640define command{
641        command_name    check_http_arg
642        command_line    /usr/lib/nagios/plugins/check_http -H '$HOSTADDRESS$' $ARG1$
643        }
644
645define service {
646        hostgroup_name                  nagios-servers
647        service_description             NAGIOS
648        check_command                   check_http_arg!-u /nagios3/
649        use                             generic-service
650}
651
652
653        Sauvegardez et fermez le fichier ; vous devrez bien sûr
654        créer un groupe d'hôtes appelé nagios-servers pour créer
655        un lien vers ce contrôle de services.
656
657        # editor hostgroups_nagios2.cfg
658
659À la fin du fichier, ajoutez les lignes suivantes :
660
661        define hostgroup {
662        hostgroup_name  nagios-servers
663        alias Servers faisant tourner Nagios
664        members localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pc10,pc11,pc12,pc13,pc14,pc15,pc16,pc17,pc18,pc19,pc20
665        }
666       
667        Ajoutez tous les serveurs de la salle (jusqu'à 20)
668
669     Ceci étant fait, vérifiez que Nagios affiche une alerte d'échec
670     d'authentification (car il essaie de télécharger la page sans
671     fournir le nom d'utilisateur/mot de passe). Il existe un
672     paramètre supplémentaire que vous pouvez passer à check_http_arg
673     pour obtenir cette information ; voyons si vous arrivez à le
674     trouver.
675
676     EXPLICATION ENNUYEUSE:
677
678     ATTENTION : selon la tradition du "Debian aime tout changer",
679     la définition que donne Debian de la commande check_http dans
680     /etc/nagios-plugins/config/http.cfg n'est *pas* la même que
681     celle recommandée dans la documentation nagios3.
682
683     Il manque $ARG1$, ce qui fait que les paramètres à passer à
684     check_http sont ignorés. Vous pourriez ainsi penser surveiller
685     /nagios3/ alors quŽen réalité vous surveillez la racine !
686
687     C'est pourquoi nous avons dû créer une nouvelle définition de
688     commande, "check_http_arg".
689     Vous pourriez en créer une plus spécifique telle que "check_nagios"
690     ou modifier la définition Ubuntu de check_http afin qu'elle
691     corresponde à l'usage courant.
692
693
694
695PARTIE V
696Création d'autres groupes d'hôtes
697-----------------------------------------------------------------------------
698
6990. Dans l'affichage Web, consultez les pages "Hostgroup Overview"
700   (Vue dŽensemble des groupes dŽhôtes), "Hostgroup Summary" (Résumé
701   des groupes dŽhôtes), "Hostgroup Grid" (Liste des groupes dŽhôtes).
702   Ceci permet de regrouper facilement des hôtes ayant des caractéristiques
703   communes (par exemple, hôtes sur le même site ou ayant le même
704   rôle).
705
7061. Mettez à jour /etc/nagios3/conf.d/hostgroups_nagios2.cfg
707
708    - Pour les exercices qui suivent, il sera très utile de créer
709      ou de modifier les groupes d'hôtes suivants :
710
711      Serveurs Debian
712      Routeurs
713      Commutateurs
714 
715      Si vous modifiez le fichier
716      /etc/nagios3/conf.d/hostgroups_nagios2.cfg, vous verrez une
717      entrée pour les serveurs Debian contenant uniquement l'hôte
718      local (localhost).
719
720      Modifiez cette entrée afin qu'elle inclue tous les PC de la
721      classe, y compris le NOC (cela suppose que vous avez créé une
722      entrée "noc" dans votre fichier pcs.cfg). Pensez à ignorer
723      l'entrée de votre PC car il est représenté par l'entrée
724      localhost.
725
726    # editor /etc/nagios3/conf.d/hostgroups_nagios2.cfg
727
728     Mettez à jour l'entrée suivante :
729
730
731# A list of your Debian GNU/Linux servers
732define hostgroup {
733        hostgroup_name  debian-servers
734                alias           Debian GNU/Linux Servers
735                members         localhost
736        }
737     
738      De sorte que le paramètre "members" ressemble aux lignes
739      suivantes. Utilisez votre schéma du réseau de la classe afin
740      de confirmer le nombre exact de machines et de noms dans votre
741      atelier.
742
743                members         localhost,noc,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pc10,pc11,pc12,pc13,pc14,pc15,pc16,pc17,pc18,pc19,pc20
744
745      Veillez à ce que la ligne boucle et qu'elle ne soit pas sur
746      deux lignes distinctes. Dans le cas contraire vous obtiendrez
747      une erreur lorsque vous redémarrerez Nagios. Rappelez-vous
748      que votre PC est "localhost".
749
750      - Ceci étant fait, créez deux groupes d'hôtes supplémentaires,
751        un pour les routeurs et l'autre pour les commutateurs. Appelez
752        ces entrées "routers" et "switches".
753
754      - Lorsque vous avez terminé, veillez à vérifier votre travail
755        et redémarrez Nagios.
756
757      - NŽoubliez pas dŽignorer l'entrée de votre PC car il est
758        représenté par l'entrée localhost.
759 
7602. Revenez à l'interface web et regardez vos nouveaux groupes d'hôtes
761
762PARTIE VI
763Création de groupes de service
764-----------------------------------------------------------------------------
765
7661. Créez des groupes de services ssh et http pour chaque série de PC.
767
768   - L'objectif, ici, est de créer trois groupes de services. Chaque
769   groupe de service sera pour chaque paire de PC (1-2, 3-4). Nous voulons
770   regrouper ces PC et inclure l'état de leurs services ssh et http.
771   Pour ce faire, créez le fichier suivant :
772
773   # editor /etc/nagios3/conf.d/servicegroups.cfg
774
775     Voici un échantillon du groupe de service pour le groupe 1 :
776
777define servicegroup {
778        servicegroup_name       group1-servers
779        alias                   group 1 servers
780        members                 pc1,SSH,pc1,HTTP,pc2,SSH,pc2,HTTP
781}
782
783define servicegroup {
784        servicegroup_name       group2-servers
785        alias                   group 2 servers
786        members                 pc3,SSH,pc3,HTTP,pc4,SSH,pc4,HTTP
787}
788
789            - Notez que la ligne "members" doit boucler (ne doit pas
790              être sur deux lignes)
791       
792            - Notez que "SSH" et "HTTP" doivent être en majuscules car
793              c'est ainsi qu'apparaît la service_description dans le
794              fichier /etc/nagios3/conf.d/services_nagios2.cfg
795         
796            - Vous devez également créer une entrée pour les autres
797              groupes de serveurs
798
799            - Enregistrez vos modifications, vérifiez votre travail et
800              redémarrez Nagios. Maintenant, si vous cliquez sur les
801              rubriques du menu Servicegroup dans l'interface web de
802              Nagios, vous devriez voir ces informations regroupées.
803
804
805
806PARTIE VII
807Configuration de l'accès public à l'interface web de Nagios
808-----------------------------------------------------------------------------
809
8101. Modifiez le fichier /etc/nagios3/cgi.cfg de façon à donner un
811  accès public (guest) en lecture seule à l'interface web de Nagios.
812
813    - Par défaut, Nagios est configuré pour donner à l'utilisateur
814      nagiosadmin un accès complet en lecture/écriture via l'interface
815      web de Nagios. Vous pouvez changer le nom de cet utilisateur,
816      ajouter d'autres utilisateurs, modifier le mode d'authentification
817      des utilisateurs, définir les utilisateurs ayant accès aux
818      différentes ressources et bien d'autres choses encore via le
819      fichier cgi.cfg.
820
821    - Créons tout d'abord un utilisateur et mot de passe "guest"
822      (invité) dans le fichier htpasswd.users.
823     
824    # htpasswd /etc/nagios3/htpasswd.users guest
825
826      Vous pouvez utiliser n'importe quel mot de passe (ou aucun).
827      Choisir pour mot de passe "guest" n'est pas un mauvais choix.
828
829    - Modifiez ensuite le fichier /etc/nagios3/cgi.cfg et regardez
830      quel type d'accès a été donné à l'utilisateur nagiosadmin. Par
831      défaut, vous verrez les directives suivantes (à noter la présence
832      de commentaires entre chaque directive) :
833
834      authorized_for_system_information=nagiosadmin
835      authorized_for_configuration_information=nagiosadmin
836      authorized_for_system_commands=nagiosadmin
837      authorized_for_all_services=nagiosadmin
838      authorized_for_all_hosts=nagiosadmin
839      authorized_for_all_service_commands=nagiosadmin
840      authorized_for_all_host_commands=nagiosadmin
841
842      Nous allons maintenant indiquer à Nagios d'accorder à l'utilisateur
843          "guest" un certain niveau dŽaccès aux informations via l'interface web.
844          Vous pouvez choisir ce que vous souhaitez, mais les autorisations
845          d'accès se présentent généralement de la manière suivante :
846
847      authorized_for_system_information=nagiosadmin,guest
848      authorized_for_configuration_information=nagiosadmin,guest
849      authorized_for_system_commands=nagiosadmin
850      authorized_for_all_services=nagiosadmin,guest
851      authorized_for_all_hosts=nagiosadmin,guest
852      authorized_for_all_service_commands=nagiosadmin
853      authorized_for_all_host_commands=nagiosadmin
854
855    - Une fois les modifications effectuées, enregistrez le fichier cgi.cfg, vérifiez votre travail et redémarrez Nagios.
856
857    - Pour voir si vous pouvez vous connecter en tant qu'utilisateur
858      "guest", il peut être nécessaire d'effacer les cookies de votre
859      navigateur internet. Vous ne remarquerez aucune différence au
860      niveau de l'interface web. La différence réside dans le fait
861      qu'un certain nombre d'éléments accessibles via l'interface web
862      (forcer un contrôle de services/hôtes, planifier les contrôles,
863      faire des commentaires, etc) ne fonctionnent pas pour l'utilisateur
864      invité.
865
866
867PARTIE VIII
868Informations étendues dŽhôte ("améliorer l'aspect de vos graphiques")
869-----------------------------------------------------------------------------
870
8711. Mettez à jour extinfo_nagios2.cfg
872
873    - Si vous souhaitez utiliser des icônes appropriées pour les
874    hôtes que vous avez définis dans Nagios, c'est ici qu'il faut
875    le faire. Nous avons les trois types de périphériques :
876
877      Routeurs Cisco
878      Commutateurs Cisco
879      Serveurs Ubuntu
880
881      Il y a une collection assez importante d'icônes à votre disposition ici :
882
883      /usr/share/nagios3/htdocs/images/logos/
884
885      Elles ont été installées par défaut sous forme de paquets
886      dépendants du paquet nagios3 sous Ubuntu. Dans certains cas,
887      vous pouvez trouver des icônes spécifiques au modèle de votre
888      matériel, mais afin de simplifier les choses, nous allons
889      utiliser les icônes suivantes pour notre matériel :
890
891      /usr/share/nagios3/htdocs/images/logos/base/debian.*
892      /usr/share/nagios3/htdocs/images/logos/cook/router.*
893      /usr/share/nagios3/htdocs/images/logos/cook/switch.*
894
895    - La prochaine étape consiste à modifier le fichier
896
897      /etc/nagios3/conf.d/extinfo_nagios2.cfg
898
899      et à indiquer à nagios l'image que vous souhaitez utiliser pour
900          représenter vos périphériques.
901
902    # editor /etc/nagios3/conf.d/extinfo_nagios2.cfg
903
904      Voici à quoi ressemble une entrée pour vos routeurs (il existe
905      déjà une entrée pour les serveurs Debian qui fonctionnera
906      sans modification). Notez que le modèle de routeur (3600)
907      n'est pas d'une importance capitale. L'image utilisée représente
908      un routeur type.
909
910define hostextinfo {
911        hostgroup_name   routers
912        icon_image       cook/router.png
913        icon_image_alt   Cisco Routers (3600)
914        vrml_image       router.png
915        statusmap_image  cook/router.gd2
916}
917
918      Créez maintenant une entrée pour vos commutateurs. Ceci étant
919      fait, vérifiez votre travail et redémarrez Nagios. Jetez un
920      oeil au "Status Map" (graphique dŽétat des hôtes) dans l'interface
921      web.
922
923      Le graphique devrait avoir meilleur aspect, avec de véritables
924      icônes à la place des points d'interrogation.
925
926
927
928EN OPTION
929--------
930
931* Vérifiez que SNMP est exécuté sur le NOC de la classe
932
933    - Vous devrez d'abord créer le contrôle de service SNMP approprié
934      dans le fichier /etc/nagios3/conf.d/services_nagios2.cfg. C'est
935      en cela que Nagios est vraiment impressionnant. Il existe des
936      centaines, si ce n'est des milliers, de contrôles de service
937      accessibles via les différents sites Nagios sur internet. Pour
938      savoir quels plugins sont installés par Ubuntu dans le paquet
939      Nagios3 que nous avons installé, consultez le répertoire suivant:
940
941    # ls /usr/lib/nagios/plugins
942
943      Comme vous pouvez le constater, nous disposons déjà d'un
944      plugin check_snmp. Si vous êtes intéressé par les options que
945      prend le plugin, vous pouvez l'exécuter depuis la ligne de
946      commande en tapant :
947
948    # /usr/lib/nagios/plugins/check_snmp
949    # /usr/lib/nagios/plugins/check_snmp --help
950
951      Afin de connaître, entre autres, les options disponibles, le
952      plugin check_snmp et Nagios permettent de créer des contrôles
953      système très complexes ou spécifiques.
954
955    - Pour voir les différents contrôles de services/hôtes qui ont
956      été créés avec le plugin check_snmp, consultez le fichier
957      /etc/nagios-plugins/config/snmp.cfg. Vous verrez qu'il existe
958      un grand nombre de contrôles préconfigurés utilisant snmp, parmi
959      lesquels :
960
961      snmp_load
962      snmp_cpustats
963      snmp_procname
964      snmp_disk
965      snmp_mem
966      snmp_swap
967      snmp_procs
968      snmp_users
969      snmp_mem2
970      snmp_swap2
971      snmp_mem3
972      snmp_swap3
973      snmp_disk2
974      snmp_tcpopen
975      snmp_tcpstats
976      snmp_bgpstate
977      check_netapp_uptime
978      check_netapp_cupuload
979      check_netapp_numdisks
980      check_compaq_thermalCondition
981     
982      Mieux encore, vous pouvez créer très facilement d'autres
983      contrôles de services.
984
985      Afin de vérifier que snmpd (le service SNMP sous Linux)
986      fonctionne, nous devons interroger SNMP. En l'absence de
987      réponse, Nagios considèrera que le service SNMP ne fonctionne
988      pas sur cet hôte. Les plugins de contrôle de service que vous
989      utilisez, tels que check_http, check_ssh et check_telnet,
990      procèdent de la même manière.
991
992    - Dans le cas présent, nous allons créer un nouveau contrôle
993      de service que nous appellerons "check_system". Ce contrôle de
994      service se connectera à l'hôte spécifié, utilisera la chaîne
995      de communauté privée que nous avons définie en classe et
996      interrogera snmp - dans le cas présent, nous demanderons la
997      description du système, ou l'OID "sysDescr.0" -
998
999    - Pour ce faire, commencez par éditer le fichier
1000      /etc/nagios-plugins/config/snmp.cfg :
1001
1002    # editor /etc/nagios-plugins/config/snmp.cfg
1003
1004      Au début du fichier (ou à la fin, au choix), ajoutez l'entrée suivante :
1005      (Vous pouvez la copier-coller au lieu d'essayer de la ressaisir.)
1006
1007# definition de la commande 'check_system'
1008define command{
1009       command_name    check_system
1010       command_line    /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C
1011'$ARG1$' -o sysDescr.0
1012        }
1013     
1014
1015      Vous noterez que "command_line" ne constitue qu'une seule
1016      ligne. Si vous effectuez un copier-coller de la ligne dans
1017      votre éditeur, il se peut qu'elle ne boucle pas correctement
1018          et que vous deviez ajouter manuellement la dernière partie de la
1019          ligne:
1020         
1021        '$ARG1$' -o sysDescr.0
1022                       
1023      (... en fin de ligne.)
1024
1025    - Vous devez maintenant modifier le fichier
1026      /etc/nagios3/conf.d/services_nagios2.cfg en ajoutant ce contrôle
1027      de service. Nous allons exécuter ce contrôle sur l'ensemble des
1028      serveurs de la classe ou sur le groupe d'hôtes "debian-servers".
1029
1030    - Modifiez le fichier /etc/nagios3/conf.d/services_nagios2.cfg
1031
1032    # editor /etc/nagios3/conf.d/services_nagios2.cfg
1033
1034      À la fin du fichier, ajoutez la définition suivante :
1035
1036# verifier que snmp tourne sur tous nos serveurs
1037define service {
1038        hostgroup_name                  snmp-servers
1039        service_description             SNMP
1040        check_command                   check_system!xxxxxx
1041        use                             generic-service
1042        notification_interval           0
1043                # spécifiez une valeur > 0 si vous voulez être renotifié
1044}
1045
1046      "xxxxxx" est la chaîne de communauté privée qui a été (ou qui
1047      sera) définie pour la classe.
1048     
1049      Vous noterez que nous avons inclus ici notre chaîne de
1050      communauté privée au lieu de la coder en dur dans le fichier
1051      snmp.cfg à une étape précédente. Vous devez remplacer les
1052      "xxxxx" par la chaîne de communauté snmp donnée en classe,
1053      faute de quoi ce contrôle ne fonctionnera pas.
1054     
1055    - Nous devons maintenant créer le groupe "snmp-serveurs" dans
1056      notre fichier hostgroups_nagios2.cfg.
1057
1058      Modifiez le fichier /etc/nagios3/conf.d/hostgroups_nagios2.cfg
1059      et allez à la fin du fichier. Créez la définition de groupe
1060      d'hôtes suivante :
1061     
1062# Une liste de machines qui offrent un service SNMP, sur lesquelles nous allons
1063# verifier ce service
1064define hostgroup {
1065           hostgroup_name       snmp-servers
1066                   alias        snmp servers
1067                   members      noc
1068          }
1069         
1070        - Notez que pour "members", vous pourriez également créer
1071          les commutateurs et routeurs des groupes 1 et 2. Mais
1072          l'élément particulier (MIB) que nous recherchons, "sysDescr.0",
1073          peut ne pas être présent sur les commutateurs et/ou routeurs,
1074          entraînant l'échec du contrôle.
1075
1076    - Vérifiez maintenant que vos modifications sont correctes et
1077      redémarrez Nagios.
1078
1079    - Si vous cliquez sur la rubrique Service Detail de l'interface
1080      web, vous devriez voir apparaître le contrôle SNMP pour l'hôte
1081      du NOC.
1082     
1083    - Après la présentation et les exercices SNMP en classe, vous pourrez
1084          revenir à cet exercice et ajouter tous les ordinateurs
1085          de la classe à la liste des membres dans le fichier
1086          hostgroups_nagios2.cfg, définition des groupes d'hôtes
1087          snmp-serveurs. N'oubliez pas de définir votre PC en tant
1088          que "localhost".
1089