Agenda: exercises-tickets-cacti-nagios-smokeping-vFR.txt

File exercises-tickets-cacti-nagios-smokeping-vFR.txt, 17.3 KB (added by admin, 7 years ago)
Line 
1Gestion et Surveillance de Réseau
2
3Création de tickets Cacti, Nagios et Smokeping avec Request Tracker
4----------------------------------------------------------------
5
6Notes :
7------
8* 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.
9* Les commandes précédées de "#" signifient que vous devez travailler en tant qu'utilisateur root.
10* 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.
11
12Exercices
13---------
14
15À ce stade de la semaine, Cacti, Nagios et Smokeping devraient être installés sur vos PC. Ces exercices vous montrent comment configurer chacun de ces programmes pour envoyer des alertes au systÚme de tickets RT (Request Tracker) afin de générer des tickets.
16
17
18Exercices Partie I
19----------------
20
210. Ouvrez une session sur votre PC ou ouvrez une fenêtre de terminal en tant qu'utilisateur sysadm.
22
231. Vérifiez que rt-mailgate a été configuré pour fonctionner avec votre agent MTA
24---------------------------------------------------------------------
25
26Ouvrez le fichier /etc/aliases :
27
28        $ sudo editor /etc/aliases
29
30Le fichier /etc/aliases devrait comporter les deux lignes suivantes :
31
32net-comment: "|/usr/bin/rt-mailgate --queue net --action comment --url http://localhost/rt/"
33net:        "|/usr/bin/rt-mailgate --queue net --action correspond --url http://localhost/rt/"
34
35Si ces lignes ne figurent pas /etc/aliases, veillez à les ajouter. Lorsque vous avez terminé, enregistrez le fichier et quittez. Vous devez ensuite indiquer au MTA (agent de transfert de messagerie) qu'il y a de nouveaux alias à utiliser :
36
37        $ sudo newaliases
38       
39       
402. Configurez Smokeping
41----------------------
42
43Dans le fichier :
44
45        /etc/smokeping/config.d/Alerts
46       
47Vous pouvez indiquer à Smokeping où envoyer les alertes. Editez le fichier :
48
49        $ sudo vi /etc/smokeping/config.d/Alerts
50       
51Et modifiez le début du fichier comme suit :
52
53        *** Alerts ***
54        to = net@localhost
55        from = smokealert@localhost
56
57     Ã€ la fin du fichier, ajoutez une autre alerte comme ceci :
58
59        +anydelay
60        type = rtt
61        # in milliseconds
62        pattern = >1
63        comment = Just for testing
64
65Veillez à ce que tout le texte du fichier soit aligné à gauche.
66
67Maintenant sauvegardez le fichier et quittez.
68
69Observez 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.
70
71Vérifiez ensuite que des alertes sont définies pour certains de vos fichiers Targets.
72Vous 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.
73
74Dans le cas présent, nous allons modifier le fichier Targets et activer les alertes pour nos contrÎles de latence DNS.
75   
76        $ sudo vi /etc/smokeping/config.d/Targets
77
78Recherchez (ou ajoutez si nécessaire) la section suivante dans le fichier :
79
80        +DNS
81        probe = DNS
82                ...
83               
84Nous allons maintenant ajouter une entrée pour un serveur DNS global répondant de maniÚre récursive.
85
86        ++GoogleA
87        menu = 8.8.8.8
88        title = DNS Latency for google-public-dns-a.google.com
89        host = google-public-dns-a.google.com
90        alerts = anydelay
91
92Observez la présence d'une ligne "alerts=anydelay".
93
94Pour résumer, la section suivante devrait donc être présente vers la fin de votre fichier Targets :
95
96        +DNS
97        probe = DNS
98        menu = DNS Latency
99        title = DNS Latency Probes
100
101        ++GoogleA
102        menu = 8.8.8.8
103        title = DNS Latency for google-public-dns-a.google.com
104        host = google-public-dns-a.google.com
105        alerts = anydelay
106
107(Les éléments doivent être alignés à gauche dans le fichier).
108
109Enregistrez et fermez le fichier, puis redémarrez Smokeping :
110
111    $ sudo service smokeping restart
112
113Maintenant, vérifiez dans RT si vous avez reçu quelque chose de Smokeping. L'apparition d'un nouveau ticket peut prendre jusqu'à 5 minutes.
114
115REMARQUE : - Si vous n'avez pas déjà configuré les contrÎles de latence DNS pour Smokeping vous devrez modifier le fichier /etc/smokeping/config.d/Probes et ajouter l'entrée DNS comme ceci :
116
117        $ sudo vi /etc/smokeping/config.d/Probes
118       
119 Ã€ la fin du fichier, ajoutez :
120
121        + DNS
122        binary = /usr/bin/dig
123        pings = 5
124        step = 180
125        lookup = www.nsrc.org
126
127Enregistrez et fermez le fichier, puis redémarrez Smokeping :
128
129        $ sudo service smokeping restart
130
131
1323. Nagios et création de tickets avec Request Tracker
133----------------------------------------------
134
135Pour configurer RT et Nagios afin que les alertes Nagios génÚrent automatiquement des tickets vous devez suivre la procédure suivante :
136
137* Créez une entrée de contact appropriée pour Nagios dans /etc/nagios3/conf.d/contacts_nagios2.cfg
138
139* Créez la commande appropriée dans Nagios pour utiliser l'interface rt-mailgate. La commande est définie dans /etc/nagios3/commands.cfg
140
141Les deux étapes suivantes devraient déjà avoir été réalisées dans RT si vous avez terminé les exercices RT.
142
143* Installez le logiciel rt-mailgate et configurez-le correctement dans votre fichier /etc/aliases pour l'agent MTA que vous utilisez.
144
145* Configurez les files d'attente requises dans RT afin de recevoir les e-mails que lui transmet Nagios via rt-mailgate.
146
147
1485. Configurez un Contact dans Nagios
149---------------------------------
150
151   - Modifiez le fichier /etc/nagios3/conf.d/contacts_nagios2.cfg
152
153   $ sudo bash
154   # vi /etc/nagios3/conf.d/contacts_nagios2.cfg
155
156   - Dans ce fichier, nous allons d'abord ajouter un nouveau nom de contact sous l'entrée de contact root par défaut. Le nouveau contact devrait ressembler à ceci :
157
158define contact{
159        contact_name                    net
160        alias                           RT Alert Queue
161        service_notification_period     24x7
162        host_notification_period        24x7
163        service_notification_options    c
164        host_notification_options       d
165        service_notification_commands   notify-service-ticket-by-email
166        host_notification_commands      notify-host-ticket-by-email
167        email                           net@localhost
168        }
169
170   -  NE SUPPRIMEZ PAS la ligne contact_name "root"!! Cette entrée va en dessous du contact "root".
171
172   - la valeur "c" spécifiée sur la ligne "service_notification_option" signifie d'envoyer une notification uniquement lorsqu'un service est considéré comme "critique" par Nagios (c'est-à-dire arrêté). La valeur "d" en "host_notification_option" signifie arrêt. Le fait de spécifier uniquement "c" et "d" signifie qu'aucune notification ne sera envoyée pour d'autres états.
173
174   - Notez l'adresse e-mail utilisée "net @ localhost" – c'est important car elle a été précédemment définie pour RT.
175
176   - Nous devons maintenant créer un Groupe de contact contenant ce contact.
177     Nous appellerons ce groupe "tickets". Tapez ceci à la fin du fichier :
178
179define contactgroup{
180        contactgroup_name       tickets
181        alias                   email to ticket system for RT
182        members                 net,root
183        }
184
185   - Vous pourriez supprimer le membre "root", mais nous l'avons conservé afin qu'un autre utilisateur reçoive l'e-mail et nous aide à dépanner en cas de problÚmes.
186
187   - Maintenant que votre contact est créé, vous devez créer les commandes mentionnées à l'étape initiale de création de contact ci-dessus, à savoir "notify-service-ticket-by-email" et "notify-host-ticket-by-email".
188
189
1906. Mettez à jour les commandes Nagios
191-------------------------
192
193   - Pour créer les commandes "notify-service-ticket-by-email" et "notify-host-ticket-by-email" vous devez modifier le fichier /etc/nagios3/commands.cfg.
194
195   # vi /etc/nagios3/commands.cfg
196
197  - Ce fichier contient déjà deux définitions de commandes que nous utilisons.  Il s'agit des commandes "notify-host-by-email" et "notify-service-by-email". Nous allons ajouter deux nouvelles commandes.
198
199  - Nous vous conseillons fortement de COPIER-COLLER le texte ci-dessous. Il est presque impossible de le taper sans erreurs.
200
201  - Placez ces deux nouvelles entrées _SOUS_ les commandes actuelles "notify-host-by-email" et "notify-service-by-email". Ne supprimez pas les anciennes.
202
203  - REMARQUE : Les commandes ci-dessous ne contiennent pas de sauts de lignes. Il s'agit d'une seule ligne. Soyez vigilent car la fonction COPIER-COLLER peut insérer des sauts de ligne en fonction des éditeurs et de l'environnement.
204
205################################################################
206# Commandes supplémentaires créées pour l'atelier de gestion de réseau #
207################################################################
208
209# 'notifiy-host-ticket-by-email' command definition
210define command{
211        command_name    notify-host-ticket-by-email
212        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
213        }
214
215# 'notify-service-ticket-by-email' command definition
216define command{
217        command_name    notify-service-ticket-by-email
218        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
219        }
220
221
2227. Choisissez un service à surveiller avec des tickets RT
223----------------------------------------------
224
225
226   - La derniÚre étape consiste à indiquer à Nagios que vous souhaitez adresser des notifications au contact "tickets" à propos d'un service particulier. Si vous regardez dans le fichier /etc/nagios3/conf.d/generic-service_nagios2.cfg, vous verrez que le groupe de contact (contact_groups) par défaut est "admins". Pour changer ceci pour un service, modifiez le fichier /etc/nagios3/conf.d/services_nagios2.cfg et l'entrée "contact_groups" d'une des définitions de service.
227
228    - Pour envoyer un e-mail afin que des tickets soient générés dans RT en cas d'arrêt HTTP dans une boîte, vous devez modifier le contrÃŽle de service SSH de la façon suivante :
229
230# check that web services are running
231define service {
232        hostgroup_name                  http-servers
233        service_description             HTTP
234        check_command                   check_http
235        use                             generic-service
236        notification_interval           0 ; spécifiez une valeur > 0 si vous voulez être renotifié
237        contact_groups                  tickets
238}
239
240     Notez l'élément supplémentaire que nous avons maintenant,"contact_groups". Vous pouvez procéder de même pour d'autres entrées si vous le souhaitez.
241
242   - Lorsque vous avez terminé, enregistrez le fichier et quittez.
243
244   - Redémarrez maintenant Nagios pour vérifier que vos modifications sont correctes.
245
246   # /etc/init.d/nagios3 stop
247   # /etc/init.d/nagios3 start
248
249
2504.) Générez des tickets RT pour les hÎtes
251---------------------------------
252
253   - Pour ce faire, vous devez spécifier "contact_groups tickets" pour les définitions des différents hÃŽtes ou bien modifier le fichier modÚle de tous les hÃŽtes et remplacer l'entrée contact_groups par défaut des tickets. Ce fichier est generic-host_nagios2.cfg.
254
255   - Si c'est ce que vous souhaitez, allez-y. Des tickets seront générés si un hÃŽte tombe en panne et que vous avez spécifié "tickets" comme "contact_groups" pour cet hÃŽte.
256
2575. Visualisez les tickets Nagios dans RT
258---------------------------
259
260Pour vérifier que vos modifications ont été prises en compte, vous pouvez  opérer une surveillance HTTP sur l'un de nos serveurs qui n'exécute pas HTTP. Nous allons prendre le second Mac Mini de notre classe ou la boîte désignée "s1.ws.nsrc.org" (voir le schéma du réseau pour plus de détails).
261     
262Si vous n'avez pas d'entrée pour cette machine, complétez le fichier dans lequel vos PC sont définis. S'il s'agit d'un fichier nommé pcs.cfg, procédez comme suit :
263     
264        # vi /etc/nagios3/conf.d/pcs.cfg
265
266Dans ce fichier, ajoutez (ou vérifiez qu'il y a) une entrée ressemblant à ceci :
267
268define host {
269    use         generic-host
270    host_name   s1
271    alias       s1
272    address     10.10.0.241
273    parents     sw
274}
275
276Enregistrez et fermez le fichier.
277   
278Maintenant, éditez le fichier nommé /etc/nagios3/conf.d/hostgroups_nagios2.cfg et ajoutez s2 au groupe d'hÎtes pour les contrÎles de services http :
279
280        # vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg
281       
282Recherchez l'entrée "hostgroup_name http-servers" et modifiez-la comme suit :
283
284
285# A list of your web servers
286define hostgroup {
287        hostgroup_name  http-servers
288                alias           HTTP servers
289                members         localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pc10,pc11,pc12,
290                                pc13,pc14,pc15,pc16,pc17,pc18,pc19,pc20,pc21,pc22,pc23,pc24,
291                                pc25,pc26,pc28,pc29,pc30,pc31,pc32,pc35,pc37,pc39,s1
292        }
293
294
295N'OUBLIEZ PAS que la ligne listant tous les "membres" ne doit pas comporter de sauts de ligne. Notez que "s1" a été ajouté en fin de ligne.
296
297Maintenant, sauvegardez le fichier, quittez et redémarrez Nagios :
298
299        # service nagios3 stop
300        # service nagios3 start
301
302
303   - Il faudra un certain temps (jusqu'à 10 minutes) à Nagios pour signaler que HTTP est à l'état "critique", mais ensuite un nouveau ticket devrait apparaître dans votre instance RT dans la file d'attente réseau (net) générée par Nagios.
304
305   - N'oubliez pas de visiter http://pcX.ws.nsrc.org/rt/ et de vous connecter en tant qu'utilisateur "sysadmin" avec le mot de passe que vous avez choisi lorsque vous avez créé le compte sysadmin RT. Le nouveau ticket devrait apparaître dans la boîte "10 newest unowned tickets" (10 derniers tickets sans propriétaire) sur la page principale de connexion de RT.
306
3076. Configurez Cacti pour envoyer des e-mails à net@localhost et générer des tickets dans RT
308----------------------------------------------------------------------------
309
310Si vous n'avez pas installé l'architecture de plugins de Cacti, veuillez effectuer cet exercice en dernier.
311
312Vous pouvez voir comment cela fonctionne en vous loguant sur l'instance Cacti exécutée sur la boîte noc où est installée l'architecture de plugins Cacti avec les deux plugins nommés "Settings" (paramÚtres) et "Threshold" (seuil).
313
314Pour voir comment Cacti peut générer un ticket visitez d'abord :
315
316        http://noc.ws.nsrc.org/cacti/
317       
318Connectez-vous en tant que "admin" (mot de passe systÚme), puis :
319
320
321
322        * Cliquez sur l'onglet Console (en haut à gauche)
323        * Cliquez sur "Settings" (en bas à gauche)
324        * Cliquez sur l'onglet "Mail / DNS" (en haut à droite)
325        * Vérifiez que les champs pour les e-mails sont correctement remplis :
326                - Test Email                    (sysadm ou net @ localhost)
327                - Mail Services                 (PHP Mail() Function)
328                - From Email Address            (cacti@localhost)
329                - From Name                     (Cacti System Monitor)
330                - SMTP Hostname                 (localhost)
331                - SMTP Port                     (25)
332               
333Nous devons maintenant créer un seuil (threshold) que nous allons utiliser pour déclencher l'envoi d'un e-mail qui, à son tour, va créer un ticket dans RT :
334
335        * Cliquez sur "Thresholds" (au milieu à gauche)
336        * Cliquez sur le bouton "Add" (ajouter),en haut à droite
337        * Sélectionnez un hÃŽte (localhost, par exemple)
338        * Sélectionnez un graphique (Processus)
339        * Sélectionnez la source de données (proc)
340        * Cliquez sur le bouton "create" (créer)
341
342Un écran détaillé apparaît alors dans lequel vous pouvez spécifier l'action requise en cas d'atteinte du seuil. Vérifiez ou complétez les éléments suivants :
343
344        * Threshold Name (nom du seuil):                Un nom descriptif
345        * Vérifiez que la case "Threshold Enabled" (seuil activé) est cochée
346        * Threshold Type (type de seuil):               valeurs hautes (High) / basses (Low) (pour les processus)
347        * High Threshold (seuil haut):          50 (valeur occasionnant le déclenchement du seuil)
348        * Breach Duration (durée de l'interruption):           5 minutes (un ticket sera généré sous 5 à 10 minutes)
349        * Data Type (type de données) :                        Exact Value (valeur exacte)
350        * Re-Alert Cycle (cycle de réémission d'alerte):              Never (jamais)
351        * Extra Alert Emails (adresses e-mail d'alerte supplémentaires ) :             net@localhost,sysadm@localhost
352       
353Ceci aura pour effet d'envoyer un e-mail à net@localhost sous 5 à 10 minutes. Un nouveau ticket sera créé dans RT. En outre, un e-mail sera envoyé à sysadm@localhost. Vous pouvez consulter l'e-mail en tant qu'utilisateur sysadm en tapant :
354
355        $ mutt -f /var/mail/sysadm
356       
357Vous pouvez créer tous les types d'états de seuil pouvant être déclenchés et entraînant la génération de tickets. N'hésitez pas à utiliser l'instance cacti sur le Noc pour créer de nouveaux seuils. Vous pouvez voir si ces seuils fonctionnent en vous connectant sur l'instance Noc de Request Tracker (RT):
358
359        http://noc.ws.nsrc.org/rt/
360       
361Le nom d'utilisateur est "sysadm" et le mot de passe est celui de la classe.
362
363
364+-----+
365DerniÚre mise à jour : 2 juin 2011
366Hervey Allen
367