1 | Gestion et Surveillance de Réseau |
---|
2 | |
---|
3 | Création de tickets Cacti, Nagios et Smokeping avec Request Tracker |
---|
4 | ---------------------------------------------------------------- |
---|
5 | |
---|
6 | Notes : |
---|
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 | |
---|
12 | Exercices |
---|
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 | |
---|
18 | Exercices Partie I |
---|
19 | ---------------- |
---|
20 | |
---|
21 | 0. Ouvrez une session sur votre PC ou ouvrez une fenêtre de terminal en tant qu'utilisateur sysadm. |
---|
22 | |
---|
23 | 1. Vérifiez que rt-mailgate a été configuré pour fonctionner avec votre agent MTA |
---|
24 | --------------------------------------------------------------------- |
---|
25 | |
---|
26 | Ouvrez le fichier /etc/aliases : |
---|
27 | |
---|
28 | $ sudo editor /etc/aliases |
---|
29 | |
---|
30 | Le fichier /etc/aliases devrait comporter les deux lignes suivantes : |
---|
31 | |
---|
32 | net-comment: "|/usr/bin/rt-mailgate --queue net --action comment --url http://localhost/rt/" |
---|
33 | net: "|/usr/bin/rt-mailgate --queue net --action correspond --url http://localhost/rt/" |
---|
34 | |
---|
35 | Si 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 | |
---|
40 | 2. Configurez Smokeping |
---|
41 | ---------------------- |
---|
42 | |
---|
43 | Dans le fichier : |
---|
44 | |
---|
45 | /etc/smokeping/config.d/Alerts |
---|
46 | |
---|
47 | Vous pouvez indiquer à Smokeping où envoyer les alertes. Editez le fichier : |
---|
48 | |
---|
49 | $ sudo vi /etc/smokeping/config.d/Alerts |
---|
50 | |
---|
51 | Et 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 | |
---|
65 | Veillez à ce que tout le texte du fichier soit aligné à gauche. |
---|
66 | |
---|
67 | Maintenant sauvegardez le fichier et quittez. |
---|
68 | |
---|
69 | 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. |
---|
70 | |
---|
71 | Vérifiez ensuite que des alertes sont définies pour certains de vos fichiers Targets. |
---|
72 | 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. |
---|
73 | |
---|
74 | Dans 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 | |
---|
78 | Recherchez (ou ajoutez si nécessaire) la section suivante dans le fichier : |
---|
79 | |
---|
80 | +DNS |
---|
81 | probe = DNS |
---|
82 | ... |
---|
83 | |
---|
84 | Nous 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 | |
---|
92 | Observez la présence d'une ligne "alerts=anydelay". |
---|
93 | |
---|
94 | Pour 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 | |
---|
109 | Enregistrez et fermez le fichier, puis redémarrez Smokeping : |
---|
110 | |
---|
111 | $ sudo service smokeping restart |
---|
112 | |
---|
113 | Maintenant, 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 | |
---|
115 | REMARQUE : - 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 | |
---|
127 | Enregistrez et fermez le fichier, puis redémarrez Smokeping : |
---|
128 | |
---|
129 | $ sudo service smokeping restart |
---|
130 | |
---|
131 | |
---|
132 | 3. Nagios et création de tickets avec Request Tracker |
---|
133 | ---------------------------------------------- |
---|
134 | |
---|
135 | Pour 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 | |
---|
141 | Les 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 | |
---|
148 | 5. 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 | |
---|
158 | define 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 | |
---|
179 | define 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 | |
---|
190 | 6. 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 |
---|
210 | define 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 |
---|
216 | define 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 | |
---|
222 | 7. 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 |
---|
231 | define 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 | |
---|
250 | 4.) 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 | |
---|
257 | 5. Visualisez les tickets Nagios dans RT |
---|
258 | --------------------------- |
---|
259 | |
---|
260 | Pour 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 | |
---|
262 | Si 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 | |
---|
266 | Dans ce fichier, ajoutez (ou vérifiez qu'il y a) une entrée ressemblant à ceci : |
---|
267 | |
---|
268 | define host { |
---|
269 | use generic-host |
---|
270 | host_name s1 |
---|
271 | alias s1 |
---|
272 | address 10.10.0.241 |
---|
273 | parents sw |
---|
274 | } |
---|
275 | |
---|
276 | Enregistrez et fermez le fichier. |
---|
277 | |
---|
278 | Maintenant, é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 | |
---|
282 | Recherchez l'entrée "hostgroup_name http-servers" et modifiez-la comme suit : |
---|
283 | |
---|
284 | |
---|
285 | # A list of your web servers |
---|
286 | define 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 | |
---|
295 | N'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 | |
---|
297 | Maintenant, 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 | |
---|
307 | 6. Configurez Cacti pour envoyer des e-mails à net@localhost et générer des tickets dans RT |
---|
308 | ---------------------------------------------------------------------------- |
---|
309 | |
---|
310 | Si vous n'avez pas installé l'architecture de plugins de Cacti, veuillez effectuer cet exercice en dernier. |
---|
311 | |
---|
312 | Vous 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 | |
---|
314 | Pour voir comment Cacti peut générer un ticket visitez d'abord : |
---|
315 | |
---|
316 | http://noc.ws.nsrc.org/cacti/ |
---|
317 | |
---|
318 | Connectez-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 | |
---|
333 | Nous 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 | |
---|
342 | Un é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 | |
---|
353 | Ceci 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 | |
---|
357 | Vous 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 | |
---|
361 | Le nom d'utilisateur est "sysadm" et le mot de passe est celui de la classe. |
---|
362 | |
---|
363 | |
---|
364 | +-----+ |
---|
365 | DerniÚre mise à jour : 2 juin 2011 |
---|
366 | Hervey Allen |
---|
367 | |
---|