La imagen
La imagen sería esta: en el servidor donde se implante el monitoreo (con el syslog centralizado), estaría corriendo un cliente jabber (lo más scripting-friendly posible), que serviría de plataforma para los datos a comunicar desde los scripts.
En el lado del cliente, el administrador tendría una cuenta en el servidor jabber (visible o no desde internet, a decisión de cada uno), en la cual cuando se conecta, tiene a la vista en su lista de contactos a los servers que están siendo monitoreados.
Detalles
No sé si notan el potencial ahora, la solución es independiente de la plataforma y permitiría monitorear los servers desde cualquier workstation insegura dentro de la red. Plus Internet; según el nivel de seguridad necesario, recuerden un servicio Jabber "X" no suele estar tan bien depurado como un servicio SSH, aunque siempre podemos interponer una VPN entre el jabber y nuestro cliente y la comunicación quedaría encapsulada doblemente, VPN+SSL (más un par de reglas iptables en el server que permitan el acceso a los puertos de Jabber solo desde las IPs que se puede obtener del link VPN y ya estaríamos agregando una sencilla capa extra de seguridad).
Interactividad
El bonus potencial, la interactividad (era la idea original), una o dos opciones:
- Que otro script espere el evento de apertura de la comunicación y postee los datos a la ventana de la comunicación (podría ser un solo evento), o
- En el orden que fueron apareciendo los string/palabras clave); que otro script (mas), escanee cada comunicación abierta del cliente/server (según la facilidad de implementación que prefieran), y responda a palabras clave escritas directamente en la ventana de la comunicación jabber ejecutando comandos en el server.
Con respecto a esto último, lo recomendable sería habilitar no cualquier comando (es tentador correr cualquier comando y mostrar la salida en la ventana de mensajería), sino algunos comandos seleccionados, de monitoreo y relacionados.
Seguridad e interactividad
La interactividad añade una capa extra de desarrollo y consideraciones importantes de seguridad. ¿cómo ejecutamos los comandos en los servidores si solo tenemos acceso a los logs en el syslog centralizado? Hay varias maneras, se podría simplificar así, no se usa el syslog central: se trabaja directamente sobre el server, los scripts trabajan sobre cada server en particular, y el cliente Jabber se ejecuta también en cada server particular.
La seguridad se conserva en parte porque la comunicación va por la red interna y vía SSL, se complica si queremos publicar el server Jabber en Internet porque tenemos que añadir una nueva tupla de reglas a la red (puertos-protocolo-rutas L3- "rutas" L2, etc.), que habilita un punto de comunicación bidireccional entre la DMZ y la red interna (es decir, hacia TODOS los servers que tengan montada la solución para correr comandos "vía" Jabber). Es algo para meditar y yo no recomendaría dar salida a Internet nunca a una solución como esta última, pero sí podría ser muy util en otros casos de uso desde la red interna.
Detalles finales
2 comentarios:
Esta es una buena idea. He considerado el uso de jabber Nagios notificaciones, pero para registro de alertas, es interesante y no requiere una gran infraestructura subyacente
Dado que no hablo español bien, esta fue traducida con Google
Definitivamente bueno pero, hay sitios como secayo.com que ya contemplan todo esto, y lo mejor es que es libre, no se paga por el monitoreo, es incluso una comunidad virtual.
Publicar un comentario