Icinga es una aplicación de código abierto para monitorizar sistemas informáticos y redes . Fue creada como una bifurcación de la aplicación de monitorización de sistemas Nagios en 2009. [2] [3]
Icinga intenta mejorar el proceso de desarrollo de Nagios [4] además de agregar nuevas características [5] [6] como una interfaz de usuario moderna de estilo Web 2.0 , conectores de base 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.
La primera versión estable, 1.0, se lanzó en diciembre de 2009, y se lanzaron nuevas versiones cada dos meses a partir de enero de 2010. [7]
En 2012 se inició el desarrollo de un nuevo componente central que se lanzó en 2014 como Icinga 2 [8] para permitir cambios arquitectónicos profundos en comparación con el núcleo de Nagios .
En mayo de 2009, un grupo de desarrolladores de la comunidad Nagios anunció la bifurcación 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", "navega" o "examina" [9] y se pronuncia con una consonante de clic . [10]
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. [11]
En su segundo año, el proyecto Icinga lanzó un núcleo y una 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ó hasta contar con 23 miembros en el equipo. [11]
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 de Icinga a los sistemas operativos Debian , OpenSUSE y CentOS . [12]
En octubre de 2012, el proyecto Icinga publicó una versión preliminar de la tecnología de Icinga 2. Se trataba de un reemplazo del marco central y una rama de desarrollo paralela. Los desarrolladores dijeron que querían reescribir el núcleo para solucionar problemas, como 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 ejecutan las comprobaciones de monitoreo. [13]
En junio de 2014, el proyecto Icinga lanzó la primera versión estable de Icinga 2. [14] Se han programado nuevas funciones, como un agente o una función API, para versiones posteriores.
Debido a su naturaleza de bifurcación, Icinga ofrece las características de Nagios con algunas adiciones como un módulo de informes opcional con precisión de SLA mejorada, conectores de base de datos adicionales para PostgreSQL y Oracle , y sistemas distribuidos para monitoreo redundante. Icinga también mantiene la compatibilidad de configuración y complementos con Nagios, [11] lo que facilita 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 plug-ins.
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. Esta agrupación de componentes permite a los usuarios distribuir el sistema de Icinga para una monitorización redundante. También ofrece a los usuarios la libertad de personalizar Icinga para adaptarlo a sus necesidades. [18]
El núcleo de Icinga administra las tareas de monitoreo, recibe los resultados de las comprobaciones de varios complementos y 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 entre varios servidores para el monitoreo distribuido del sistema.
La interfaz de usuario de Icinga Classic también viene incluida con Icinga Core y puede usarse como sustituto de la interfaz web de Icinga basada en PHP .
Icinga 2 administra las tareas de monitoreo, la ejecución de verificaciones y el envío de notificaciones de alerta. Las características de Icinga 2 se pueden habilitar a pedido, 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, la base de datos IDO DB (Icinga Data Out Database). 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 en 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 proyectivo y basado en PHP , inspirado en Web 2.0 que usa Cronks ( widgets ) para ofrecer tableros personalizados de arrastrar y soltar. Icinga Web es una pieza independiente de software. Comunica con el núcleo, la base de datos y los complementos de terceros las capas de entrada/componente: abstracción de Doctrine , capa (Entrada/Base de datos), API REST (scripts externos) e Interfaz de control de comandos (escritura en una tubería, 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 complementos o para acceder a la interfaz web de Icinga. A diferencia de su predecesor Nagios, Icinga admite bases de datos PostgreSQL y Oracle además de MySQL .
El proyecto Icinga ofrece un módulo opcional de informes Icinga basado en el software de código abierto Jasper Reports . Puede integrarse 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 pueden guardarse en un repositorio con distintos niveles de acceso y generación y distribución de informes automatizadas. Los informes también pueden verse en ambas interfaces de usuario opcionales de Icinga.
Icinga Mobile es una interfaz de usuario para navegadores de teléfonos inteligentes y tabletas que funcionan con WebKit . Estos suelen estar 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 que se apliquen automáticamente a todos los usuarios de una red informática. [19]
Algunos de los complementos más populares para ampliar la funcionalidad de Icinga incluyen:
Icinga se ha implementado en configuraciones distribuidas y de conmutación por error. [20] El software tiene una arquitectura modular con núcleo independiente, web e IDODB (Icinga Data Out Database), que proporciona monitoreo distribuido y monitoreo de sistemas distribuidos.
Nagios Remote Plugin Executor ( NRPE ) es un agente compatible con Icinga que permite la monitorización de sistemas remotos mediante scripts alojados en sistemas remotos. Permite la monitorización de recursos como el uso del disco, la carga del sistema o la cantidad de usuarios conectados actualmente. Icinga sondea periódicamente al agente en el sistema remoto mediante el complemento check_nrpe. En las configuraciones que utilizan la interfaz de usuario web opcional de Icinga, se pueden mostrar los datos de monitorización de varias instancias de Icinga Core siempre que cada instancia escriba en la misma IDODB. Icinga puede tener sus diversos componentes divididos y dispersos en una configuración distribuida.
Se pueden personalizar el acceso del usuario, las notificaciones y las vistas.