Gestión de Red Práctica con Smokeping Ejercicios ---------------------- 0. Conéctese a su PC como usuario sysadmin y ejecute una shell de root $ sudo -s # 1. Instalar Smokeping -------------------- # apt-get install smokeping Luego dirija su navegador hacia: http://pcN.ws.nsrc.org/cgi-bin/smokeping.cgi para verificar que está funcionando. 2. Configuración inicial ------------------------- # cd /etc/smokeping/config.d # ls -l -rwxr-xr-x 1 root root 578 2010-02-26 01:55 Alerts -rwxr-xr-x 1 root root 237 2010-02-26 01:55 Database -rwxr-xr-x 1 root root 413 2010-02-26 05:40 General -rwxr-xr-x 1 root root 271 2010-02-26 01:55 pathnames -rwxr-xr-x 1 root root 859 2010-02-26 01:55 Presentation -rwxr-xr-x 1 root root 116 2010-02-26 01:55 Probes -rwxr-xr-x 1 root root 155 2010-02-26 01:55 Slaves -rwxr-xr-x 1 root root 8990 2010-02-26 06:30 Targets Los archivos que necesita cambiar, como mínimo, son: * Alerts * General * Probes * Targets Ahora, edite el archivo General (ojo con la mayúscula) # editor General Cambie las líneas siguientes (NO DEJE EL SANGRADO): owner = NOC contact = sysadm@localhost mailhost = localhost cgiurl = http://localhost/cgi-bin/smokeping.cgi # Indique lo siguiente para usar Syslog syslogfacility = local5 Grabe y salga del editor. Ahora reiniciemos el servidio Smokeping para verificar que no hay errores antes de hacer nada más: # service smokeping stop # service smokeping start Una forma más rápida de hacer esto es: # service smokeping restart Usaremos esto en los próximos ejercicios, o simplemente usaremos el comando "reload", ya que esto es suficiente para que Smokeping detecte los cambios en la configuración. Ahora, edite el archivo Alerts (ojo con la mayúscula) # editor Alerts Cambien las líneas siguientes (NO DEJE EL SANGRADO): to = root@localhost from = smokeping-alert@localhost Grabe y salga. Reinicie Smokeping: # service smokeping reload 3. Configure los nodos ---------------------------------- La mayoría de los ajustes se harán en el archivo /etc/smokeping/config.d/Targets. Para esta clase, por favor haga lo siguiente: Use el comando Fping para lo siguiente: - Todas las PCs de los participantes - El servidor NOC - Switches - Routers Puede usar el diagrama del taller para determinar las direcciones de cada cosa. Configure algo de jerarquía para los menús de Smokeping. Por ejemplo, el archivo Targets está configurado parcialmente. Para comenzar, vamos a agregar algunas entradas en este archivo: # cd /etc/smokeping/config.d # editor Targets Puede tomar la sección desde *** Targets **** hasta el final del LocalMachine y hacer que se vea como sigue. Puede escribir sus propios "remark" (comentarios), texto del "menu" y títulos. Fíjese que quitamos las líneas comentadas "#parents = owner:/Test/James location:/", y la línea "Alerts". NOTA: Sugerimos encarecidamente que haga COPIAR/PEGAR con el texto de estos ejercicios directamente en el archivo Targets. Teclear todo esto a mano sería muy largo y tedioso. Los ">>>>>>>>" no están en el archivo, sino que sirven para indicar el comienzo del texto, y luego "<<<<<<<<" indica el final. >>>>>>>> *** Targets *** probe = FPing menu = Top title = Graficador de Retardo de Red remark = Graficador de Retardo de Red para el taller de Gestión de redes +Local menu = Local Network Monitoring and Management title = Local Network ++LocalMachine menu = Local Machine title = This host host = localhost <<<<<<< Ahora, debajo de "localhost", comenzamos con la configuración de los elementos de nuestro taller. Podemos empezar de manera simple agregando solamente los cuatro primeros PCs del Grupo 1, así como una entrada para el servidor NOC. >>>>>>>> # # ********* Servidores del Taller ********** # +Servidores menu = Servidores title = Servidores de Gestión ++noc menu = noc title = NOC del Taller host = noc # # ******** Máquinas virtuales (VMs) *********** # +PCs menu = PCs del Laboratorio title = PCs Virtuales Para Gestión de Red ++pc1 menu = pc1 title = Máquina Virtual 1 host = pc1.ws.nsrc.org ++pc2 menu = pc2 title = Máquina Virtual 2 host = pc2.ws.nsrc.org ++pc3 menu = pc3 title = Máquina Virtual 3 host = pc3.ws.nsrc.org ++pc4 menu = pc4 title = Máquina Virtual 4 host = pc4.ws.nsrc.org <<<<<<<< Bien. Veamos si podemos lograr que Smokeping recargue la configuración para detectar los cambios que hemos hecho. Grabe y salga del editor. Ahora intente lo siguiente: # service smokeping reload Si ve mensajes de error, entonces léalos con detenimiento e intente corregir el problema en el archivo Targets. Además, Smokeping ahora esta enviando mensajes de log al archivo /var/log/syslog. Puede ver lo que Smokeping está diciendo con: # tail /var/log/syslog Si quiere ver todos los mensajes de Smokeping en el archivo /var/log/syslog, puede hacer lo siguiente: # grep smokeping /var/log/syslog Si no hay errores, puede ver los resultados de sus cambios yendo a: http://pcN.ws.nsrc.org/cgi-bin/smokeping.cgi Cuando esté listo, puede editar el archivo Targets de nuevo y continuar agregando máquinas. Al final del archivo puede agregar el siguiente grupo de PCs: >>>>>>>> ++pc5 menu = pc5 title = Máquina Virtual 5 host = pc5.ws.nsrc.org ++pc6 menu = pc6 title = Máquina Virtual 6 host = pc6.ws.nsrc.org ++pc7 menu = pc7 title = Máquina Virtual 7 host = pc7.ws.nsrc.org ++pc8 menu = pc8 title = Máquina Virtual 8 host = pc8.ws.nsrc.org <<<<<<<< Agregue tantas PCs como quiera, luego guarde y salga del editor y verfique que los cambios que ha realizado están funcionando: # service smokeping reload Puede continuar viendo los resultados de sus cambios en la página web de Smokeping. Puede que tenga que esperar al menos 5 minutos antes de que aparezcan los contenidos del gráfico. http://pcN.ws.nsrc.org/cgi-bin/smokeping.cgi 4. Enrutadores y Switches ----------------------------------------------- Una vez que haya configurado tantas PCs como desea, es hora de agregar algunas entradas para los enrutadores y switch(es) del taller. # cd /etc/smokeping/config.d # editor Targets Vaya al final del archivo y agregue algunas entradas para enrutadores y switches: >>>>>>>> # # ********** Switch Dorsal del Taller ********* # +Switches menu = Switches title = Switches de Gestión de Red ++sw menu = sw title = Switch Dorsal host = sw.ws.nsrc.org # # ********** Enrutadores Virtuales: Cisco 7200 ********* # +Routers menu = Enrutadores title = Enrutadores de gestión de red ++gw menu = gw title = Enrutador principal del Taller host = gw.ws.nsrc.org ++router1 menu = router1 title = Enrutador Virtual 1 host = rtr1.ws.nsrc.org ++router2 menu = router2 title = Enrutador Virtual 2 host = rtr2.ws.nsrc.org ++router3 menu = router3 title = Enrutador Virtual 3 host = rtr3.ws.nsrc.org <<<<<<<< Si quiere continuar añadiendo entradas para los enrutadores de los grupos 4 a 6, o incluso hasta el grupo 9, si es que hay tantos en su clase, puede hacerlo. Cuando esté listo, grabe y salga del editor y verifique sus cambios: # service smokeping reload Si quiere, puede añadir también el punto de acceso inalámbrico: # editor Targets >>>>>>>> # # Punto de Acceso Inalámbrico # ++ap1 menu = ap1 title = Punto de Acceso 1 host = ap1.ws.nsrc.org <<<<<<<< Guarde, salga y recargue: # service smokeping reload 5. Agregar nuevas comprobaciones en Smokeping --------------------------------------------- La entrada actual en el archivo Probes está bien, pero si quiere usar comprobaciones adicionales, puede agregarlas aquí, y puede especificar su comportamiento por defecto. Puede hacer esto, ademas, en el archivo Targets si así lo prefiere. Para agregar un comprobador (probe) para comprobar el retardo de HTTP, así como DNS, añada lo siguiente AL FINAL DEL ARCHIVO Probes (recuerde ">>>>" y "<<<<" no se deben incluir). # editor Probes >>>>>>>> + EchoPingHttp + DNS binary = /usr/bin/dig pings = 5 step = 180 lookup = www.nsrc.org <<<<<<<< La prueba de DNS hará una solicitud para traducir el nombre www.nsrc.org en una dirección IP, usando cualquier servidor de nombres recursivo que usted especifique en el archivo Targets. Verá esto más adelante en los ejercicios. Grabe y salga del archivo y verifique que sus cambios funcionan: # service smokeping reload 6. Comprobaciones de retardo de HTTP para los PCs del Taller ------------------------------------------------------------ Edite el archivo Targets una vez más y vaya al final: # editor Targets Al final, agregue: >>>>>>>> # # Servidor Web local # +HTTP menu = Servidor Web local title = Servidores Web de estudiantes (HTTP) ++pc1 menu = pc1 title = pc1 retardo HTTP probe = EchoPingHttp host = pc1.ws.nsrc.org ++pc2 menu = pc2 title = pc2 retardo HTTP probe = EchoPingHttp host = pc2.ws.nsrc.org ++pc3 menu = pc3 title = pc3 retardo HTTP probe = EchoPingHttp host = pc3.ws.nsrc.org ++pc4 menu = pc4 title = pc1 retardo HTTP probe = EchoPingHttp host = pc4.ws.nsrc.org <<<<<<<< En realidad, podrá usar sólo el comando "probe = EchoPingHttp" una vez para pc1, y éste sería el "Probe" por defecto hasta que aparezca otro "probe = " en el archivo. Puede agregar tantas entradas de PCs como desee, o puede considerar comprobar el retardo en máquinas remotas - éstas probablemente serán más interesantes. Máquinas tales como sus propios servidores públicamente accesibles serían una buena elección, o quizás otros servidores web conocidos como Google, Yahoo, páginas del gobierto, tiendas online, etc. Por ejemplo, considere agregar algo así al final del archivo Targets: >>>>>>>> # # Servidores Web Remotos # +HTTPRemote menu = Servidores Web Remotos title = Retardo HTTP de servidores remotos ++google menu = Google title = Google.com HTTP probe = EchoPingHttp host = www.google.com ++nsrc menu = Network Startup Resource Center title = nsrc.org HTTP probe = EchoPingHttp host = nsrc.org <<<<<<<< Agregue los servidores se su propia organización a la lista de servidores remotos. Cuando termine, grabe, salga y recargue: # service smokeping reload 7. Retardo de DNS ------------------------- Al final del archivo Targets vamos a agregar algunas entradas para verificar el retardo desde nuestra ubicación hasta servidores DNS recursivos en sitios remotos, haciendo una solicitud sobre nsrc.org. Si prefiere, puede usar otro nombre de DNS suyo propio para las pruebas. Para más información, puede leer: http://oss.oetiker.ch/smokeping/probe/DNS.en.html y http://oss.oetiker.ch/smokeping/probe/index.en.html Ahora, edite el archivo Targets de nuevo. Asegúrese de ir al final del archivo: # cd /etc/smokeping/config.d # editor Targets Al final del archivo, agregue: >>>>>>>> # # Prueba de DNS # +DNS probe = DNS menu = Retardo de DNS title = Pruebas de Retardo de DNS ++LocalDNS1 menu = 10.10.0.241 title = Retardo DNS de noc.ws.nsrc.org host = noc.ws.nsrc.org ++GoogleA menu = 8.8.8.8 title = Retardo DNS de google-public-dns-a.google.com host = google-public-dns-a.google.com ++GoogleB menu = 8.8.8.4 title = Retardo DNS de google-public-dns-b.google.com host = google-public-dns-b.google.com ++OpenDNSA menu = 208.67.222.222 title = Retardo DNS de resolver1.opendns.com host = resolver1.opendns.com ++OpenDNSB menu = 208.67.220.220 title = Retardo DNS de resolver2.opendns.com host = resolver2.opendns.com <<<<<<<< Grabe, salga y recargue: # service smokeping reload Busque pruebas adicionales de Smokeping y considere implementar algunas si son útiles para su organización: http://oss.oetiker.ch/smokeping/probe/index.en.html 8. Graficación múltiple ------------------------ Una vez haya definido un grupo de nodos bajo un mismo tipo de prueba en su archivo Targets, puede crear un gráfico único que muestre los resultados de todas las pruebas para todos los nodos definidos. Esto tiene la ventaja de que puede comparar, por ejemplo, un grupo de nodos a los cuales está monitorizando con Fping. La función de gráfico múltiple en Smokeping es extremadamente delicada. Ponga mucha atención! Para crear un gráfico múltiple, primero edite el archivo Targets: # editor Targets Vamos a crear un gráfico múltiple para todas las pruebas de retardo de DNS que acabamos de agregar. Para esto, iremos al final del archivo y agre- garemos: >>>>>>>> # # Gráfico múltiple para todas las pruebas DNS # ++MultiHostDNS menu = MultiHost DNS title = Retardo de DNS consolidado host = /DNS/LocalDNS1 /DNS/GoogleA /DNS/GoogleB /DNS/OpenDNSA /DNS/OpenDNSB <<<<<<<< Luego: # service smokeping reload Si esto falla, lo más seguro hay un error en las entradas. Si no puede determinar la causa del problema (recuerde hacer 'tail /var/log/syslog'), pida asistencia al instructor. Puede agregar gráficos múltiples para cualquier otro grupo de pruebas (Fping, EchoPingHttp) que haya configurado. Debe agregar la entrada MultiHost al final de una sección de pruebas. Si no comprende cómo funciona ésto, pida ayuda al instructor. Además, en el servidor NOC del taller hay archivos de configuración de ejemplo disponibles, incluyendo una para Smokeping que contiene ejemplos de gráficos MultiHost. 9. Alarmas de Smokeping ------------------------ Si quiere recibir e-mails de alarma cuando se cumpla cierta condición en una de las pruebas, haga esto: # cd /etc/smokeping/config.d # editor Alerts Actualice el comienzo del archivo donde dice: *** Alerts *** to = alertee@address.somewhere from = smokealert@company.xy para incluir campos de "to" y "from" apropiados para su servidor. Algo como: *** Alerts *** to = sysadm@localhost from = smokeping-alert@localhost Ahora debe actualizar sus entradas de nodos para incluir una línea que diga: alerts = alertName1, alertName2, etc, etc... Por ejemplo, una alarma llamada "someloss" ya se ha definido en el archivo Alerts: Para leer acerca las alertas de Smokeping y qué detectan, cómo crear las suyas propias, etc, refiérase a: http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html y al final de la página hay una sección titulada, "*** Alerts ***" Para configurar alarmas en algunos de sus nosod, abra el archivo Targets: # editor Targets y vaya cerca del comienzo del archivo donde están definidas las PCs. Justo debajo de la línea "host = ", agregue otra línea que diga: alerts = someloss Así, por ejemplo, la entrada de pc1 debería ser algo como: >>>>>>>> ++pc1 menu = pc1 title = Máquina Virtual 1 host = pc1.ws.nsrc.org alerts = someloss <<<<<<<< Si quiere agregar alarmas para otros nodos, adelante. Grabe, salga y recargue: # service smokeping reload Si se cumple la condición de la alarma en cualquiera de los nodos en los cuales se han configurado, entonces llegará un e-mail a la bandeja de entrada del usuario sysadmin en el servidor de Smokeping (localhost). No es probable que se genere una alarma para la mayoría de las máquinas. Para comprobar que puede leer los e-mails dirigidos al usuario sysadm, use un cliente de e-mail como 'mutt': # apt-get install mutt # su - sysadm (cambia a sysadm desde root) $ mutt Diga que sí a la pregunta de la creación de la bandeja de entrada cuando se le pregunte, y luego vea si puee leer un e-mail del usuario smokeping-alerts@localhost. Probablemente que no. Para salir de Mutt, oprima "q". Para salir de la shell de sysadm, escriba: $ exit # 10. Configuración Maestro/Esclavo (informativo solamente) ---------------------------------------------------------- Esto es una descripción informal en caso de que le interese probar este tipo de configuración después de finalizado el taller. La idea es que es posible tener múltiples instancias de Smokeping en múltiples ubicaciones, monitorizando los mismos dispositivos o servicios que la instancia maestra. Los esclavos enviarán sus resultados al servidor maestro y usted podrá comparar estos resultados con los locales. Esto es útil para saber cómo se ven sus nodos y servicios desde el exterior. Gráficamente se vé así: [Esclavo 1] [Esclavo 2] [Esclavo 3] | | | +-------+ | +--------+ | | | v v v +---------------+ | Maestro | +---------------+ Puede ver ejemplos aquí: http://oss.oetiker.ch/smokeping-demo/ Observe los varios grupos de gráficos y fíjese que muchos de los gráficos tienen múltiples líneas con un esquema de colores listando elementos tales como "median RTT from mipsrv01" - Estos no son gráficos MultiHost, sino gráficos con datos de servidores Smokeping externos. Para configurar un servidor Smokeping maestro/eslavo puede ver la documen- tación aquí: http://oss.oetiker.ch/smokeping/doc/smokeping_master_slave.en.html Adicionalmente, hay instrucciones para configurar esta función en el archivo sample-smokeping-master-slave.txt, que debería estar listado como referencia adicional al final de la página de la agenda del taller.