Monitoreo De Redes Con Munin - Gwolf

Transcription

insMonitoreo de redes con MuninGunnar Wolf inInstituto de Investigaciones Económicas, UNAMDesarrollador del proyecto Debian2 Foro Nacional de Software Libre FONASOL 200828-30 de mayo, Coatzacoalcos, VeracruzoFin

roducción al monitoreo de sistemas2Otros jugadores en el mismo terreno3Repaso histórico sobre Munin y Hugin4Un vistazo a la arquitectura de Munin5Algunos ejemplos explicados de monitoreo6Escribiendo tus propios plugins7FinEjemplosPluginsFin

ins¾Qué hace un administrador de red/sistemas?Asegurar la disponibilidad de los serviciosAsegurar la con anza en la información provista/almacenadaConocer en todo momento el estado de sus equipos, parapoder anticiparse a los problemas.Y, claro, mucho másMunin es una infraestructura genérica de monitoreo histórico ygra cación de servicios/recursosFin

ins¾Monitoreo histórico?Una de las tareas más importantes que, como administradores desistemas o de redes, tenemos la responsabilidad de realizarperiódicamente, para encontrar tendencias y anticiparse a losproblemas, es elMonitoreo de recursos¾Qué signi ca? ¾Por qué tengo que hacerlo? ¾De qué me sirve? ¾Ycómo puedo hacerlo divertido?Fin

ins¾Divertido?¾Dije acasoDivertido?¾No se supone que mi trabajo es mi obligación, y que hasta mepagan por ello?Es cierto, pero.Fin

ins¾Divertido?¾Dije acasoDivertido?¾No se supone que mi trabajo es mi obligación, y que hasta mepagan por ello?Es cierto, pero.A n de cuentas, lo divertido es muy subjetivo.½Y no por ser divertido tiene que ser menos serio!Fin

ins¾Divertido?¾Dije acasoDivertido?¾No se supone que mi trabajo es mi obligación, y que hasta mepagan por ello?Es cierto, pero.A n de cuentas, lo divertido es muy subjetivo.½Y no por ser divertido tiene que ser menos serio!Total. ¾Negarán acaso que somos una bola de nerds/geeksbastante atípicos y que tenemos un concepto muy enfermo de ladiversión?Fin

vertido? ½Gra quitas! :-DPero. ¾Qué puede ser divertido?PluginsFin

vertido? ½Gra quitas! :-DPero. ¾Qué puede ser divertido?½Gra quitas!PluginsFin

vertido? ½Gra quitas! :-DPero. ¾Qué puede ser divertido?½Gra quitas!½Con muchos colores!PluginsFin

vertido? ½Gra quitas! :-DPero. ¾Qué puede ser divertido?½Gra quitas!½Con muchos colores!½Con historia analizable!PluginsFin

insEl verdadero valor de las grá casHablando completamente en serio.Las grá cas históricas son una herramienta fundamental en elarsenal de un administrador de sistemasEl que conserven memoria histórica es fundamental paraanalizar tendencias y encontrar comportamientos a largo plazoEntre menos tengamos que con gurar/batallar para lograr unaprimer imagen satisfactoria del sistema de monitoreo, másvamos a animarnos a utilizarloEntre más podamos adecuar la información que nos espresentada a las necesidades especí cas de nuestro entorno,más útil nos va a ser el sistema que elijamosNos ayudan muchísimo a aprender, a comprender elfuncionamiento y relaciones dentro de nuestro sistemaFin

roducción al monitoreo de sistemas2Otros jugadores en el mismo terreno3Repaso histórico sobre Munin y Hugin4Un vistazo a la arquitectura de Munin5Algunos ejemplos explicados de monitoreo6Escribiendo tus propios plugins7FinEjemplosPluginsFin

insMRTG Multi Router Tra c Grapherhttp://oss.oetiker.ch/mrtg/Creado en 1994, probablemente el pionero en este campoOrientado a mostrar el rendimiento de una interfaz de red,corriendo directamente en el servidor, o vía SNMP a unruteadorRelativamente extensible Pero limitado a mostrar dosvalores por grá ca (trá co entrante y saliente)Fin

insJFFNMS Just For Fun Network Management Systemhttp://jffnms.sourceforge.net/Monitoreo orientado a SNMP, Syslog, Tacacs modular, extensibleTiene funcionalidad de autodescubrimiento dedispositivos/recursos en redinterfaz mostrando resumenes del estado de la red muy biendesarrolladasGeneración de reportes dinámica (PHP)Fin

insGangliahttp://ganglia.info/Creado por la Universidad de California en Berkeley para elMillenium do al monitoreo de entornos de cómputo distribuído dealto rendimiento (clusters y grids)Actualmente se utiliza para monitorear clusters de hasta 2000nodos en diversas universidades de todo el mundoFin

ado a monitorear la latencia en nuestra redAl estar tan especializado, incluye un sistema de ltrado quesólo nos muestra las grá cas interesantesTiene modos de operación maestro/esclavo, en la que un hostmaestro puede indicar a todos los que monitorea hacia quéequipo dirigir sus pingsMuestra la desviación estándar, presentándonos no sólo quétan cargada está en determinado momento nuestra red, sinotambién qué tan normal es este patrónFin

insCactihttp://www.cacti.net/Framework de monitoreo completamente con gurado por Web,hecho en PHPPrincipalmente orientado a monitorear dispositivos SNMP;tiene capacidad de autodescubrimiento de recursos para dichosequiposViene con varios templates prede nidos para varias clases dedispositivos no-SNMP (p.ej. hosts Unix)Interfaz amigable y potente, permite acercarse a determinadosintervalos interactivamente (cosa que pocos sistemas ofrecen)Fin

insRRDtoolSe habrán dado cuenta que todos estos sistemas tienen algo encomún. Las grá cas de todos son sospechosamente parecidas.Todos estos sistemas están construídos en torno a RRDtool,http://oss.oetiker.ch/rrdtool/ Escrito por Tobi Oetiker(también autor de MRTG y Smokeping)Fin

insRRDtoolRound Robin Database Una base de datos creada paraguardar datos numéricos orientados a este tipo de grá casOriginalmente, RRDtool era parte de MRTG; fue separadopara convertirse en un proyecto por derecho propio.Al ser creado un archivo de RRDtool, es creado con losparámetros de uso esperado que tendrá: El tiempo total aguardar, con la resolución con la que lo requeriremos en elfuturoUna importante particularidad de las bases RRD es que nocrecen con el tiempo.Fin

insRRDtoolRRDTool tiene bindings para ser usado desde Perl, Python,Ruby, TCL y PHPAdemás de guardar los datos, claro, implementa la generaciónde sus grá casRRDtool es una bestia muy interesante, vale la penaaprenderlo Al menos, comprender sus conceptos básicos nosva a ayudar si (como veremos más adelante) escribimosplugins para MuninNo vamos a profundizar sobre el tema. Hay un tutorial sencillo,completo y bien escrito (½y en español!) al respecto en Bulma:http://bulma.net/body.phtml?nIdNoticia 1284Fin

roducción al monitoreo de sistemas2Otros jugadores en el mismo terreno3Repaso histórico sobre Munin y Hugin4Un vistazo a la arquitectura de Munin5Algunos ejemplos explicados de monitoreo6Escribiendo tus propios plugins7FinEjemplosPluginsFin

insMunin y HuginHHugin y Munin en los hombros de Odín;manuscrito islandés, s. XVIIIuginn ok Muninn fljúga hverjan dag Jörmungrund yfiróumk ek of Hugin, at hann aftr né komi-t, thó sjámk meir of Munin.Hugin y Munin vuelan todos los días alrededor del mundo;Temo menos por Hugin de que no regrese, aún más temo por MuninEdda poética - Grímnismál, estrofas 19 y 20Fin

IntroducciónOtrosHistoriaMunin y HuginRepresentación de Munin y HuginOdín en el detalle de un casco,acompañado de sus cuervos.ArquitecturaEEjemplosPluginsnórdica, Munin yHugin son los cuervos del dios Odín. Vuelana través del mundo, y relatan a Odín,susurrando a sus oídos, lo que han visto,todas las noticias.Recuerdan todo.Hugin es el pensamiento y Munin es lamemoria.Es debido a estos cuervos que el kennigar(Hrafnaguð) dios cuervo se utilizabapara referirse a Odín.n la mitologı́aFin

ginsMunin y Hugincoinciden con los dos hemisferios del cerebroy sus dos funciones: Pensar y recordar.ugin y MuninSonaja en forma de cuervoEn la cultura Céltica el Cuervo es animal de presagios, de hechoestá asociado a la brujería en toda Europa. Interpretando la voz delos cuervos puedes oír a los dioses.Fin

IntroducciónOtrosHistoriaMunin y HuginEstandarte vikingo del cuervoOdín y Slepnir, el caballo de ocho patasArquitecturaCEjemplosPluginsuando un cuervo planea encimade un guerrero signi ca buena suerte enla batalla.Se dice que el emperador FedericoBarba Roja está enterrado en el monteKy häuse. Si algún día ningún cuervoplanea más sobre este monte, elemperador regresara con sus huestes.Esta saga rememora a Odin y susEinherjer, los espíritus de los guerrerosmuertos en batalla preparándose para labatalla nal.Fin

IntroducciónOtrosMunin y HuginHistoriaArquitecturaEjemplos .telia.com/ u85903393/huginoch munin english.htmlhttp://es.wikipedia.org/wiki/Hugin y Muninhttp://es.wikipedia.org/wiki/Estandarte del cuervoY Fin

IntroducciónOtrosMunin y HuginHistoriaArquitecturaEjemplos .telia.com/ u85903393/huginoch munin english.htmlhttp://es.wikipedia.org/wiki/Hugin y Muninhttp://es.wikipedia.org/wiki/Estandarte del cuervoY Fin

roducción al monitoreo de sistemas2Otros jugadores en el mismo terreno3Repaso histórico sobre Munin y Hugin4Un vistazo a la arquitectura de Munin5Algunos ejemplos explicados de monitoreo6Escribiendo tus propios plugins7FinEjemplosPluginsFin

ins¾Qué me llevó a Munin?Habiendo tantos programas de dónde elegir.¾Por qué Munin?Fácil de con gurar e integrar, tanto en un sólo host como enuna red, plana o complejaOrientado a la autocon guración (munin-node-configure)Diseñado para ser simple de extender a través de pluginsPresenta información histórica que me permite analizartendencias, pero no permite a un usuario remoto ejecutarcódigo (genera HTML estático)Fin

ins¾Qué no es Munin?Munin no es perfecto ni es para todas las situaciones ycon guracionesMunin recibe la información sin autenticación y en texto planosobre la red. Si hay información sensible o con dencial, no esadecuadoHace monitoreo periódico, cada cinco minutos. Sirve pararecolectar datos estadísticos, no como herramienta dealertamiento (puede servir, pero no es su función natural nióptima)Fin

insServidor, plugins y clienteMunin se divide en tres componentes principales:Servidor Un demonio que corre en todas las máquinasmonitoreadas, por default en el puerto 4949. Sufunción es con gurar y llamar a los plugins.Cuando hablamos de munin-node, nos referimos alservidor.Plugins Cada uno de los agentes de recolección de datos queson invocados por munin-node. Dan la informaciónque monitorean, y son también capaces de describirsu función y con guraciónCliente Proceso que corre periódicamente (normalmente cada5 minutos) desde un nodo central, interrogando acada uno de los servidores munin-node, y generandolas páginas Web con los resultadosFin

insInstalación de MuninPuedo asumir que utilizan software de calidad, que no les gustacomplicarse la vida.¾Verdad?Fin

insInstalación de MuninPuedo asumir que utilizan software de calidad, que no les gustacomplicarse la vida.¾Verdad?Instalando Munin en Debiangwolf@malenkaya[1] su Password:root@malenkaya[1] # aptitude install munin munin-node(.)Do you want to continue? [Y/n/?] y(.)Y ya.Instalado, con gurado y funcionando.Fin

icando la magia: munin-node-con gUn buen mago jamás revela sus secretos.PluginsFin

insExplicando la magia: munin-node-con gUn buen mago jamás revela sus secretos.Afortunadamente, soy administrador de sistemas, no mago.munin-node-configureLlamado sin opciones, nos desglosa la con guración actual:Fin

insExplicando la magia: munin-node-con gIndicando suggest, nos sugiere qué plugins activar y con quécon guraciones lanzarlosmunin-node-configure suggestClaro, al momento de instalación, el sistema es interrogado por estescript Y obtenemos una con guración por omisión muycompleta.Fin

insFinCon gurando Munin-node (servidor) más allá de los defaults¾Y si quiero a nar lo que me es monitoreado? ¾Agregar, quitaragentes? ¾Especi car parámetros?Los parámetros base de cada servidor munin-node soncon gurados en /etc/munin/munin-node.conf:log level 4log file /var/log/munin/munin-node.logport 4949pid file /var/run/munin/munin-node.pidbackground 1setseid 1# Which port to bind to;host 127.0.0.1user rootgroup rootsetsid yesPara un sólo nodo, la con guración default es típicamenteadecuada.

insFinCon gurando Munin-node (servidor) más allá de los defaultsPara determinar los plugins a activar, basta ligarlos o eliminarlos 0616:0615:21acpi - /usr/share/munin/plugins/acpicpu - /usr/share/munin/plugins/cpudf - /usr/share/munin/plugins/dfdf inode - /usr/share/munin/plugins/df inodeentropy - /usr/share/munin/plugins/entropyforks - /usr/share/munin/plugins/forksif eth1 - /usr/share/munin/plugins/ifif eth2 - /usr/share/munin/plugins/ifTomen nota de los últimos dos Los plugins cuyo nombre terminaen son mágicos

insFinCon gurando Munin-node (servidor) más allá de los defaultsAlgunos plugins pueden recibir, además, parámetros ocon guraciones adicionales.Estos los con guramos a través de archivos en/etc/munin/plugin-conf.d/, en bloques con el estilogeneral/tradicional .iniHay tres tipos de con guración en este archivo:user, group Especi ca con qué usuario y grupo correr elplugincommand Comando a ejecutar en vez del plugin. Podemospasarle el nombre del plugin con %cenv.* Variables de ambiente a con gurar, paraespeci car parámetros particulares a cada plugin.En una instalación básica, rara vez hace falta siquiera tocarestos archivos

insCon gurando Munin (cliente) más allá de los defaults¾Y cómo monitoreo a varios hosts?La con guración del cliente esta en /etc/munin/munin.conf; lasección relevante default dice:[localhost.localdomain]address 127.0.0.1use node name yesFin

insCon gurando Munin (cliente) más allá de los defaultsPara monitorear a varios hosts, es casi igual:[webserver.localdomain]address 127.0.0.1use node name yes[database.localdomain]address 192.168.100.150use node name yesHay varias opciones más disponibles para la generación de páginasde grá cas (p.ej. totalizaciones, ordenamiento interno.)Fin

insEl protocolo básico de MuninEl servidor de munin implementa un protocolo muy sencillo:list Muestra los plugins disponibles en este hostnodes Nodos que este host reporta (p.ej. sobre SNMP)con g plugin Descripción y con guración del plugin especi cadofetch plugin Recupera los valores actuales del plugin solicitadoquit Finaliza la sesión de monitoreoFin

insUna conversación ejemplo con Munin-node (1) nc localhost 4949# munin node at webserver.localdomainhelp# Unknown command. Try list, nodes, config, fetch,version or quitlistopen inodes entropy irqstats mysql slowqueriesprocesses acpi mysql threads df netstat interruptsswap mysql bytes if eth2 load df inode cpu if eth1mysql queries forks iostat open files memory vmstatnodeswebserver.localdomain.Fin

insUna conversación ejemplo con Munin-node (1) nc localhost 4949# munin node at webserver.localdomainhelp# Unknown command. Try list, nodes, config, fetch,version or quitlistopen inodes entropy irqstats mysql slowqueriesprocesses acpi mysql threads df netstat interruptsswap mysql bytes if eth2 load df inode cpu if eth1mysql queries forks iostat open files memory vmstatnodeswebserver.localdomain.Fin

insUna conversación ejemplo con Munin-node (1) nc localhost 4949# munin node at webserver.localdomainhelp# Unknown command. Try list, nodes, config, fetch,version or quitlistopen inodes entropy irqstats mysql slowqueriesprocesses acpi mysql threads df netstat interruptsswap mysql bytes if eth2 load df inode cpu if eth1mysql queries forks iostat open files memory vmstatnodeswebserver.localdomain.Fin

insUna conversación ejemplo con Munin-node (1) nc localhost 4949# munin node at webserver.localdomainhelp# Unknown command. Try list, nodes, config, fetch,version or quitlistopen inodes entropy irqstats mysql slowqueriesprocesses acpi mysql threads df netstat interruptsswap mysql bytes if eth2 load df inode cpu if eth1mysql queries forks iostat open files memory vmstatnodeswebserver.localdomain.Fin

insUna conversación ejemplo con Munin-node (2)config entropygraph title Available entropygraph args base 1000 -l 0graph vlabel entropy (bytes)graph scale nograph category systemgraph info This graph shows the amount of entropyavailable in the system.entropy.label entropyentropy.info The number of random bytes available.This is typically used by cryptographic applications.fetch entropyentropy.value 815.quitFin

insUna conversación ejemplo con Munin-node (2)config entropygraph title Available entropygraph args base 1000 -l 0graph vlabel entropy (bytes)graph scale nograph category systemgraph info This graph shows the amount of entropyavailable in the system.entropy.label entropyentropy.info The number of random bytes available.This is typically used by cryptographic applications.fetch entropyentropy.value 815.quitFin

insUna conversación ejemplo con Munin-node (2)config entropygraph title Available entropygraph args base 1000 -l 0graph vlabel entropy (bytes)graph scale nograph category systemgraph info This graph shows the amount of entropyavailable in the system.entropy.label entropyentropy.info The number of random bytes available.This is typically used by cryptographic applications.fetch entropyentropy.value 815.quitFin

roducción al monitoreo de sistemas2Otros jugadores en el mismo terreno3Repaso histórico sobre Munin y Hugin4Un vistazo a la arquitectura de Munin5Algunos ejemplos explicados de monitoreo6Escribiendo tus propios plugins7FinEjemplosPluginsFin

insLeyendo grá cas como mecanismo de aprendizajeLeer las grá cas generadas por Munin nos puede llevar aaprender y entender muchos aspectos del funcionamiento denuestro sistemaEs importante que revisemos todos los aspectos que llamennuestra atención Pueden llevarnos a sorprendentesrevelacionesFin

IntroducciónOtrosUso de CPUHistoriaArquitecturaEjemplosPluginsFin

insNúmero y estado de conexiones manejadas por el rewallFin

IntroducciónOtrosHistoriaArquitecturaUso (anual) del sistema de archivosEjemplosPluginsFin

ronización con el reloj atómico (NTP)PluginsFin

IntroducciónOtrosHistoriaArquitecturaUso del bus de entrada/salidaEjemplosPluginsFin

IntroducciónOtrosUso de memoriaHistoriaArquitecturaEjemplosPluginsFin

IntroducciónOtrosHistoriaArquitecturaUso de CPU por DomU en XenEjemplosPluginsFin

ero de asesinos registrados a lo largo del añoPluginsFin

roducción al monitoreo de sistemas2Otros jugadores en el mismo terreno3Repaso histórico sobre Munin y Hugin4Un vistazo a la arquitectura de Munin5Algunos ejemplos explicados de monitoreo6Escribiendo tus propios plugins7FinEjemplosPluginsFin

ins½El cielo es el límite!Probablemente la mayor fuerza de Munin es lo fácil que resultaimplementar y desplegar nuestros propios pluginsLos plugins pueden implementarse en cualquier lenguaje, bastacon ofrecer una interfaz muy simpleCualquier cosa cuanti cable es monitoreablePara realmente aprovecharlo en realidad, nos convieneaprender las sutilezas de RRDtoolFin

insLógica de operación de un pluginCada plugin es ejecutado, como un script cualquiera.El plugin corre con los privilegios de usuario de nidos en suentrada en /etc/munin/plugin-conf.d/Su modo de operación lo determina el único parámetroautoconf ¾Es capaz de autocon gurarse en base alentorno? (yes / no y estado de salida)suggest ¾En qué casos se autosugerirá al cliente Munin?(por estado de salida)config ¾Qué parámetros gra cará? (Descripción de lagrá ca, etiquetas de los ejes y las variables, eindicaciones de formato a RRDtoolSin parámetros Entrega los resultados del monitoreo encuestiónFin

ins¾Y cómo obtengo los datos?. Como quieras.¾Datos de salud/parámetros de operación del núcleo? cat grep sobre /proc y similares¾Estado de los recursos del sistema? Tomamos la salida de laejecución de diferentes comandos df, du, etc.¾Datos obtenidos de la red (p.ej. monitoreo a sitios remotos)?A través de un script en nuestro lenguaje favorito¾Niveles de bases de datos? Scripts que interroguen a la BD encuestión, en nuestro lenguaje favorito. ½Lo que sea que nos pueda generar salida cuanti cable!Fin

ins¾Y cómo obtengo los datos?. Como quieras.¾Datos de salud/parámetros de operación del núcleo? cat grep sobre /proc y similares¾Estado de los recursos del sistema? Tomamos la salida de laejecución de diferentes comandos df, du, etc.¾Datos obtenidos de la red (p.ej. monitoreo a sitios remotos)?A través de un script en nuestro lenguaje favorito¾Niveles de bases de datos? Scripts que interroguen a la BD encuestión, en nuestro lenguaje favorito. ½Lo que sea que nos pueda generar salida cuanti cable!Fin

insCosas a tomar en cuenta con nuestros plugins¾Con qué privilegios va a correr? ¾Puedo obligar a que el scriptno sea llamado como root?¾Qué tiempo de ejecución tiene cada plugin? Recuerden quevoy a tener una invocación de todos mis plugins cada cincominutos. ¾Puedo separarlo en hilos o procesos?¾Qué tan sensibles son estos datos? Recuerden que Munin noimplementa autenticación ni cifado Pueden con gurarlop.ej. sobre interfaces ligadas a una VPN.Fin

roducción al monitoreo de sistemas2Otros jugadores en el mismo terreno3Repaso histórico sobre Munin y Hugin4Un vistazo a la arquitectura de Munin5Algunos ejemplos explicados de monitoreo6Escribiendo tus propios plugins7FinEjemplosPluginsFin

insConcluyendoMunin es.BonitoDivertidoUna herramienta para monitorear nuestros sistemasUn gran recurso para aprender acerca de nuestros sistemasUna maravillosa herramienta para apantallar al jefeUn pedazo de mitología nórdica :-}Una excelente manera de perder el tiempoFin

acias!Gunnar Wolf plosPluginsFin

Monitoreo de redes con Munin Gunnar Wolf gwolf@debian.org . Habiendo tantos programas de dónde elegir. ¾Por qué Munin? Fácil de con gurar e integrar, tanto en un sólo host como en . plana o compleja Orientado a la autocon guración ( munin-node-configure ) Diseñado para ser simple de extender a través de plugins Presenta información .