¿Qué es el lunes?
¿Qué es mon?
mon es un sistema de monitoreo de recursos de destino general que se puede utilizar para monitorear la disponibilidad de los servicios de red, problemas del servidor y condiciones ambientales como la temperatura que afectan el funcionamiento del sistema.
El monitoreo de recursos se puede considerar como dos tareas separadas: probar condiciones y desencadenar acciones cuando ocurre un problema. mon está diseñado para detectar servicios independientes y responder en consecuencia. mon implementa la ejecución de tareas de monitoreo en forma de programador. Cuando el monitor falla, se puede llamar al programa de alarma correspondiente.
Generalmente utilizamos mon como plataforma de monitoreo de recursos en un entorno de clúster. A través de él, podemos monitorear casi todos los servicios conocidos, como servicios, servicios de correo, etc., e incluso podemos monitorear cambios en archivos, comprender en tiempo real si el host controlado se está reiniciando, etc. mon proporciona una buena plataforma para monitorear los recursos del sistema de hosts remotos. Además, mon proporciona un poderoso mecanismo de alarma, es decir, cuando monitorea que un servicio específico falla o surte efecto, mon mostrará lo que hará. La buena noticia es que tanto la herramienta de monitoreo mon como el programa de alarma están escritos en un lenguaje de programación conveniente. Puedes usar shell o perl o algo más. Los parámetros que deben pasarse se pasan al programa de script específico correspondiente a través de la línea de comando con la ayuda de las variables del demonio mon y las variables de entorno del sistema.
Las siguientes son algunas herramientas de cliente incluidas con el paquete de software mon, que se pueden encontrar en los subdirectorios cgi-bin/ y client/:
-moncmd, utilizado para herramientas de operación del cliente. , Implementó una interfaz cliente/servicio completa.
-monshow se utiliza para informar el estado de ejecución de los servicios de monitoreo. Proporciona herramientas de línea de comandos y libros de texto cgi. Muestra el estado actual del servicio, información del grupo y registros de errores en un formato gráfico amigable.
-skymon, la interfaz de localización bidireccional de SKYTEL, le permite consultar el estado del servicio y proporciona el mismo método de mantenimiento de servicios que moncmd. El acceso se realiza a través de un mecanismo simple de autenticación de usuario/contraseña y un archivo de control de acceso.
-mon.cgi, la interfaz web de mon, no solo le permite ver el estado de ejecución del servicio a través de la página web, sino que también cambia los parámetros correspondientes del servicio en tiempo real.
Los monitores y alertas no forman parte de mon, aunque existen algunas herramientas de este tipo en el paquete de distribución adjunto. Esto significa que si hay un nuevo servicio que necesita ser monitoreado o una acción de modificación a la que debe responderse, no es necesario cambiar el mon. Esto garantiza la escalabilidad de mon.
Características de mon
Mon es una herramienta desarrollada para Linux, pero se sabe que también puede funcionar bajo Solaris. Debido a que tanto el cliente como el servidor están escritos en Perl, no hay ningún problema con la portabilidad.
Monitoreo
La palabra "monitoreo" se utiliza para comprobar condiciones ambientales específicas e informar del éxito o fracaso del servicio en cualquier momento y de cualquier forma. El diseño de mon es muy independiente. Puede escribir un programa de monitoreo en cualquier idioma que desee, siempre que lo coloque en el lugar especificado por mon según sea necesario, su programa de monitoreo funcionará.
Mecanismo de comunicación de eventos asincrónicos
El servicio mon admite un mecanismo de comunicación de eventos asincrónicos. Este es un protocolo abierto, al igual que los scripts de monitor y alerta, puede activar cualquier evento. Una aplicación típica es la de captura SNMP. Los eventos de captura generados por nodos remotos se pueden manejar de la misma manera que los eventos de falla de notificación del grupo de monitores. Por tanto, es fácil establecer un sistema de seguimiento distribuido. Por ejemplo, dentro de un rango WAN, los hosts de diferentes dominios pueden recopilar su propia información operativa y notificar rápidamente a los servidores ubicados centralmente, como NOC, sobre eventos importantes.
Alarma
El tutorial "alarma" se utiliza para enviar mensajes o realizar procesamiento de fallas cuando mon detecta un problema. Estos scripts de alarma, al igual que los scripts de monitoreo, no forman parte del mon en sí, pero se pueden agregar como módulos extendidos. Aquí también se admiten las "Upalerts", que son scripts especializados que se activan cuando un servicio falla durante un período de tiempo y luego vuelve a la normalidad.
Gestión de alarmas y control de fallos
El fallo de cualquier servicio monitorizado provocará un comportamiento de alarma, e incluso el mismo evento activará múltiples mensajes de alarma a diferentes usuarios. Puede utilizar esta función para crear horarios "de guardia". Por ejemplo, puede configurar el sistema para que, una vez que detecte que algún recurso no está disponible, envíe un mensaje de alerta a todos los administradores del sistema si se considera que es antes de las 8 a. m., y si es después de las 8 a. m., solo envíe un mensaje de alerta al administrador Xiao Wang.
Paralelismo
Capacidad de paralelizar el trabajo del servicio de detección en diferentes hosts o en el mismo grupo de hosts. Por ejemplo,
Restringir alarmas repetidas
mon sistema puede limitar el comportamiento de las alarmas repetidas. Por ejemplo, puede configurar un servicio de interrupción persistente para enviar solo un correo electrónico de alerta cada hora en lugar de enviarlo continuamente. También puede optar por ignorar eventos de falla pequeños y transitorios.
Dependencias
Mon admite la función de dependencia del servicio interno. Por ejemplo, cuando falla la ruta entre el servidor de monitoreo y el servidor WWW monitoreado, aunque no se puede acceder al servicio HTTP, el contenido correcto del mensaje de alarma debe indicar que se trata de un problema de enrutamiento en lugar de un problema HTTP. Las dependencias también pueden evitar que se emita una gran cantidad de mensajes de advertencia cuando no se puede acceder a recursos importantes. Puede entender la dependencia como una estructura jerárquica o una estructura de árbol. Cuando ocurre un evento de falla, esta dependencia puede permitir que el evento de falla pase la tarea de procesamiento al nodo hoja de acuerdo con la dirección de la estructura del árbol. Puede hacer que la alarma refleje la verdadera situación de la falla tanto como sea posible. Sin embargo, las dependencias complejas deben representarse mediante gráficos generativos, porque en la práctica no se utilizaría una estructura de árbol o una jerarquía para describir las dependencias.
Configuración escalable
Mon proporciona un mecanismo de archivo de configuración que es altamente escalable y extensible. Los anfitriones se pueden planificar en grupos y cada anfitrión o grupo de anfitriones puede tener sus propios servicios múltiples. Para obtener más información, consulte el archivo de muestra adjunto.
Verdadero modelo de cliente/servicio
Puede utilizar comandos interactivos, interfaz WWW y herramientas de cliente SkyTel para consultar el estado y el historial del servicio. El protocolo es simple, lo que facilita agregar sus propias herramientas de cliente. Mon admite múltiples métodos de autenticación, incluido PAM, que puede implementar control de acceso para cada usuario. La consulta del estado del servicio se puede programar utilizando un módulo API de Perl, por lo que es muy sencillo escribir su propia interfaz de comunicación. Por ejemplo, puede utilizar el protocolo WAP para acceder al estado del servicio. Lo que cabe mencionar aquí es que varias comunidades están desarrollando sus propias herramientas de interfaz WWW.
Informes de estado basados en vistas
A través de complejos archivos de configuración, los usuarios pueden ver información a través de vistas de estado de servicio sin conocer el estado específico de cada servicio monitoreado. Por ejemplo, una vista de "red" muestra toda la topología de la red, mientras que una vista de "servidores" incluye toda la información sobre los servicios. Si lo desea, puede configurar vistas para cada usuario y los usuarios pueden controlar sus propias vistas.
Permitir o deshabilitar alarmas en tiempo real
Mon puede prohibir el comportamiento normal de alarma de un evento de falla del servicio hasta que se resuelva el problema de falla. Este estado, también conocido como "ack", se puede obtener (restaurar) desde la interfaz del cliente para que los usuarios sepan que el personal de soporte está resolviendo un problema específico sin tener que preocuparse por ello. También puede configurar un host, grupo o servicio específico en un estado que prohíba temporalmente la reactivación del cliente sin detener o reiniciar el servicio.
Si está actualizando un servicio en particular, puede deshabilitar las alertas y habilitarlas nuevamente cuando se complete la actualización.
Registros históricos
mon puede mantener registros históricos de eventos de falla, activadores de alarmas y otros comportamientos para brindar a los usuarios consultas futuras.
Portátil
Mon es una herramienta muy liviana. Ampliar sus servicios no requiere escribir código complejo ni pasar por dolorosos procesos de compilación y vinculación. Porque todas las funciones de extensión son modulares y están escritas en lenguaje de programación puro Perl. Esto garantiza plenamente la portabilidad y simplicidad del sistema Mon.