Agenda: ejercicios-nagios.txt

File ejercicios-nagios.txt, 21.9 KB (added by admin, 9 years ago)
Line 
1Gestion y Monitoreo de Redes
2Instalacion y Configuracion de Nagios
3
4Notas:
5------
6* Comandos que empiezan con un "$" implica que deberia ejecutar el comando
7  como un usuario general - no como root.
8* Comandos que empiezan con un "#" implica que deberia trabajar como el usuario root.
9* Comandos con lineas mas especificas (como "GW-RTR>" o "mysql>") implica que esta
10  ejecutando el comando en un equipo remoto o dentro otro programa.
11* Si una linea termina con un "\" esto indica que el comando sigue en la proxima
12  linea y Ud. deberia tratar el comando si como fuera en una sola linea.
13
14Ejercicios
15-----------
16
17Ejercicios Parte I
18------------------
19
200. Haz un log in en su PC o abre una ventana de terminal como el usuario sysadmin.
21
22
231. Para instalar Nagios version 3 en Ubuntu podria hacer esto como el usuario
24   sysadmin usando "sudo" o como root:
25
26    # apt-get install nagios3
27   
28   Ya esta instalado Version 3 de Nagios, pero puede correr el comando si quiere. 
29
302. Nagios deberia estar corriendo ya
31
32    - En un Navegador vaya al:
33
34    http://localhost/nagios3/
35
36    - Cuando pregunta por un usuario y clave usa:
37
38        user: nagiosadmin
39        pass: <clave del taller>
40
413. Miramos a los archivos instalados...
42
43    # cd /etc/nagios3/
44
45    # ls -l
46    -rw-r--r-- 1 root root    1882 2008-12-18 13:42 apache2.conf
47    -rw-r--r-- 1 root root   10524 2008-12-18 13:44 cgi.cfg
48    -rw-r--r-- 1 root root    2429 2008-12-18 13:44 commands.cfg
49    drwxr-xr-x 2 root root    4096 2009-02-14 12:33 conf.d
50    -rw-r--r-- 1 root root      26 2009-02-14 12:36 htpasswd.users
51    -rw-r--r-- 1 root root   42539 2008-12-18 13:44 nagios.cfg
52    -rw-r----- 1 root nagios  1293 2008-12-18 13:42 resource.cfg
53    drwxr-xr-x 2 root root    4096 2009-02-14 12:32 stylesheets
54   
55    # ls -l conf.d/
56
57    -rw-r--r-- 1 root root 1695 2008-12-18 13:42 contacts_nagios2.cfg
58    -rw-r--r-- 1 root root  418 2008-12-18 13:42 extinfo_nagios2.cfg
59    -rw-r--r-- 1 root root 1152 2008-12-18 13:42 generic-host_nagios2.cfg
60    -rw-r--r-- 1 root root 1803 2008-12-18 13:42 generic-service_nagios2.cfg
61    -rw-r--r-- 1 root root  210 2009-02-14 12:33 host-gateway_nagios3.cfg
62    -rw-r--r-- 1 root root  976 2008-12-18 13:42 hostgroups_nagios2.cfg
63    -rw-r--r-- 1 root root 2167 2008-12-18 13:42 localhost_nagios2.cfg
64    -rw-r--r-- 1 root root 1005 2008-12-18 13:42 services_nagios2.cfg
65    -rw-r--r-- 1 root root 1609 2008-12-18 13:42 timeperiods_nagios2.cfg
66
67    Archivos con un "2" en su nombre no han cambiado desde version 2 de Nagios.
68    El archivo host-gateway_nagios3.cfg fue cambiado entre versiones, asi tiene
69    un nombre nuevo.
70
71PARTE II
72Configurando Equipos en Nagios
73-----------------------------------------------------------------------------
74
750. El Orden de la Configuracion
76
77Conceptualmente vamos a construir nuestra configuracion desde arriba por abajo de nuestra Red.
78Asi, vamos a definir entradas por los rutadores y conmutadores (switches) primero. Despues esto
79empezamos con los PCs, etc...
80
81Llendo desde arriba por abajo habra definido los dispositivos que acutan como parientes por el
82resto de los dispositvos primero.
83
841. Configurar Nagios monitorear las rutadores del curso
85
86    # cd /etc/nagios3/conf.d/
87
88    # vi routers.cfg
89   
90define host {
91    use         generic-host
92    host_name   gw
93    alias       rutador del borde
94    address     10.10.254.254
95}
96   
97   Ahora definimos entradas por los tres enrutadores que tenemos. Nota
98   la entrada de "parents" de "sw1" - vamos a definir "sw1" en switches.cfg.
99 
100define host {
101    use         generic-host
102    host_name   rtr1
103    alias       rutador del grupo 1 de VMs
104    address     10.10.1.254
105    parents     sw1
106}
107
108define host {
109    use         generic-host
110    host_name   rtr2
111    alias       rutador del grupo 2 de VMs
112    address     10.10.2.254
113    parents     sw1
114}
115
116define host {
117    use         generic-host
118    host_name   rtr3
119    alias       enrutador de los clientes
120    address     10.10.3.254
121    parents     sw1
122}
123
124Graba y salga del archivo /etc/nagios3/conf.d/routers.cfg
125
126
1272. Configuramos los Conmutadores (Switches)
128
129Nota que cada switch tendra una relacion de pariente con uno de las rutadores.
130
131        # vi switches.cfg
132
133Primero el switch de "backbone" (troncal)
134
135define host {
136    use         generic-host
137    host_name   sw1
138    alias       conmuatdor troncal
139    address     10.10.254.253
140    parents     gw
141}
142
143Nota las entradas de "parents" - Ya hicimos las entradas de los "parents" en
144el archivo rutadores.cfg, asi esto funciona.
145
146Ahora el conmutador de los clientes del curso (portatiles, PCs de Windows)
147
148define host {
149    use         generic-host
150    host_name   sw2
151    alias       conmutador de los clientes
152    address     10.10.3.250
153    parents     rtr3
154}
155
156Graba y salga del archivo /etc/nagios3/conf.d/switches.cfg
157
1583. Crea entradas por cada PC en la sala
159
160Ahora en un solo archivo vamos a definir todo los PCs en la sala. Puede hacer esto en varios archivos (grupo1-pcs.cfg, grupo2-pcs.cfg) si quiere, pero por nuestro curso usamos un solo archivo.
161
162Abajo hay tres entradas de ejemplo. Usa estos para hacer las entradas por todo los PCs
163
164Nota los parientes (parents) de cada uno. PCs de grupo 1 tienen como pariente el enrutador del grupo 1,
165o rtr1. PCs de grupo 2 tienen como pariente el enrutador del grupo 2 or rtr2. Normalmente seria un switch,
166pero por el hecho que estamos usando maquinas virtuales no ne necesario tener un switch.
167
168IMPORTANTE! No agrega una entrada por tu PC! Esto ya esta hecho en el archivo
169/etc/nagios3/conf.d/localhost_nagios2.cfg - En este archivo puede definir el "parent" por el localhost
170para que el instante de Nagios aparesca bien en los graficos de su Red.
171
172Puede ver el archivo /etc/hosts para ver todo los PCs, conmutadores y rutatores de la sala.
173
174Grupo 1
175-------
176pc1 a pc13
177
178Grupo 2
179-------
180pc14 a pc26
181
182Ahora, hacemos las entradas:
183
184        # vi pcs.cfg
185       
186# Nuestro NOC
187
188define host {
189    use         generic-host
190    host_name   noc
191    alias       Centro de Operaciones
192    address     10.10.3.5
193    parents     sw2
194}
195
196# PCs de Grupo 1
197
198define host {
199    use         generic-host
200    host_name   pc1
201    alias       pc1 grupo 1
202    address     10.10.1.1
203    parents     rtr1
204}
205
206# PCs de Grupo 2
207
208define host {
209    use         generic-host
210    host_name   pc14
211    alias       pc14 grupo 2
212    address     10.10.2.14
213    parents     rtr2
214}
215
216Ahora sigue y agrega entradas por todo los PCs.
217
218Graba y salga del archivo /etc/nagios3/conf.d/pcs.cfg
219
220Ahora verificamos que nuestros archivos estan bien configurados
221
222
2235. Verificamos que nuestros archivos estan bien configurados
224
225    # nagios3 -v /etc/nagios3/nagios.cfg
226
227    ... Deberia ver :
228
229Total Warnings: NN  (aviso de falta de chequeo de servicios. No se preocupa.)
230Total Errors:   0
231
232Things look okay - No serious problems were detected during the check.
233
234
2355. Recargar / Reinicializar Nagios
236
237    # /etc/init.d/nagios3 stop
238    # /etc/init.d/nagios3 start
239
240Puede hacer "restart" pero no es 100% confiable.
241
2426. Vaya al interfaz de la Web (http://localhost/nagios3) y verifica que las
243   entradas (PCs, conmutadores, rutadores) estan visibles. Apreta "Host Detail"
244   por la izquierda en Nagios para ver todo esto.
245
246
247PART III
248Configurar un Chequeo de Servicio por el NOC del Taller
249-----------------------------------------------------------------------------
250
2510. Configurando
252
253Ahora que tenemos el hardware configurado vamos a configurar monitoreo de services, hacer grupos
254de hardware y servicios, etc.
255
2561. Associar un chequeo de servicio por el NOC del Taller
257
258    # vi hostgroups_nagios2.cfg
259
260    - Busca el hostgroup con nombre "ssh-servers". En la linea de "Members" cambia la linea:
261
262members                 localhost
263
264    a
265
266members                 localhost,noc
267
268Salga y graba el archivo.
269
270Verifica que todo esta bien:
271
272        # nagios3 -v /etc/nagios3/nagios.cfg
273       
274Reinitializar Nagios para ver los servicios nuevos asociado con el PC noc:
275
276        # /etc/init.d/nagios3 Restart
277
278Apreta "Service Detail" para ver su entrada nueva.
279
280
281PART IV
282Definir Servicios por todo sus PCs
283-----------------------------------------------------------------------------
284
2851. Determinar que servicios estan corriendo por que dispositivos
286
287   - Esto es la clave de como uno usa Nagios y las herramientas de monitoreo.
288     Ahora decidimos que servicios vamos a monitorear para cada PC en nuestra sala:
289
290   - En nuestro casa tenemos:
291
292     rutadores:    corriendo ssh y snmp
293     conmutadores: corriendo telnet y/o ssh y snmp
294     pcs:          Corriendo ssh, http y snmp
295             
296     Configuramos Nagios hacer checqueos por estes servicios en las maquinas de la
297     sala
298
299
3002.) Verificar que SSH esta corriendo en los rutadores y en los PCs
301
302   - En el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg ya hay una entrada por
303     el chequeo del servicio de SSH. Solo tiene que redefinirlo. Al principio la
304     entrada se vea asi:
305
306# A list of your ssh-accessible servers
307define hostgroup {
308        hostgroup_name  ssh-servers
309                alias           SSH servers
310                members         localhost,noc
311        }
312
313     Que deberiamos cambiar? Si, la linea de "members". Va a ser largo con todo los PCs listado
314     _menos_ su PC. Por ejemplo:
315
316define hostgroup {
317        hostgroup_name  ssh-servers
318                alias           SSH servers
319                members         localhost,noc,pc1,pc2,pc3,pc4....,rtr1,rtr2,rtr3
320        }
321     
322    Pero, incluye todo los PCs
323
324    - Ahora salga y graba el archivo y verifica que todo esta bien:
325
326    # nagios3 -v /etc/nagios3/nagios.cfg
327
328    - Si todo esta bien haz:
329
330    # /etc/init.d/nagios3 stop
331    # /etc/init.d/nagios3 start
332
333    y revisa todo en la pagina web de Nagios.
334
3353.) Verifica que http esta corriendo en todo los PCs de la sala.
336
337    - Esto es casi igual que el ejercicio anterior. Solo haz el cambio por el servicio
338      HTTP agregando los miembros de cada PC (rutadores y conmutadores no). Recuerda de
339      no agregar tu maquina porque ya esta configurado como "localhost"
340           
341
342PART V
343Crear mas Grupos del Host
344-----------------------------------------------------------------------------
345
3461. Actualizar /etc/nagios3/conf.d/hostgroups_nagios2.cfg
347
348    - Por los ejercicios que vienen es muy util tener hech los grupos de hosts:
349
350      debian-servers
351      routers
352      switches
353 
354      Abre el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg y vas a ver una
355      entra para debian-servers que solo incluya el localhost. Actualizar esto
356      para incluir todo los PCs en la sala.
357
358    # vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg
359
360     Actualizar la entrada que dice:
361
362# A list of your Debian GNU/Linux servers
363define hostgroup {
364        hostgroup_name  debian-servers
365                alias           Debian GNU/Linux Servers
366                members         localhost
367        }
368     
369      Para que "members" contiene todo los pcs. Mas o menos asi:
370
371                members         localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9
372                                pc10,pc11,pc12,pc13,pc14,pc15,pc16,pc17,pc18, etc...
373
374      - La linea no puede tener un break. Tiene que seguir como una sola linea.
375
376      - Despues agrega entradas por "routers" y uno por "switches" - Usa los
377        nombres "routers" y "switches"
378   
379      - Cuando terminas verifica que todo esta bien, recarga Nagios y vea los
380        cambos en el interfaz Web.
381
382PART V
383
384Informacion Extendida de los Hosts (maquinas) - "O, hacer los graficos bonitos"
385-------------------------------------------------------------------------------
386
3871. Actualizar extinfo_nagios2.cfg
388
389    - Si quiere usar iconos en los opciones de graficos que tiene Nagios
390      (el Statusmap) esto es el archivo donde se define esto. Tenemos tres
391      tipos de maquinas:
392
393      Rutadores
394      Conmutadores
395      Servidores
396
397      Hay un repositorio bastante grande de imagenes de iconos disponible aqui:
398
399      /usr/share/nagios/htdocs/images/logos/
400
401      Estan instalado por defecto cuando instalamos Nagios en Ubuntu. Hay iconos
402      muy especifico de varios modelos de equipos, pero para hacer las cosas mas
403      simples vamos a usar los siguiente iconos:     
404
405      /usr/share/nagios/htodcs/images/logos/base/debian.*
406      /usr/share/nagios/htdocs/images/logos/cook/router.*
407      /usr/share/nagios/htdocs/images/logos/cook/switch.*
408
409    - El proximo paso es editar el archivo /etc/nagios3/conf.d/extinfo_nagios2.cfg
410      y decir a Nagios que icons usar por cada maquina.
411
412    # vi /etc/nagios3/conf.d/extinfo_nagios2.cfg
413
414      Aqui es una muestra de como se vea una entrad para los rutadores. Ya hay una
415      entrada por debian-servers que funciona como esta. El modelo de rutador listado
416      no esta importante. El imagen es generico.
417
418define hostextinfo {
419        hostgroup_name   routers
420        icon_image       cook/router.png
421        icon_image_alt   Cisco Routers (3600)
422        vrml_image       router.png
423        statusmap_image  cook/router.gd2
424}
425
426      Ahora agrega una entrada por tus conmutadores. Recuerda que llamaste el grupo
427      "switches". Despues, graba el archivo, verifica que todo esta bien y revise el
428      Status Map en la interfaz web para ver como esta todo.
429
430
431PART VI
432Crear Grupos de Servicio
433-----------------------------------------------------------------------------
434
4351. Crear un grupo de servicio para ssh y http for cada PC.
436   
437   - La idea es crear dos grupos de services. Es un dispositivo y los servicios
438     asociado con el dispostivo por los dos grupos. Para hacer esto tiene que
439     crear un archivo nuevo:
440
441   # vi /etc/nagios3/conf.d/servicegroups.cfg
442
443     Una muestra para el grupo 1 (no es completo):
444
445define servicegroup {
446        servicegroup_name       servidores-grupo1
447        alias                   Servidores de Grupo 1
448        members                 pc1,SSH,pc1,HTTP,pc2,SSH,pc2,HTTP,pc3,SSH,pc3,HTTP,pc4,SSH,pc4,HTTP,pc5,SSH,
449pc5,HTTP,pc6,SSH,pc6,HTTP,pc7,SSH,pc7,HTTP,pc8,SSH,pc8,HTTP,pc9,SSH,pc9,HTTP
450        }
451
452        - La linea es una sola linea. No puede tener un break.
453
454        - SSH y FTP estan en mayuscalas porque asi es como la "service_description" esta escrito en el
455          archivo /etc/nagios3/conf.d/services_nagios2.cfg.
456
457        - Haz una entrada por los servidores de Grupo 2.
458
459        - Graba sus cambios y salga del archivo. Verifica que todo esta bien y recarga Nagios.
460
461        - Vea los grupos en el interfaz web bajo los menus "Servicegroup"
462
463
464PART VII
465Configurar acceso a "Guest" por el Interfaz Web de Nagios
466-----------------------------------------------------------------------------
467
4681. Abre el archivo /etc/nagios3/cgi.cfg para dar acceso de solo leer (r/o) a
469   un usuario "guest" por el interfaz de Web.
470
471    - Por defecto el usuario nagiosadmin tiene acceso leer y escribir (r/w)
472      a traves el interfaz Web de Nagios. Si quiere permitir otros usuarios
473      ver el estatus de su Red pero sin tener acceso de escribir (ejecutar
474      comandos, etc.) tenemos que hacer algunos cambios en el archivo de
475      cgi.cfg.
476
477    - Primero hacemos el usuario "guest" con un clave en el archivo do htpasswd.user.
478     
479    # cd /etc/nagios3
480    # htpasswd /etc/nagios3/htpasswd.users guest
481
482      Puede usar cualquier clave, pero uno de "guest" no es tan malo...
483
484    - Ahora abre el archivo /etc/nagios3/cgi.cfg and busca el tipo de acceso que quiere
485      dar. Vas a ver esto (hemos sacado todo los comentarios que haya en el archivo):
486
487      authorized_for_system_information=nagiosadmin
488      authorized_for_configuration_information=nagiosadmin
489      authorized_for_system_commands=nagiosadmin
490      authorized_for_all_services=nagiosadmin
491      authorized_for_all_hosts=nagiosadmin
492      authorized_for_all_service_commands=nagiosadmin
493      authorized_for_all_host_commands=nagiosadmin
494
495      Cambia estas entradas para permitir que el usuario "guest" tiene acceso a todo
496      la informacion que da Nagios, pero que no tiene acceso para hacer cambios. Lo
497      siguiente es tipico de acceso solo leer:
498
499      authorized_for_system_information=nagiosadmin,guest
500      authorized_for_configuration_information=nagiosadmin,guest
501      authorized_for_system_commands=nagiosadmin
502      authorized_for_all_services=nagiosadmin,guest
503      authorized_for_all_hosts=nagiosadmin,guest
504      authorized_for_all_service_commands=nagiosadmin
505      authorized_for_all_host_commands=nagiosadmin
506
507    - Haz los cambios, graba el archivo, salga del archivo, verifica que todo esta bien
508      y recargar Nagios.
509
510    - Para ver si esta funcionando vay a http://localhost/nagios3 y en tu navegador tiene
511      que limpiar los "cookies" para que recibes el dialogo de login por Nagios. Haz un
512      recargar de la pagina y intenta de entrar como el usuario guest.
513
514
515
516
517OPCIONAL (No traducido)
518-----------------------
519
5201.) Verifica que SNMP esta corriendo en el NOC
521
522    - First you will need to add in the appropriate service check for SNMP in the file
523      /etc/nagios3/conf.d/services_nagios2.cfg. This is where Nagios is impressive. There
524      are hundreds, if not thousands, of service checks available via the various Nagios
525      sites on the web. You can see what plugins are installed by Ubuntu in the nagios3
526      package that we've installed by looking in the following directory:
527
528    # ls /usr/lib/nagios/plugins
529
530      As you'll see there is already a check_snmp plugin available to us. If you are
531      interested in the options the plugin takes you can execute the plugin from the
532      command line by typing:
533
534    # /usr/lib/nagios/plugins/check_snmp
535
536      to see what options are available, etc. You can use the check_snmp plugin and
537      Nagios to create very complex or specific system checks.
538
539    - Now to see all the various service/host checks that have been created using the
540      check_snmp plugin you can look in /etc/nagios-plugins/config/snmp.cfg. You will
541      see that there are a lot of preconfigured checks using snmp, including:
542
543      snmp_load
544      snmp_cpustats
545      snmp_procname
546      snmp_disk
547      snmp_mem
548      snmp_swap
549      snmp_procs
550      snmp_users
551      snmp_mem2
552      snmp_swap2
553      snmp_mem3
554      snmp_swap3
555      snmp_disk2
556      snmp_tcpopen
557      snmp_tcpstats
558      snmp_bgpstate
559      check_netapp_uptime
560      check_netapp_cupuload
561      check_netapp_numdisks
562      check_compaq_thermalCondition
563     
564      And, even better, you can create additional service checks quite easily.
565      For the case of verifying that snmpd (the SNMP service on Linux) is running we
566      need to ask SNMP a question. If we don't get an answer, then Nagios can assume
567      that the SNMP service is down on that host. When you use service checks such as
568      check_http, check_ssh and check_telnet this is what they are doing as well.
569
570    - In our case, let's create a new service check and call it "check_system". This
571      service check will connect with the specified host, use the private community
572      string we have defined in class and ask a question of snmp on that ask - in this
573      case we'll ask about the System Description, or the OID "sysDescr.0" -
574
575    - To do this start by editing the file /etc/nagios-plugins/config/snmp.cfg:
576
577    # vi /etc/nagios-plugins/config/snmp.cfg
578
579      At the top (or the bottom, your choice) add the following entry to the file:
580
581# 'check_system' command definition
582define command{
583       command_name    check_system
584       command_line    /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C
585'$ARG1$' -o sysDescr.0
586        }
587     
588      You may wish to copy and past this vs. trying to type this out.
589
590          Note that "command_line" is a single line. If you copy and paste in vi the line
591          may not wrap properly and you may have to manually add the part:
592         
593                        '$ARG1$' -o sysName.0
594                       
595          to the end of the line.
596
597    - Now you need to edit the file /etc/nagios3/conf.d/services_nagios2.cfg and add
598      in this service check. We'll run this check against all our servers in the
599      classroom, or the hostgroup "debian-servers"
600
601    - Edit the file /etc/nagios3/conf.d/services_nagios2.cfg
602
603    # vi /etc/nagios3/conf.d/services_nagios2.cfg
604
605      At the bottom of the file add the following definition:
606
607# check that snmp is up on all servers
608define service {
609        hostgroup_name                  snmp-servers
610        service_description             SNMP
611        check_command                   check_system!public
612        use                             generic-service
613        notification_interval           0 ; set > 0 if you want to be renotified
614}
615
616      The "xxxxxx" is the community string previously (or to be) defined in class.
617      In our case this is "public" for our PCs.
618
619      For our routers and switches the community string is "unan-ro" - Create another
620      service entry like this:
621
622# check that snmp is up on all servers
623define service {
624        hostgroup_name                  snmp-routers-switches
625        service_description             SNMP
626        check_command                   check_system!unan-ro
627        use                             generic-service
628        notification_interval           0 ; set > 0 if you want to be renotified
629}
630     
631      Note that we have included our private community string here vs. hard-coding
632      it in the snmp.cfg file earlier.
633     
634    - Now we must create the "snmp-servers" group in our hostgroups_nagios2.cfg file.
635      Edit the file /etc/nagios3/conf.d/hostgroups_nagios2.cfg and go to the end of the
636      file. Add in the following hostgroup definition:
637     
638# A list of snmp-enabled devices on which we wish to run the snmp service check
639define hostgroup {
640           hostgroup_name       snmp-servers
641                   alias        snmp servers
642                   members      noc,pc1,pc2,pc3,pc4,pc5, etc...
643          }
644
645And for our routers and switches:
646
647define hostgroup {
648           hostgroup_name       snmp-routers-switches
649                   alias        snmp on our network infrastructure
650                   members      gw-rtr,grupo1-rtr,grupo2-rtr,grupo1-sw,grupo2-sw
651          }
652
653    - Now verify that your changes are correct and restart Nagios.
654
655    - If you click on the Service Detail menu choice in web interface you should see
656      the SNMP check appear.
657     
658    - After we do the SNMP presentation and exercises in class, then you could come
659      back to this exercise and add in all the classroom PCs to the members list in the
660      hostgroups_nagios2.cfg file, snmp-servers hostgroup definition. Remember to list
661      your PC as "localhost".
662
663
664Ultima actualizacion 3 de Agosto 2010 por HA