Icinga es un sistema informático de código abierto y una aplicación de monitoreo de red . Fue creado originalmente como una bifurcación de la aplicación de monitoreo del sistema Nagios en 2009. [2] [3]
Icinga trabaja para mejorar el proceso de desarrollo de Nagios [4] además de agregar nuevas características [5] [6] como una interfaz de usuario moderna estilo Web 2.0 , conectores de bases de datos adicionales (para MySQL , Oracle y PostgreSQL ) y una API REST que permite a los administradores integrar numerosas extensiones sin modificaciones complicadas del núcleo de Icinga.
Los desarrolladores de Icinga también buscan reflejar más fielmente las necesidades de la comunidad e integrar parches más rápidamente. La primera versión estable, 1.0, se lanzó en diciembre de 2009 y el contador de versiones había aumentado cada dos meses desde enero de 2010. [7]
En mayo de 2009, un grupo de desarrolladores de la comunidad de Nagios anunció el fork Icinga, citando su insatisfacción con el estancado desarrollo del software Nagios en ese momento y su deseo de abrir su desarrollo a una base más amplia. [4] El nombre Icinga es una palabra zulú que significa "busca", "busca" o "examina" [8] y se pronuncia con una consonante clic . [9]
En su primer año, los desarrolladores de Icinga lanzaron versiones separadas de Core, API y Web, y celebraron su descarga número 10.000. [10]
En su segundo año, el proyecto Icinga lanzó Core y Web unificados y estables; agregó compatibilidad con IPv6 e IPv4 de doble pila , optimizó la conectividad de la base de datos y renovó la interfaz de usuario web de Icinga, integrando varios complementos de la comunidad (PNP4Nagios, LConf, Heatmap y Business Process Addon). El proyecto logró más de 70.000 descargas y creció a 23 miembros del equipo. [10]
En su segundo año, Icinga celebró su descarga número 100.000, integró el componente API de Icinga en Icinga Web, mejoró los informes de SLA ; y extendió los dispositivos virtuales Icinga a los sistemas operativos Debian , OpenSUSE y CentOS . [11]
En octubre de 2012, el proyecto Icinga lanzó una vista previa de la tecnología de Icinga 2. Era un reemplazo del marco central y una rama de desarrollo paralelo. Los desarrolladores dijeron que quieren reescribir el núcleo para solucionar los problemas. Estos incluyen la complicada configuración y los límites de escalabilidad en grandes implementaciones. Planean reescribir el núcleo de Icinga 2 en C++ y diseñar una nueva arquitectura de cargador de componentes. También planean cambiar la forma en que se realizan los controles de seguimiento. [12]
En junio de 2014, el proyecto Icinga lanzó la primera versión estable de Icinga 2. [13] Nuevas funciones, como un agente o una función API, están programadas para versiones posteriores.
Debido a su naturaleza como bifurcación, Icinga ofrece características de Nagios con algunas adiciones, como un módulo de informes opcional con precisión SLA mejorada , conectores de bases de datos adicionales para PostgreSQL y Oracle , y sistemas distribuidos para monitoreo redundante.
Icinga también mantiene la configuración y la compatibilidad de complementos [10] con Nagios, facilitando la migración entre los dos software de monitoreo.
Icinga Core está escrito en C [17] y tiene una arquitectura modular con un núcleo independiente, una interfaz de usuario y una base de datos en la que los usuarios pueden integrar varios complementos y complementos.
Este último se comunica a través de la capa de abstracción Doctrine de Icinga , REST y API de complementos que median entre los datos externos y las estructuras internas. Este paquete de componentes permite a los usuarios distribuir el sistema de Icinga para un monitoreo redundante. También ofrece a los usuarios la libertad de personalizar Icinga para adaptarlo a sus necesidades. [18]
Icinga Core gestiona las tareas de seguimiento y recibe los resultados de las comprobaciones de varios complementos. Luego comunica estos resultados a IDODB (Icinga Data Out Database) a través de la interfaz IDOMOD (Icinga Data Out Module) y el demonio de servicio IDO2DB (Icinga Data Out to Database) a través de sockets TCP cifrados con SSL. Aunque ambos vienen empaquetados (también conocidos como IDOUtils) con el núcleo, son componentes independientes que se pueden separar para distribuir los datos y procesos en múltiples servidores para el monitoreo distribuido del sistema.
La interfaz de usuario Icinga Classic también viene incluida con Icinga Core y puede usarse como sustituto de la interfaz web Icinga basada en PHP .
Icinga 2 gestiona tareas de seguimiento, realiza comprobaciones y envía notificaciones de alerta. Las funciones de Icinga 2 se pueden habilitar bajo demanda, ya sean funciones predeterminadas como el componente 'verificador' o 'notificación', o interfaces externas compatibles con Icinga 1.x y sus interfaces de usuario, por ejemplo, IDO DB (Icinga Data Fuera de base de datos). Icinga 2 incluye una pila de clúster integrada protegida por certificados SSL x509 que intentan facilitar las configuraciones de monitoreo distribuido.
La sintaxis de configuración es diferente para Icinga Core 1.x y Nagios y requiere una migración durante la actualización.
Icinga ofrece una interfaz web para que los usuarios vean los resultados de monitoreo y envíen comandos al Icinga Core, llamado Icinga Web (también conocido como New Web) es el front-end inspirado en Web 2.0 basado en proyectos y PHP que utiliza Cronks ( widgets ). para ofrecer paneles personalizados de arrastrar y soltar. Icinga Web es una pieza de software independiente. Se comunica con las capas de componentes/dmponentes del núcleo, la base de datos y los complementos de terceros: abstracción de doctrina , capa (entrada/base de datos), API REST (scripts externos) e interfaz de control de comandos (escritura en canalización, ejecución de comandos).
La interfaz presenta información sobre el estado del host y del servicio, historial, notificaciones y mapas de estado para mostrar el estado de una red en tiempo real y también admite direcciones IPv4 e IPv6 .
La base de datos Icinga Data Out (IDODB) es un punto de almacenamiento de datos de monitoreo históricos para que los complementos o la interfaz web de Icinga accedan. A diferencia de su predecesor Nagios, Icinga soporta bases de datos PostgreSQL y Oracle además de MySQL .
El proyecto Icinga ofrece un módulo opcional de Icinga Reporting basado en el código abierto Jasper Reports . Se puede integrar en las interfaces de usuario de Icinga Classic e Icinga Web. El módulo proporciona informes basados en plantillas (por ejemplo, los 10 principales hosts o servicios problemáticos, sinopsis del entorno de monitoreo completo, informes de disponibilidad, etc.) que se pueden guardar en un repositorio con diferentes niveles de acceso y generación y distribución automatizada de informes. Los informes también se pueden ver en ambas interfaces de usuario opcionales de Icinga.
Icinga Mobile es una interfaz de usuario para navegadores de teléfonos inteligentes y tabletas que se ejecuta en WebKit . Por lo general, están disponibles en iOS , Android , BlackBerry Tablet OS y webOS . Basado en JavaScript y Sencha Touch , Icinga Mobile se descarga en un servidor para que los usuarios autorizados puedan acceder a él a través de sus dispositivos móviles. De este modo, la administración y las actualizaciones se pueden realizar de forma centralizada, para aplicarlas automáticamente a todos los usuarios de una red informática. [19]
Icinga es compatible con todos los complementos y la mayoría de los complementos escritos para Nagios, especialmente para los usuarios que optan por la interfaz de usuario Icinga Classic. Los complementos populares para ampliar la funcionalidad de Icinga incluyen:
Icinga se ha implementado con éxito en entornos grandes y complejos con miles de hosts y servicios, en configuraciones distribuidas y de conmutación por error. [20] La arquitectura modular del software con Core, Web e IDODB (base de datos Icinga Data Out) independientes facilitan el monitoreo distribuido y el monitoreo de sistemas distribuidos.
Nagios Remote Plugin Executor ( NRPE ) es un agente compatible con Icinga que permite monitorear sistemas remotos utilizando scripts alojados en los sistemas remotos. Permite monitorear recursos como el uso del disco, la carga del sistema o la cantidad de usuarios actualmente conectados. Icinga sondea periódicamente al agente en el sistema remoto usando el complemento check_nrpe.
En configuraciones que utilizan la interfaz de usuario web opcional de Icinga, los datos de monitoreo de múltiples instancias de Icinga Core se pueden mostrar siempre que cada instancia escriba en el mismo IDODB. De esta manera, la monitorización distribuida también es más sencilla de administrar.
A nivel estructural, Icinga puede tener sus diversos componentes divididos y dispersos en una configuración distribuida. Este monitoreo de sistemas distribuidos proporciona mayor seguridad y redundancia; si un componente fallara, otro podría ocupar su lugar sin interrumpir todo el sistema de monitoreo.
El software también ofrece un sistema de autenticación detallado mediante el cual el acceso de los usuarios, las notificaciones y las vistas se pueden personalizar con detalle de grupos de servidores, servidores y servicios por individuo.