Ejercicios Nagios
Ejercicios Nagios
Ejercicios Nagios
deberia ejecutar el comando como un usuario general - no como root. * Comandos que empiezan con un "#" implica que deberia trabajar como el usuario root. * Comandos con lineas mas especificas (como "GW-RTR>" o "mysql>") implica que esta ejecutando el comando en un equipo remoto o dentro otro programa. * Si una linea termina con un "\" esto indica que el comando sigue en la proxima linea y Ud. deberia tratar el comando si como fuera en una sola linea. Ayuda ----* Todo los archivos de configuracion estan disponible aqui: http://noc.ws.nsrc.org/configs/nagios3/ Ejercicios ----------Ejercicios Parte I -----------------0. HAZ UNA CONECCION SSH A SU PC
1. INSTALA NAGIOS Para instalar Nagios version 3 en Ubuntu podria hacer esto como el usuario sysadmn usando "sudo" o como root. Como sysadm es asi: $ sudo apt-get install nagios3 Durante la instalacion es posible que Nagios va a instalar el programa Postfix como un MTA (Servidor de Correo) para que se puede mandar correos si es necesario. Si tiene que elegir como se instala Postfix responde con: "Internet Site" Cuando Nagios te pide por una contrasena usa la contrasena del curso. Si quieres tener la documentacion de Nagios en HTML (disponible a traves el interfaz de Nagios) instala: $ sudo apt-get install nagios3-doc Ya, Nagios esta instalado.
http://pcN.ws.nsrc.org/nagios3/ - Cuando pregunta por un usuario y contrasena usa: user: nagiosadmin pass: <clave del taller> Vas a ver que Nagios tiene una entrada por tu maquina (pcN.ws.nsrc.org como "localhost" y por el enlace del puerto (gateway) de nuestra red del taller.
1 1 1 2 1 1 1 2
root 1882 2008-12-18 13:42 apache2.conf root 10524 2008-12-18 13:44 cgi.cfg root 2429 2008-12-18 13:44 commands.cfg root 4096 2009-02-14 12:33 conf.d root 26 2009-02-14 12:36 htpasswd.users root 42539 2008-12-18 13:44 nagios.cfg nagios 1293 2008-12-18 13:42 resource.cfg root 4096 2009-02-14 12:32 stylesheets
$ ls -l conf.d/ -rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r-1 1 1 1 1 1 1 1 1 root root root root root root root root root root root root root root root root root root 1695 418 1152 1803 210 976 2167 1005 1609 2008-12-18 2008-12-18 2008-12-18 2008-12-18 2009-02-14 2008-12-18 2008-12-18 2008-12-18 2008-12-18 13:42 13:42 13:42 13:42 12:33 13:42 13:42 13:42 13:42 contacts_nagios2.cfg extinfo_nagios2.cfg generic-host_nagios2.cfg generic-service_nagios2.cfg host-gateway_nagios3.cfg hostgroups_nagios2.cfg localhost_nagios2.cfg services_nagios2.cfg timeperiods_nagios2.cfg
Archivos con un "2" en su nombre no han cambiado desde version 2 de Nagios. El archivo host-gateway_nagios3.cfg fue cambiado entre versiones, asi tiene un nombre nuevo.
4. REVISA EL ARCHIVO DE CONFIGURACION POR EL GATEWAY DEL CURSO $ cd /etc/nagios3/conf.d/ $ cat host-gateway_nagios3.cfg Vas a ver algo como: # a host definition for the gateway of the default route define host { host_name gateway
PARTE II Configurando Equipos en Nagios ----------------------------------------------------------------------------0. EL ORDEN DE LA CONFIGURACION Conceptualmente vamos a construir nuestra configuracion desde arriba por abajo de nuestra Red. Asi, vamos a definir entradas por los rutadores y conmutadores (switches) primero. Despues empezamos con los PCs. Cuando tengas todo los dispositivos configurado tienes que configurar grupos de dispositivos y darlos nombres. Finalmente, agregra chequeos de servicios a los grupos de dispositivos. Flujo Conceptual de Configuracion --------------------------------OJO: NO ES UN EJERCICIO == Etapa 1 == gw-rtr | | sw | | rtrN | | pcN ==> routers.cfg
==>
==>
==>
== Etapa 2 == Agrupar los dispositivos ==> hostgroups_nagios2.cfg - routers (gw-rtr,rtr1,rtr2,...,rtr6) - switches (sw) - pcs (pc1,pc2,...,pc24,noc) - ssh-servers (localhost,pc1,pc2,...,pc24,ap1,ap2,rtr1,...,rtr6) - http-servers (localhost,pc1,pc2,...,pc24) == Etapa 3 == Asignar chequeos de servicio a grupos ==> services_nagios2.cfg
- http-servers ==> HTTP - ssh-servers ==> SSH == Opcional 1 == Configura acceso de "guest" al interfaz web ==> /etc/nagios3/cgi.cfg == Opcional 2 == Crea Grupos de Servicios ==> servicegroups.cfg == Opcional 3 == Agregar informacion extendida a los dispositivos ==> extinfo_nagios2.cfg
1. CONFIGURAR NAGIOS PARA MONITOREAR LOS ROUTERS DEL CURSO Vamos a trabajar como el usuario root. # sudo bash # cd /etc/nagios3/conf.d/ # vi routers.cfg Abajo son las entradas del archivo. Sugerimos que ud. tipea uno a dos de las entradas. Despues puede hacer un corte y pegar por lo demas. Entiende porque el "parent" de rtr1 a rtr6 (o hasta rtr9) es "sw"? Despues que terminamos con este archivo vamos a configurar la entrada por el switch "sw". Se puede usar el diagrama de red como referencia. # # Archivo con definiciones de los Routers por Nagios # define host { use host_name alias address } define host { use host_name alias address parents } define host { use host_name
generic-host rtr2
alias address parents } define host { use host_name alias address parents } define host { use host_name alias address parents } define host { use host_name alias address parents } define host { use host_name alias address parents }
# # Routers 7, 8 y 9 si estan disponible # define host { use host_name alias address parents } define host { use host_name alias address
sw
# # Nuestros puntos de acceso inalambrico # define host { use host_name alias address parents } define host { use host_name alias address parents }
2. CONFIGURACION DE LOS SWITCHES Nota que cada switch tendra una relacion de pariente con uno de las rutadores. # vi switches.cfg Primero el switch de "backbone" (troncal) # # Archivo con definiciones de los Switches por Nagios # define host { use
generic-host
# # Fin del archivo # Graba y salga del archivo /etc/nagios3/conf.d/switches.cfg Por este taller hay solo un switch para configurar.
3. CONFIGURACION DE LOS PCS Ahora 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. Abajo hay tres entradas de ejemplo. Usa estos para hacer las entradas por todo los PCs PCs de grupo 1 tienen como padre el enrutador del grupo 1, o rtr1. PCs de grupo 2 tienen como padre el enrutador del grupo 2 or rtr2. Normalmente seria un switch, pero por el hecho que estamos usando maquinas virtuales no hay un switch fisico disponible. IMPORTANTE! No agrega una entrada por tu PC. Esto ya esta hecho en el archivo /etc/nagios3/conf.d/localhost_nagios2.cfg - En este archivo puede definir el "parent" por el localhost para que el instante de Nagios aparesca bien en los graficos de su Red. Vea http://nsrcwsnoc.ddns.net/wikis/gt/wiki/DiagramaRed para ver todo los PCs, los grupos, y que router pertenesca a cada grupo. # vi pcs.cfg # # #
} # # PCs del Grupo 1 # define host { use host_name alias address parents } define host { use host_name alias address parents }
# # termina pc5 y pc7 # # # PCs del Grupo 2 # define host { use host_name alias address parents } define host { use host_name alias address parents }
# # termina pc7 y pc8 # Ahora, haz entradas por los PCs en su grupo, o, si quieres por todo los PCs del taller. Solo queremos que Ud. entiende como funciona la configuracion de los PCs.
Graba y salga del archivo /etc/nagios3/conf.d/pcs.cfg Ahora verificamos que nuestros archivos estan bien configurados
5. VERIFICAR CONFIGURATION DE NAGIOS # nagios3 -v /etc/nagios3/nagios.cfg ... Deberia ver : Total Warnings: NN Total Errors: 0 (aviso de falta de chequeo de servicios. No se preocupa.)
Things look okay - No serious problems were detected during the check. Si hay errores lea que dice en la pantalla y intenta reparar los problemas en los archivos de configuracion.
6. COMO PARAR, INICIALIZAR Y/O REINICIALIZR NAGIOS # /etc/init.d/nagios3 stop # /etc/init.d/nagios3 start Puede hacer "restart" pero no es 100% confiable.
7. VERIFICA LA CONFIGURACION DE NAGIOS HASTA AHORA Vaya al interfaz de la Web (http://pcN.ws.nsrc.org/nagios3) y verifica que las entradas (PCs, conmutadores, rutadores) estan visibles. Apreta "Host Detail" por la izquierda en Nagios para ver esto.
PARTE III Configurar un Chequeo de Servicio por el NOC del Taller ----------------------------------------------------------------------------0. CONFIGURAR CHEQUE DE SERVICIOS Ahora que tenemos el hardware configurado vamos a configurar monitoreo de services, hacer grupos de hardware y servicios, etc.
1. HACER UN CHEQUEO DE SERVICIO SSH POR EL ROUTER DE SU GRUPO # vi hostgroups_nagios2.cfg - Busca el hostgroup con nombre "ssh-servers". En la linea de "Members" cambia la linea:
members a members
localhost
localhost,rtrN
donde el "N" es el numero de su grupo (asi, "rtr1" por el grupo uno). Salga y graba el archivo. Verifica que todo esta bien: # nagios3 -v /etc/nagios3/nagios.cfg Reinitializar Nagios para ver los servicios nuevos asociado con el router rtrN: # /etc/init.d/nagios3 stop # /etc/init.d/nagios3 start En el interfaz Web de Nagios: http://noc.ws.nsrc.org/nagios3/ Apreta "Service Detail" (menu a la izquierda) para ver su entrada nueva.
PARTE IV Definir Servicios por todo sus Dispositvos ----------------------------------------------------------------------------0. SERVICIOS CORRIENDO rutadores: conmutadores: aps: pcs: ssh y snmp snmp ssh y snmp ssh, http y snmp
Configuramos Nagios hacer checqueos por estes servicios en las maquinas de nuestro taller. La configuracion de chequeo de SSH y HTTP es facil. De SNMP es mas involcrado y es un ejercicio opcional.
1. CONFIGURAR EL CHEQUEO DE SSH POR LOS PCS, ROUTERS Y APS En el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg ya hay una entrada por el chequeo del servicio de SSH. Solo tiene que redefinirlo. Abre el archivo: # vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg Al principio la entrada de ssh se vea asi:
# A list of your ssh-accessible servers define hostgroup { hostgroup_name ssh-servers alias SSH servers members localhost,noc } Que deberiamos cambiar? Si, la linea de "members". Va a ser largo con todo los PCs listado _menos_ su PC. Su PC es "localhost". Por ejemplo: define hostgroup { hostgroup_name ssh-servers alias SSH servers members localhost,noc,pc1,pc2,pc3,pc4....,rtr1,rtr2,rtr3,...,ap1,ap2 } Pero, incluye todo los PCs, Routers y APs que ya tiene configurado. No incluye maquinas no configurados. hora salga y graba el archivo y verifica que todo esta bien: # nagios3 -v /etc/nagios3/nagios.cfg Si todo esta bien haz: # /etc/init.d/nagios3 stop # /etc/init.d/nagios3 start y revisa todo en la pagina web de Nagios que el chequeo de servicio de SSH esta funcionando.
2. CONFIGURAR EL CHEQUEO DE HTTP POR TODO LOS PCS - Esto es casi igual que el ejercicio anterior. Solo haz el cambio por el servicio HTTP agregando los miembros de cada PC (rutadores y conmutadores no). Recuerda de no agregar tu maquina porque ya esta configurado como "localhost", y solo agrega los PCs que ya esta configurados por Usted.
PARTE V Crear mas Grupos del Host ----------------------------------------------------------------------------1. Actualizar /etc/nagios3/conf.d/hostgroups_nagios2.cfg Por los ejercicios que vienen es muy util tener hecho los grupos de hosts: debian-servers routers switches
Abre el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg y vas a ver una entra para debian-servers que solo incluya el localhost. Actualizar esto para incluir todo los PCs en la sala. # vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg Actualizar la entrada que dice: # A list of your Debian GNU/Linux servers define hostgroup { hostgroup_name debian-servers alias Debian GNU/Linux Servers members localhost } Para que "members" contiene todo los pcs. Mas o menos asi: members localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9, etc...
- OJO! La linea no puede tener un break. Tiene que seguir como una sola linea. - Despues agrega entradas por "routers" y uno por "switches" - Usa los nombres "routers" y "switches" - Cuando terminas verifica que todo esta bien, recarga Nagios y vea si haya cambos en el interfaz Web.
PARTE VI (OPCIONAL) Configurar acceso a "Guest" por el Interfaz Web de Nagios ----------------------------------------------------------------------------1. Abre el archivo /etc/nagios3/cgi.cfg para dar acceso de solo leer (r/o) a un usuario "guest" por el interfaz de Web. - Por defecto el usuario nagiosadmin tiene acceso leer y escribir (r/w) a traves el interfaz Web de Nagios. Si quiere permitir otros usuarios ver el estatus de su Red pero sin tener acceso de escribir (ejecutar comandos, etc.) tenemos que hacer algunos cambios en el archivo de cgi.cfg. - Primero hacemos el usuario "guest" con un clave en el archivo do htpasswd.user. # cd /etc/nagios3 # htpasswd /etc/nagios3/htpasswd.users guest Puede usar cualquier clave, pero uno de "guest" no es tan malo... - Ahora abre el archivo /etc/nagios3/cgi.cfg and busca el tipo de acceso que quiere dar. Vas a ver esto (hemos sacado todo los comentarios que haya en el archivo): authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin authorized_for_all_hosts=nagiosadmin authorized_for_all_service_commands=nagiosadmin authorized_for_all_host_commands=nagiosadmin Cambia estas entradas para permitir que el usuario "guest" tiene acceso a todo la informacion que da Nagios, pero que no tiene acceso para hacer cambios. Lo siguiente es tipico de acceso solo leer: authorized_for_system_information=nagiosadmin,guest authorized_for_configuration_information=nagiosadmin,guest authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin,guest authorized_for_all_hosts=nagiosadmin,guest authorized_for_all_service_commands=nagiosadmin authorized_for_all_host_commands=nagiosadmin - Haz los cambios, graba el archivo, salga del archivo, verifica que todo esta bien y recargar Nagios. - Para ver si esta funcionando vay a http://localhost/nagios3 y en tu navegador tiene que limpiar los "cookies" para que recibes el dialogo de login por Nagios. Haz un recargar de la pagina y intenta de entrar como el usuario guest.
PARTE VII (OPCIONAL) Informacion Extendida de los Hosts (maquinas) - "O, hacer los graficos bonitos" ------------------------------------------------------------------------------1. Actualizar extinfo_nagios2.cfg - Si quiere usar iconos en los opciones de graficos que tiene Nagios (el Statusmap) esto es el archivo donde se define esto. Tenemos tres tipos de maquinas: Rutadores Conmutadores Servidores Hay un repositorio bastante grande de imagenes de iconos disponible aqui: /usr/share/nagios/htdocs/images/logos/ Estan instalado por defecto cuando instalamos Nagios en Ubuntu. Hay iconos muy especifico de varios modelos de equipos, pero para hacer las cosas mas simples vamos a usar los siguiente iconos: /usr/share/nagios/htodcs/images/logos/base/debian.* /usr/share/nagios/htdocs/images/logos/cook/router.* /usr/share/nagios/htdocs/images/logos/cook/switch.*
- El proximo paso es editar el archivo /etc/nagios3/conf.d/extinfo_nagios2.cfg y decir a Nagios que icons usar por cada maquina. # vi /etc/nagios3/conf.d/extinfo_nagios2.cfg Aqui es una muestra de como se vea una entrad para los rutadores. Ya hay una entrada por debian-servers que funciona como esta. El modelo de rutador listado no esta importante. El imagen es generico. define hostextinfo { hostgroup_name icon_image icon_image_alt vrml_image statusmap_image }
Ahora agrega una entrada por tus conmutadores. Recuerda que llamaste el grupo "switches". Despues, graba el archivo, verifica que todo esta bien y revise el Status Map en la interfaz web para ver como esta todo.
PARTE VIII (OPCIONAL) Crear Grupos de Servicio ----------------------------------------------------------------------------1. Crear un grupo de servicio para ssh y http for cada PC. - La idea es crear dos grupos de services. Es un dispositivo y los servicios asociado con el dispostivo por los dos grupos. Para hacer esto tiene que crear un archivo nuevo: # vi /etc/nagios3/conf.d/servicegroups.cfg Una muestra para el grupo 1 y 2 (no es completo): define servicegroup { servicegroup_name servidores-grupo1-2 alias Servidores de Grupo 1 y 2 members pc1,SSH,pc1,HTTP,pc2,SSH,pc2,HTTP,pc3,SSH,pc3,HTTP,pc4,SSH,pc4,HTTP,pc5,SSH, pc5,HTTP,pc6,SSH,pc6,HTTP,pc7,SSH,pc7,HTTP,pc8,SSH,pc8,HTTP } - OJO! La linea es una sola linea. No puede tener un break. - SSH y FTP estan en mayuscalas porque asi es como la "service_description" esta escrito en el archivo /etc/nagios3/conf.d/services_nagios2.cfg. - Haz una entrada por los servidores de su grupo. Si quieres o hay tiempo puede agregar todos los PCs (solo si estan configurados por Usted). - Graba sus cambios y salga del archivo. Verifica que todo esta bien y recarga
Nagios. - Vea los grupos en el interfaz web bajo los menus "Servicegroup"
OPCIONAL (No traducido) ----------------------1.) Verifica que SNMP esta corriendo en el NOC - Primero tiene que agregar un chequeo de servicio apropiado por SNMP en el archivo /etc/nagios3/conf.d/services_nagios2.cfg. Esto es un fuerte de Nagios. Hay cientos, si no miles, de chequeos de servicios disponibles en los sitios de web de Nagios. Puede ver los plugins instalado por Ubuntu en el paquete de Nagios veando el siguiente directorio: # ls /usr/lib/nagios/plugins Como puede ver ya hay un plugin de check_snmp disponible a nosotros. Si le interesa las opciones que usa el plugin se puede ejecutar el plugin desde la linea de comando asi: # /usr/lib/nagios/plugins/check_snmp Para ver que opciones hay. Puede usar el check_snmp plugin y Nagios para crear chequeos hasta muy simples a muy complejos. - Para ver todo los chequeos ya disponible por el check_snmp plugin revise el archivo /etc/nagios-plugins/config/snmp.cfg. Vere que hay muchos chequeos preconfigurados usando check_snmp, incluyendo: snmp_load snmp_cpustats snmp_procname snmp_disk snmp_mem snmp_swap snmp_procs snmp_users snmp_mem2 snmp_swap2 snmp_mem3 snmp_swap3 snmp_disk2 snmp_tcpopen snmp_tcpstats snmp_bgpstate check_netapp_uptime check_netapp_cupuload check_netapp_numdisks check_compaq_thermalCondition
Aun mejor, puede hacer chequeos de servicios adicionales facilmente. Por el caso de verificar que el servicio snmpd esta corriendo tenemos que hacer una pregunta al servicio de snmpd. Si no recibimos un respuesta, asi Nagios puede asumnir que el servicio de SNMP esta bajado en ese maquina. Cuando usa chequeos de servicios como check_http, check_ssh y check_telnet esto es que ellos estan haciendo, tambien. - En nuestro caso, vamos a crear un chequeo de servicio nuevo y lo llamaremos "check_system". Esto es nuestro chequeo de servicio que se va a conectar con la maquina especifcado, usar un comunidad privado que hemos definido en el taller y hacer una pregunta a travez snmp por este maquina - en este caso vamos a preguntar por la descripcion del sistema (System Description), o por el OID "sysDescr.0" - Para hacer esto abre el archivo /etc/nagios-plugins/config/snmp.cfg: # vi /etc/nagios-plugins/config/snmp.cfg Arriba en el archivo agrega la siguiente entrada: # 'check_system' definicion de comando define command{ command_name check_system command_line /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C '$ARG1$' o sysDescr.0 } Sugerimos que haz una copia y pegar del texto arriba. - Ahora tenemos que abrir el archivo /etc/nagios3/conf.d/services_nagios2.cfg y agrega el siguiente chequeo de servicio. Vamos a correr este chequeo encontra todo nuestro servidores (definidos por Usted) en el taller. # vi /etc/nagios3/conf.d/services_nagios2.cfg Al fondo del archivo agrega la siguiente definicion: # verifica que snmpd esta corriendo en los servidores define service { hostgroup_name snmp-servers service_description SNMP check_command check_system!xxxxxxx use generic-service notification_interval 0 ; set > 0 if you want to be renotified } El "xxxxx" es el clave privado que definimos antes por snmp en el taller. Por los routers y switches hacemos otra entrada asi: # Verifica que snmp esta funcionando en los routers y switches define service { hostgroup_name snmp-routers-switches
Graba y salga del archivo /etc/nagios3/conf.d/services_nagios2.cfg - Ahora tenemos que hacer el grupo "snmp-servers en el archivo hostgroups_nagios2.cfg. Agrega la entrada al fondo del archivo: # vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg
# Una lista de dispositivos con snmp habilitados en que queremos correr el chequeo # del servicio snmp (check_system). define hostgroup { hostgroup_name snmp-servers alias snmp servers members noc,localhost,pc1,pc2,pc3,pc4,pc5, etc... } Y, por nuestros routers y switches: define hostgroup { hostgroup_name alias members }
- Ahora verifica que sus cambios estan bien y reinicializar Nagios. - Si haz un click en el menu de "Service Details" en el interfaz web de Nagios deberias ver el chequeo de SNMP. Ultima actualizacion 8 de Octubre 2011 por HA