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.
Autor (es) original (es) | Jean Gabès |
---|---|
Versión inicial | 1 de diciembre de 2009 [1] |
Lanzamiento estable | 2.4.3 / 10 de marzo de 2016 [2] |
Repositorio | |
Escrito en | Pitón |
Sistema operativo | Tipo Unix , Windows |
Tipo | Monitoreo de la red |
Licencia | Licencia Pública General Affero |
Sitio web | www |
La arquitectura de Shinken tiene como objetivo ofrecer un equilibrio de carga más fácil y una alta disponibilidad . El administrador gestiona una única configuración, el sistema automáticamente la "corta" en partes y la envía a los nodos de trabajo. 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 bajo los términos de la Licencia Pública General de 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 activos y pasivos
- 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
- Usando 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 complemento remoto de Nagios (se incluye una implementación de Python puro integrado con Shinken)
- Usar métodos sin agente como SNMP, WMI , SSH con script o HTTP (SSL)
- Envíe los resultados de los cheques directamente desde los programas que utilizan 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 propias verificaciones 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 de 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)
- Soporte para API de mensajería nativa de Android
- Exportar datos de eventos a sistemas de registro usando syslog y RabbitMQ
- Los módulos se pueden conectar a cualquier proceso Shinken para ampliar sus capacidades de formas muy eficientes
- 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 balanceo de carga
- Soporte para múltiples interfaces externas redundantes
- Capacidad para enrutar comprobaciones a encuestadores dedicados (procesos especializados en la ejecución de complementos)
- Correlación e inteligencia empresarial
- Relaciones entre padres e hijos
- Capacidad para definir la jerarquía de hosts de la red utilizando hosts "principales", lo que permite la detección y la distinción entre hosts inactivos y no accesibles.
- 1 a 1, 1 a N
- Árboles de dependencia de forma libre entre cualquier servicio y host
- 1 a 1, 1 a N
- Soporte para reglas comerciales integradas
- Hosts o servicios calculados que representan el estado de un servicio comercial
- Soporte para asignar un impacto comercial a cada servicio, host o proceso comercial
- Capacidad para mostrar solo problemas de raíz
- Cambia automáticamente los estados del niño a desconocido cuando el padre no está disponible
- Relaciones entre padres e hijos
- 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 para definir controladores de eventos que se ejecutarán durante el servicio o eventos de host para la resolución proactiva de problemas
- Capacidad para redefinir la gravedad de una alerta según las 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 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 el host y los objetos de servicio a los programadores.
- Watchdog para todos los demás procesos y responsable de iniciar fallas si se detecta un error
- Puede enrutar eventos de resultados de verificación desde un receptor a su programador asociado
- Módulos de árbitro
- Existe una variedad de módulos para manipular los 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 desencadenadores de KPI
- Genera notificaciones y las envía a los reaccionadores
- Actualiza el archivo de retención (u otros backends de retención)
- Envía corredores (eventos internos de cualquier tipo) a los corredores
- Poller
- Obtiene cheques del programador, ejecuta complementos o módulos de encuesta integrados y envía los resultados al programador
- Módulos de encuesta
- NRPE: ejecuta la adquisición de datos activa para los agentes Ejecutores de complementos remotos de Nagios
- SNMP: ejecuta la adquisición de datos activa para los agentes habilitados para SNMP (en la etapa beta con PySNMP)
- CommandPipe: recibe datos de rendimiento y estado pasivo del script check_mk, no procesa comandos
- Reaccionador
- Obtiene notificaciones y manejadores de eventos del programador, ejecuta complementos / scripts y envía los resultados al programador
- Corredor
- Tiene varios módulos (generalmente se ejecutan en sus propios procesos)
- Obtiene intermediarios del programador y los reenvía a los módulos de intermediarios.
- Los módulos deciden si manejan un brok dependiendo del tipo de brok (registro, servicio inicial / estado del host, resultado de verificación, inicio / finalización del tiempo de inactividad, ...)
- Los módulos procesan los broks de muchas formas diferentes. Algunos de los módulos son:
- webui: actualiza los objetos en la memoria y proporciona un servidor web para la GUI nativa de Shinken
- livestatus: actualiza los objetos en memoria que se pueden consultar mediante una API mediante GUI como Thruk o Check_MK Multisite
- grafito: exporta datos a una base de datos de grafito
- 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 ser leído por la GUI clásica basada en cgi
- Receptor (opcional)
- Recibe datos de forma pasiva de protocolos locales o remotos
- Recepción de datos pasivos que se almacenan en búfer antes de reenviarlos al programador apropiado (o al árbitro para los 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
- Recopilado: reciba datos de rendimiento de recopilados a través de la red
- CommandPipe: recibe comandos, actualizaciones de estado y datos de rendimiento
- TSCA: interfaz Apache Thrift para enviar los resultados de los 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 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, configuración e interacción casi en tiempo real, un tablero para visualizar datos de tendencias de las bases de datos Graphite y la visualización de gráficos de árbol de dependencia.
Shinken skonfUI es un front-end web independiente que se utiliza para gestionar el proceso de descubrimiento y las tareas de configuración.
La secuencia de comandos 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 salud.
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 colaboradores del proyecto proporcionan nuevas funciones, 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.
Ver también
- Comparación de sistemas de monitoreo de red
- NRPE
- Icinga
- Nagios
- Recogido
Referencias
- ^ Lanzamiento oficial en la lista de correo de Nagios en http://sourceforge.net/p/nagios/mailman/message/24087464/
- ^ http://shinkenlab.io/release-2-4-2/
- ↑ 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 tener su retroalimentación sobre una reimplementación (inacabada) de Nagios llamada "Shinken" que escribí en Python 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: no es posible una mezcla con Nagios" . 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 se nos ve 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
- Página web oficial
- Monitoreo de complementos el hogar de los complementos oficiales
- (en alemán) Artículo de Linux Magazin sobre Shinken en el Linux Magazin alemán 04/2010