En este artículo comento detalles del curso de monitoreo de redes y servidores, que voy a dictar próximamente. Los datos de contacto del curso aquí:
El por qué del curso
El trabajo de monitorear infraestructura es comunmente poco considerado como parte de las soluciones de infraestructura. Eso es un error.
Al implementar un sistema, cualquiera sea: un servidor web Apache, un domain controler Active Directory, un servidor de archivos Samba, etc. hay en general varias componente, parte de una solución integral realmente completa:
- Instalación (el software instalado y funcionando)
- Configuración (el software adecuado al contexto y los requerimientos)
- Administración (conocimientos necesarios para la gestión del software y su posterior re-adaptación a cambios en el contexto y/o en los requerimientos)
- Recuperación de Desastres (la planificación y disposición de lo necesario para recuperar el sistema completo luego de una falla total)
- Backup (el resguardo de datos importantes del sistema, de importancia histórica, que no son parte de la instalación desde cero).
- Monitoreo (permite controlar el funcionamiento de la solución, prever emergencias, recibir alertas de fallas que ya ocurrieron y adquirir - y archivar sistemáticamente - información histórica útil que nos permitirá optimizar todas las demás tareas antes mencionadas: configuración, administración, recuperación de desastres, backup, etc., inclusive las nuevas instalaciones serán optimizadas al analizar en retrospectiva la información obtenida del monitoreo).
- Etc.
El monitoreo es una de esas componentes clave, y disponer de una adecuada solución de monitoreo global para la infraestructura es de vital importancia. Ese es el por qué de este curso.
Día y Horario
El curso se va a dictar los jueves, de 20.30 hs. a 23.30 hs. (3 hs. en total), una vez por semana.
Costos
Inscripción: AR$ 50
Cuota Mensual: AR$ 250
Duración
4 Meses
Instrucciones Paso a Paso
Bien sigo en preparación detallada del curso de monitoreo de redes y servidores, ¿por qué preparación detallada? Porque al ser un curso práctico (en jerga > "hands-on"), necesito tener instrucciones paso a paso de cada instalación y configuración que se vaya a hacer en clase.
Por eso, además del material de lectura que ya tengo archivado, estoy en estos días creando el "guión" de cada clase, donde voy planificando cómo se va a dar la clase, de qué temas voy a hablar, cuando, etc. Además, estoy planificando qué y en qué orden vamos a ir haciendo para llevar adelante las implementaciones del software que se va a mostrar en el curso.
Claro, este material va a ser parte del curso: instrucciones paso a paso de cómo instalar y configurar - "implementar" - los diferentes software de monitoreo y se entrega a los asistentes (en formato electrónico por cierto).
Sé que hay mucho material ya online, de hecho yo lo estoy usando intensivamente, y los links a los tutoriales son parte de la documentación del curso, sin embargo, cada howto y tutorial se caracteriza porque se hizo en base a X distribución, X versión de esa distribución, utilizando X versión del software y en la práctica, siempre se termina utilizando varios tutoriales (y varias fuentes de documentación), para llegar a un resultado satisfactorio en una implementación, alcanzado así a proveer la solución buscada (en este caso, para el curso). El motivo es que normalmente un solo tutorial no alcanza a brindar todas las respuestas (y la diferencia la suplimos con otros tutoriales y con nuestra propia experiencia).
El trabajo de revisar y documentar paso a paso las implementaciones es necesario - en mi opinión - para un curso como este: es para mutuo beneficio - del que dicta el curso y de los que asisten - el tener tutoriales paso a paso de todo el software, adecuado específicamente, y actualizado a marzo 2013, a las versiones de todo lo que se va a utilizar en el curso.
La distribución: Debian
La distribución que se va a utilizar va a ser Debian Linux Squeeze, que tengo el gusto de estar administrando profesionalmente desde años (antes de Squeeze claro), y ahora mismo.
El 90% de las instalaciones se realizarán usando apt-get y hay un pequeño porcentaje de instalaciones que va a requerir compilar código (los agentes SFlow). No se olviden de las instrucciones paso a paso, para esto también las va a haber.
Tareas Accesorias
Debido a que las implementaciones de software de monitoreo califican como trabajo de administración de sistema de nivel como mínimo intermedio a avanzado, hay muchas, varias técnicas de trabajo - workflow - y de configuración/diagnóstico/reparación que va a hacer falta implementar mientras se realiza el trabajo. Esto también va a ir teniendo el mencionado paso a paso.
Por ejemplo: Cuando se configura un webserver Apache, hace falta determinar qué usuario utiliza Apache para corre, luego hace falta que todos los archivos que van a ser parte del sitio a configurar tengan de owner al usuario de Apache; luego - si no fue creado automáticamente - va a hacer falta crear el archivo de configuración del sitio (que va en un directorio específico, etc. etc.). Todo lo anterior hace falta realizarlo al menos tres veces durante la configuración del software del curso y lo vamos a hacer en directo, no va a haber ninguna transición automágica al estilo "bueno, ahora se configura Apache y listo, queda así".
Hay bastantes tareas accesorias por cierto ("¿cómo se puede ver todas las líneas de un archivo de configuración que no estén comentadas con #?"), pero se ubican muy lógicamente dentro del flujo de trabajo de la instalación y configuración del soft de monitoreo, no va a haber ninguna mezcla de temáticas, sino simplemente serán etapas - un poco más complejas - de la implementación general.
El software de monitoreo
El software que se va a instalar,configurar y administrar va a ser:
- Agentes/Servicios SNMP (Windows y Linux)
- Ganglia (monitoreando Windows, Linux y equipos de red)
- Cacti (monitoreando Windows, Linux y equipos de red)
- Nagios (monitoreando Windows, Linux y equipos de red)
- Icinga (monitoreando Windows, Linux y equipos de red)
- OpenNMS (monitoreando Windows, Linux y equipos de red)
Software de monitoreo extra
Estoy trabajando (armando los tutoriales paso a paso), para incluir JffNMS y SFlow.
- Agentes SFLOW (Windows y Linux)
- JffNMS (monitoreando Windows, Linux y equipos de red)
SFlow es el "siguiente" protocolo, lo que se va a usar para reemplazar SNMP a corto o mediano plazo. Por ejemplo, estandariza todas las métricas que publica el agente, minimiza el tráfico necesario para enviar esas métricas (radicalmente respecto a cómo trabaja SNMP), y es seguro por arquitectura (única y exclusivamente transmite información, no hay manera de hacer que un agente SFlow reciba información desde la red, ya que no tiene servicios escuchando en puertos abiertos), por ende no hay posibilidad de explotar vulnerabilidad alguna en agentes SFlow, iniciando el ataque desde fuera del host. Etc. hay bastante más todavía, les sugiero googlear para sorprenderse.
JffNMS lo quiero mostrar porque - al menos en lo que leí hasta ahora - parece una buena opción a OpenNMS. OpenNMS está basado en Java y Postgresql, y JffNMS es software LAMP, así que me llama la atención la posibilidad de implementar un NMS (Network Management System), completo basado en PHP+Mysql (con la escalabilidad que ya sabemos que tiene la arquitectura de esas soluciones, por ejemplo, clusters MySQL).
Bibliografía
La bibliografía que estoy utilizando para los detalles más teóricos del curso (que no figuran ni de casualidad en howtos y tutoriales), son los de abajo. Espero poder repasar algunas partes clave de ese material mientras vamos instalando y recorriendo las instrucciones paso a paso.
Agentes/Servicios SNMP
- Essential SNMP, 2nd Edition, OReilly
Ganglia
- Monitoring with Ganglia, OReilly
Cacti
- Cacti Network.Monitoring, Packt
Nagios, Icinga
- Nagios Core Administration Cookbook, Packt
- Nagios System and Network Monitoring, 2nd Edition, No Starch Press
La dinámica del curso
Voy a necesitar que cada alumno pueda correr una máquina Debian (virtual o física), en la cual va a poder ir aplicando las instrucciones paso a paso. De este modo, van a poder ir implementando las diferentes soluciones sobre el mismo sistema, y lo van a tener a su disposición para ir customizando y probando posibilidades por su cuenta.
No es lo que voy a recomendar, pero estoy bastante seguro que al haber instrucciones paso a paso, muchos van a decidir relajarse y tomar unos mates mientras dejan pasar el feedback visual del dictante (ese sería yo :-), de todos modos, las instrucciones quedan disponibles por escrito y van a poder implementar el software en cualquier momento.
Ya que vamos a tener múltiples servidores Debian instalados y funcionando, el laboratorio completo va a ser el contexto de implementación y cada server Debian un nodo a monitorear, en ese punto calculo que el tiempo ahorrado en instrucciones paso a paso, lo vamos a gastar en resolver problemas inesperados - que siempre ocurren - en determinadas implementaciones.
Bien, nos estaremos viendo dentro de poco, sldos.
Yaco
No hay comentarios:
Publicar un comentario