Software de monitorización de red
Shinken es un sistema informático de código abierto y una aplicación de software de monitorización de redes compatible con Nagios . Supervisa los hosts y los servicios, recopila datos de rendimiento y alerta a los usuarios cuando se producen condiciones de error y cuando desaparecen.
La arquitectura de Shinken tiene como objetivo ofrecer un balanceo de carga más sencillo y una alta disponibilidad . El administrador gestiona una única configuración, el sistema la "corta" automáticamente en partes y la envía a los nodos de trabajo. Su nombre deriva de esta funcionalidad: un Shinken es una espada japonesa.
Shinken fue escrito por Jean Gabès como una prueba de concepto para una nueva arquitectura de Nagios. Creyendo que la nueva implementación era más rápida y más flexible que el antiguo código C , lo 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 funcionar 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 reactner (responsable de enviar notificaciones) también se puede ejecutar bajo el sistema operativo Android . Es software libre , licenciado bajo 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 de Pyro
- Métodos de monitoreo activo y pasivo
- Monitoreo de servicios de red ( SMTP , POP3 , HTTP , NNTP , ICMP , SNMP , FTP , SSH )
- Supervisión 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
- Uso de agentes como NSClient++, send_nsca, Check MK , Thrift TSCA
- Uso de agentes que permiten ejecutar scripts de forma remota a través del ejecutor de complementos remotos de Nagios (Shinken incluye una implementación de Python puro incorporada)
- Utilizando métodos sin agente como SNMP, WMI , SSH con script o HTTP(SSL)
- Envíe los resultados de las comprobaciones directamente desde los programas mediante 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 soportado a través de túneles encriptados SSH o SSL .
- Diseño de complemento simple que permite a los usuarios desarrollar fácilmente sus propios controles de servicio según sus necesidades, utilizando las herramientas de su elección ( scripts de shell , C++ , Perl , Ruby , Python , PHP , C# , etc.)
- Capacidad de 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 sobre el estado, la configuración y el rendimiento
- Exporta datos a módulos de gráficos (PNP4Nagios, Graphite y otros disponibles)
- Compatibilidad con la API de mensajería nativa de Android
- Exportar datos de eventos a sistemas de registro mediante syslog y RabbitMQ
- Se pueden conectar módulos a cualquier proceso Shinken para ampliar sus capacidades de manera muy eficiente.
- Actuación
- Servicios en paralelo y comprobaciones de host disponibles
- Capacidad de distribuir procesos de sondeo en varios servidores
- Soporte para implementar hosts de monitoreo fácilmente redundantes y con equilibrio de carga
- Soporte para múltiples interfaces externas redundantes
- Capacidad de enviar cheques a encuestadores dedicados (procesos especializados en ejecutar complementos)
- Correlación e inteligencia empresarial
- Relaciones entre padres e hijos
- Capacidad de definir la jerarquía de host de red utilizando hosts "principales", lo que permite la detección y distinción entre hosts que están inactivos y aquellos que no se pueden alcanzar.
- 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
- Admite la asignación de un impacto empresarial a cada servicio, host o proceso empresarial
- Capacidad de mostrar solo problemas de raíz
- Cambia automáticamente el estado del niño a desconocido cuando el padre no está disponible
- Otras características
- Notificaciones de contacto cuando ocurren problemas con el servicio o el host y se resuelven (por correo electrónico , buscapersonas , SMS o cualquier método definido por el usuario a través del sistema de complementos)
- Capacidad de definir controladores de eventos que se ejecutarán durante eventos de servicio o de host para la resolución proactiva de problemas
- Capacidad de redefinir la gravedad de una alerta según reglas de expresiones regulares
- Compatibilidad con nombres de objetos UTF-8
- Soporte para monitorear múltiples clientes con un punto de administración
- Compatibilidad con tiempos de inactividad recurrentes mediante el atributo Maintenance_period
- Sistema de plantillas avanzado con herencia y sobrecarga
Arquitectura
Una instalación de 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.
- Perro guardián de todos los demás procesos y responsable de iniciar conmutaciones 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 reaccionantes.
- Actualiza el archivo de retención (u otros backends de retención)
- Envía broks (eventos internos de cualquier tipo) a los brokers
- Encuestador
- Obtiene comprobaciones del programador, ejecuta complementos o módulos de sondeo integrados y envía los resultados al programador
- Módulos de sondeo
- NRPE: ejecuta la adquisición de datos activa para los agentes del ejecutor de complementos remotos de Nagios
- SNMP: ejecuta la adquisición de datos activa para agentes habilitados para SNMP (en etapa beta utilizando PySNMP)
- CommandPipe: recibe datos de estado pasivo y rendimiento del script check_mk, no procesará comandos
- Reaccionario
- Obtiene notificaciones y controladores de eventos del programador, ejecuta complementos/scripts y envía los resultados al programador
- Corredor
- Tiene varios módulos (normalmente se ejecutan en sus propios procesos)
- Obtiene los brokers del programador y los reenvía a los módulos del broker.
- Los módulos deciden si manejan un brok dependiendo del tipo de brok (registro, estado inicial del servicio/host, resultado de la verificación, inicio/fin del tiempo de inactividad, ...)
- Los módulos procesan los broks de muchas formas 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 pueden consultarse mediante una API mediante GUI como Thruk o Check_MK Multisite
- Graphite: exporta datos a una base de datos Graphite
- ndodb: actualiza una base de datos ndo (MySQL u Oracle)
- simple_log - centraliza los registros de todos los procesos de Shinken
- status_dat: escribe en un archivo status.dat que puede leerse mediante la GUI clásica basada en cgi
- Receptor (opcional)
- Recibe datos pasivamente desde protocolos locales o remotos
- Recepción pasiva de datos que se almacenan en búfer antes de reenviarlos al Programador apropiado (o al Árbitro para comandos globales)
- Permite configurar una "granja" de receptores para manejar una alta tasa de eventos entrantes
- Módulos para receptores
- NSCA - Receptor del protocolo NSCA
- Collectd: recibe datos de rendimiento de collectd a través de la red
- CommandPipe: recibe comandos, actualizaciones de estado y datos de rendimiento
- TSCA: interfaz Apache Thrift para enviar resultados de cheques mediante 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 varios hosts. Agregar más procesos distribuye automáticamente la carga.
Shinken WebUI es la interfaz web incorporada que proporciona información de estado casi en tiempo real, configuración, interacción, un tablero para visualizar datos de tendencias de bases de datos Graphite y la visualización de gráficos de árboles de dependencia.
Shinken skonfUI es una interfaz web independiente que se utiliza para administrar 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 proceso del sistema, 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 , en el que los colaboradores del proyecto aportan nuevas características, refactorización de código, calidad de 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.
Véase también
Referencias
- ^ Lanzamiento oficial en la lista de correo de Nagios en http://sourceforge.net/p/nagios/mailman/message/24087464/
- ^ "Versión 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 sus comentarios sobre una reimplementación (sin terminar) 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 a la propuesta inicial de Shinken porque nos ven como un proyecto renegado. De hecho, ahora podemos decir que somos una bifurcación.
- ^ Colaboradores de Shinken en Ohloh
- ^ Código fuente en GitHub
Enlaces externos
- Sitio web oficial
- Plugins de monitorización el hogar de los plugins oficiales
- (en alemán) Artículo de Linux Magazin sobre Shinken en el German Linux Magazin 04/2010