Software de monitoreo de red
Shinken es un sistema informático de código abierto y una aplicación de software de monitoreo de red compatible con Nagios . Observa hosts y servicios, recopila datos de rendimiento y alerta a los usuarios cuando ocurren condiciones de error y nuevamente cuando las condiciones desaparecen.
La arquitectura de Shinken tiene como objetivo ofrecer un equilibrio de carga más sencillo y alta disponibilidad . El administrador gestiona una única configuración, el sistema automáticamente la "corta" en partes y la envía a los nodos trabajadores. Toma su nombre de esta funcionalidad: un Shinken es una espada japonesa.
Shinken fue escrito por Jean Gabès como prueba de concepto para una nueva arquitectura de Nagios. Creyendo que la nueva implementación era más rápida y flexible que el antiguo código C , la propuso como la nueva rama de desarrollo de Nagios 4. [3] Esta propuesta fue rechazada por los autores de Nagios, por lo que Shinken se convirtió en una aplicación de software de monitoreo de red independiente compatible. con Nagios . [4]
Shinken está diseñado para ejecutarse en todos los sistemas operativos donde se ejecuta Python . El entorno de desarrollo está bajo Linux , pero también funciona bien en otras variantes de Unix y Windows . El proceso de reacción (responsable de enviar notificaciones) también se puede ejecutar en el sistema operativo Android . Es software libre , licenciado según los términos de la Licencia Pública General Affero publicada por la Free Software Foundation .
Descripción general
- Diseño
- Sistema de monitoreo escrito en Python
- Arquitectura distribuida utilizando objetos remotos Pyro.
- Métodos de monitoreo activo y pasivo
- Monitoreo de servicios de red ( SMTP , POP3 , HTTP , NNTP , ICMP , SNMP , FTP , SSH )
- Monitoreo de los recursos del host ( carga del procesador , uso del disco , registros del sistema) en la mayoría de los sistemas operativos de red , incluido Microsoft Windows
- Usando agentes como NSClient++, send_nsca, Check MK , Thrift TSCA
- Usar agentes que permitan ejecutar scripts de forma remota a través de Nagios Remote Plugin Executor (con Shinken se incluye una implementación integrada de Python puro)
- Usar métodos sin agentes como SNMP, WMI , SSH con script o HTTP (SSL)
- Envíe los resultados de las comprobaciones directamente desde programas que utilicen Apache Thrift (Java, Python, Ruby)
- Monitoreo de sistemas que tienen la capacidad de enviar datos recopilados a través de una red a complementos escritos específicamente (por ejemplo, VMWare ESX3/4/5, Collectd)
- Monitoreo remoto compatible a través de túneles cifrados SSH o SSL .
- Diseño de complemento simple que permite a los usuarios desarrollar fácilmente sus propias comprobaciones de servicio según las necesidades, utilizando las herramientas de su elección ( scripts de shell , C++ , Perl , Ruby , Python , PHP , C# , etc.)
- Capacidad para calcular KPI a partir de datos de estado y rendimiento en el núcleo Shinken para crear nuevos servicios y datos de rendimiento.
- Interfaces externas del sistema
- API compatible con Livestatus que expone información de estado, configuración y rendimiento.
- Exporta datos a módulos de gráficos (PNP4Nagios, Graphite y otros disponibles)
- Soporte para API de mensajería nativa de Android
- Exporte datos de eventos a sistemas de registro usando syslog y RabbitMQ
- Se pueden adjuntar módulos a cualquier proceso Shinken para ampliar sus capacidades de manera muy eficiente.
- Actuación
- Servicio paralelo y comprobaciones de host disponibles
- Capacidad para distribuir procesos de sondeo en múltiples servidores.
- Soporte para implementar hosts de monitoreo fácilmente redundantes y con equilibrio de carga
- Soporte para múltiples interfaces externas redundantes
- Capacidad de enrutar comprobaciones a encuestadores dedicados (procesos especializados en ejecutar complementos)
- Correlación e inteligencia de negocios
- Relaciones entre padres e hijos
- Capacidad para definir la jerarquía de hosts de red utilizando hosts "principales", lo que permite la detección y distinción entre hosts que están inactivos y aquellos que son inalcanzables.
- 1 a 1, 1 a N
- Árboles de dependencia de forma libre entre cualquier servicio y host.
- Soporte para reglas de negocio integradas
- Hosts o servicios calculados que representan el estado de un servicio empresarial
- Soporte asignando un impacto de negocio a cada servicio, host o proceso de negocio
- Capacidad para mostrar solo problemas raíz.
- Cambia automáticamente los estados secundarios a desconocidos cuando el padre no está disponible
- Otras características
- Notificaciones de contacto cuando se produzcan problemas con el servicio o el host y se resuelvan (por correo electrónico , buscapersonas , SMS o cualquier método definido por el usuario a través del sistema de complementos)
- Capacidad para definir controladores de eventos que se ejecutarán durante eventos de servicio o host para una resolución proactiva de problemas.
- Capacidad para redefinir la gravedad de una alerta según reglas de expresión regular
- Soporte para nombres de objetos UTF-8
- Soporte para monitorear múltiples clientes con un punto de administración
- Soporte para tiempos de inactividad recurrentes a través del atributo mantenimiento_periodo
- Sistema de plantillas avanzado con herencia y sobrecarga.
Arquitectura
Una instalación Shinken consta de varios procesos, cada uno optimizado para una tarea específica.
- Árbitro
- Carga los archivos de configuración y envía los objetos de host y servicio a los programadores.
- Vigilante de todos los demás procesos y responsable de iniciar la conmutación por error si se detecta un error.
- Puede enrutar eventos de resultados de verificación desde un receptor a su programador asociado
- Módulos de árbitro
- Hay una variedad de módulos para manipular datos de configuración.
- Programador
- Planifica la próxima ejecución de comprobaciones de host y servicio.
- Envía cheques a los encuestadores.
- Calcula el estado y las dependencias.
- Aplica activadores de KPI
- Genera notificaciones y las envía a los reaccionarios.
- Actualiza el archivo de retención (u otros servidores de retención)
- Envía brokers (eventos internos de cualquier tipo) al broker(s)
- encuestador
- Obtiene comprobaciones del programador, ejecuta complementos o módulos de sondeo integrados y envía los resultados al programador
- Módulos de encuesta
- NRPE: ejecuta la adquisición activa de datos para los agentes de Nagios Remote Plugin Executor
- SNMP: ejecuta la adquisición activa de datos para agentes habilitados para SNMP (en etapa beta usando PySNMP)
- CommandPipe: recibe datos pasivos de estado y rendimiento del script check_mk, no procesará comandos
- reaccionario
- Recibe notificaciones y controladores de eventos del programador, ejecuta complementos/scripts y envía los resultados al programador
- Corredor
- Tiene múltiples módulos (generalmente ejecutándose en sus propios procesos)
- Obtiene intermediarios del programador y los reenvía a los módulos del intermediario
- Los módulos deciden si manejan un intermediario dependiendo del tipo de intermediario (registro, estado inicial del servicio/host, resultado de la verificación, inicio/finalización del tiempo de inactividad, ...)
- Los módulos procesan los intermediarios de muchas maneras diferentes. Algunos de los módulos son:
- webui: actualiza objetos en memoria y proporciona un servidor web para la GUI nativa de Shinken
- Livestatus: actualiza objetos en memoria que se pueden consultar mediante una API mediante GUI como Thruk o Check_MK Multisite
- Graphite: exporta datos a una base de datos de Graphite.
- ndodb: actualiza una base de datos ndo (MySQL u Oracle)
- simple_log: centraliza los registros de todos los procesos Shinken
- status_dat: escribe en un archivo status.dat que puede ser leído por la GUI clásica basada en cgi
- Receptor (opcional)
- Recibe datos pasivamente desde protocolos locales o remotos.
- Recepción pasiva de datos que se almacena en un buffer antes de reenviarlos al Programador apropiado (o Árbitro para comandos globales)
- Permite configurar una "granja" de receptores para manejar una alta tasa de eventos entrantes.
- Módulos para receptores
- NSCA - Receptor de protocolo NSCA
- Collectd: reciba datos de rendimiento recopilados a través de la red
- CommandPipe: reciba comandos, actualizaciones de estado y datos de rendimiento
- TSCA: interfaz Apache Thrift para enviar resultados de verificación utilizando una conexión TCP con búfer de alta velocidad directamente desde los programas
- Servicio web: un servicio web que acepta publicaciones http de resultados de verificación (beta)
Puede haber varias instancias para cada tipo de proceso, ya sea en un solo host o distribuidas en muchos hosts. Agregar más procesos distribuye automáticamente la carga.
Shinken WebUI es la interfaz web incorporada que proporciona información de estado, configuración, interacción casi en tiempo real, un panel para visualizar datos de tendencias de las bases de datos de Graphite y la visualización de gráficos de árbol de dependencia.
Shinken skonfUI es una interfaz web independiente que se utiliza para gestionar el proceso de descubrimiento y las tareas de configuración.
El script CLI shinken-admin se utiliza para administrar durante el tiempo de ejecución aspectos del sistema a nivel de proceso, como cambiar los niveles de registro y obtener informes de estado.
El script CLI install.sh es el script de administración principal para instalar, eliminar o actualizar Shinken y su software asociado.
Desarrollo
Shinken tiene un enfoque de desarrollo abierto y basado en pruebas , y los contribuyentes al proyecto proporcionan nuevas funciones, refactorización de código, calidad del código y corrección de errores. [5]
El código fuente está alojado en GitHub . [6] Un servidor de integración ejecuta pruebas en cada confirmación y pruebas en profundidad a intervalos regulares.
La documentación de Shinken está alojada en una wiki.
Ver también
Referencias
- ^ Lanzamiento oficial en la lista de correo de Nagios en http://sourceforge.net/p/nagios/mailman/message/24087464/
- ^ "Lanzamiento 2.4.2 / Algunos chicos de monitoreo".
- ^ Gabès, Jean (1 de diciembre de 2009). "Shinken: una nueva propuesta de implementación". GitHub . Consultado el 4 de marzo de 2014 .
Me gustaría recibir su opinión sobre una reimplementación (inconclusa) de Nagios llamada "Shinken" que escribí en Python y que es más rápida y modular que la implementación actual de Nagios en C.
- ^ Gabès, Jean (1 de junio de 2010). "Shinken: una mezcla con Nagios no es posible". Equipo Shinken. Archivado desde el original el 23 de enero de 2014 . Consultado el 1 de junio de 2010 .
Nunca obtuvimos una respuesta para la propuesta inicial de Shinken porque somos vistos como un proyecto renegado. De hecho, ahora podemos decir que somos un tenedor.
- ^ Colaboradores de Shinken en Ohloh
- ^ código fuente en GitHub
Enlaces externos
- Sitio web oficial
- Complementos de monitoreo el hogar de los complementos oficiales
- (en alemán) Artículo de Linux Magazin sobre Shinken en el German Linux Magazin 04/2010