Icinga 2 es una herramienta de monitoreo de código abierto que se utiliza para verificar la disponibilidad de los recursos de TI (red, servidores, etc.) e informar la interrupción en caso de que un recurso esté inactivo. También genera datos de rendimiento para fines de informes.
Icinga 2 tiene un diseño de subprocesos múltiples y puede ejecutar miles de comprobaciones cada segundo sin afectar la CPU. También podemos configurar Icinga 2 con clústeres de alta disponibilidad con una configuración distribuida para entornos grandes/complejos.
En este tutorial, aprenderemos a instalar Icinga 2 en sistemas CentOS/RHEL 7. A continuación se muestran los detalles de configuración de mi laboratorio para Icinga 2
- Nombre de host de la máquina “icinga2.example.com”
- Dirección IP “192.168.1.2”
- Sistema operativo: CentOS 7 / RHEL 7
- Toda la instalación se realizará a través del usuario linuxtechi, que forma parte del grupo de rueda.
Requisitos para Icinga 2
1) Necesitamos tener una máquina con el servidor LAMP instalado para la instalación de Icinga 2. Para crear un servidor LAMP, primero instalaremos el servidor web apache con el siguiente comando,
[[email protected] ~]$ sudo yum install httpd
A continuación, instale el servidor mariadb (base de datos) con el siguiente comando yum,
[[email protected] ~]$ sudo yum install mariadb mariadb-server
Inicie y habilite el servicio mariadb usando los comandos debajo,
[[email protected] ~]$ sudo systemctl start mariadb && sudo systemctl enable mariadb
Ahora asegure la instalación de mysql ejecutando el siguiente comando,
[[email protected] ~]$ sudo mysql_secure_installation
Luego siga las instrucciones en pantalla para asegurar la instalación de mysql.
Por último, instale los paquetes PHP necesarios, pero necesitamos los paquetes PHP más recientes. Para instalar los últimos paquetes php, instalaremos paquetes scl,
[[email protected] ~]$ sudo yum install centos-release-scl
A continuación, ejecute el siguiente comando yum para instalar los últimos paquetes php para Icinga,
[[email protected] ~]$ sudo yum install rh-php71-php-mysqlnd rh-php71-php-cli php-Icinga rh-php71-php-common rh-php71-php-fpm rh-php71-php-pgsql rh-php71-php-ldap rh-php71-php-intl rh-php71-php-xml rh-php71-php-gd rh-php71-php-pdo rh-php71-php-mbstring -y
A continuación, configuraremos una zona horaria predeterminada en php, buscaremos date.timezone y agregaremos el siguiente contenido
[[email protected] ~]$ sudo vi /etc/opt/rh/rh-php71/php.ini date.timezone = India/Kolkata
Cambie la zona horaria como mejor le parezca y guarde el archivo. Ahora inicie y habilite el servicio apache,
[[email protected] ~]$ sudo systemctl start httpd && sudo systemctl enable httpd
2) También necesitamos tener habilitado el repositorio EPEL ya que algunos paquetes requeridos por Icinga 2 están disponibles en los repositorios EPEL. Instale el repositorio EPEL en CentOS/RHEL 7 con el siguiente comando:
[[email protected] ~]$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
Para RHEL, habilite el repositorio opcional con el siguiente comando,
# subscription-manager repos --enable rhel-7-server-optional-rpms
Instalación de icinga 2
Icinga está disponible en forma de paquete RPM, pero para eso primero debemos habilitar el repositorio icinga yum, ejecute el siguiente comando desde la terminal para habilitarlo
[[email protected] ~]$ sudo yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm
Ahora instalaremos el icinga 2 junto con sus complementos,
[[email protected] ~]$ sudo yum install icinga2-ido-mysql icingaweb2 icingacli nagios-plugins-all
También instalaremos un paquete adicional, icingaweb2-selinux, ya que mantendremos habilitado nuestro selinux,
[[email protected] ~]$ sudo yum install icingaweb2-selinux -y
Ahora reinicie los servicios apache, icinga2 y fpm, y habilítelos para el arranque,
[[email protected] ~]$ sudo systemctl restart httpd.service [[email protected] ~]$ sudo systemctl start icinga2.service [[email protected] ~]$ sudo systemctl enable icinga2.service [[email protected] ~]$ sudo systemctl start rh-php71-php-fpm.service [[email protected] ~]$ sudo systemctl enable rh-php71-php-fpm.service
Configurar reglas de Firewall para ICINGA 2
En caso de que el firewall del sistema operativo se esté ejecutando y habilitado en su servidor, configure las siguientes reglas de firewall para los puertos 80 y 5665, de modo que podamos acceder a la página web desde nuestra red local y habilitar el monitoreo a través del puerto 5665.
[[email protected] ~]$ sudo firewall-cmd --zone=public --permanent --add-port=80/tcp [[email protected] ~]$ sudo firewall-cmd --zone=public --permanent --add-port=5665/tcp [[email protected] ~]$ sudo firewall-cmd --reload Success [[email protected] ~]$
En cuanto a las políticas de SELinux, ya hemos realizado los cambios necesarios instalando el ‘icinga-selinux‘ paquete.
Acceda a Icinga 2 Web e inicie el asistente de instalación:
Ahora abra un navegador web e ingrese la siguiente URL para acceder a la configuración web de icinga 2,
http://
En mi caso, la URL es http://192.168.1.2/icingaweb2/setup
donde, 192.168.1.2 es la dirección IP de la máquina donde tenemos instalado ICINGA 2. Tan pronto ingresemos la URL, seremos recibidos con la siguiente pantalla,
Ahora necesitamos crear el token de configuración. Ejecute los siguientes comandos para crear el token de configuración,
[[email protected] ~]$ sudo groupadd -r icingaweb2 [[email protected] ~]$ sudo usermod -a -G icingaweb2 apache [[email protected] ~]$ sudo icingacli setup config directory --group icingaweb2 [[email protected] ~]$ sudo icingacli setup token create The newly generated setup token is: de74e67ae840e90e [[email protected] ~]$
Al ejecutar el último comando, obtendremos un token como salida. Copie el token y péguelo en la página web,
El proceso para crear token también se menciona en la página web. En la siguiente pantalla, seleccione monitoreo y haga clic en siguiente,
En la siguiente pantalla, encontraremos varios módulos php que hemos instalado, revíselos y haga clic en siguiente,
En la siguiente pantalla, seleccione el tipo de autenticación. Estaremos usando ‘Base de datos‘, presiona siguiente,
Ahora necesitamos crear una base de datos para Icinga, ejecute los siguientes comandos para crear una nueva base de datos para Icinga,
[[email protected] ~]$ mysql -u root -p Enter password: MariaDB [(none)]> create database icinga2; Query OK, 1 row affected (0.00 sec)
Ahora salga de la interfaz de mariadb y proporcione la información en la página de configuración y haga clic en validar,
Una vez que la Configuración se haya validado con éxito y luego haga clic en Siguiente
A continuación, seleccione el nombre del servidor de autenticación, lo mantendremos predeterminado,
A continuación, seleccione el nombre de usuario y la contraseña para administrar el portal web de administración de Icinga (sitio web)
A continuación, configure los ajustes con respecto a su aplicación, para nosotros el valor predeterminado es bueno,
Haga clic en próximo,
En la siguiente pantalla, se nos pedirá que revisemos los cambios que hemos realizado para icinga. Asegúrate de que todo esté en orden y pulsa siguiente,
Ahora configuraremos el módulo de monitoreo de Icinga. Aquí, en las próximas dos pantallas, configuraremos el backend de monitoreo (que se deja como predeterminado) y luego tendremos que ingresar la información de la base de datos nuevamente, pero antes de hacerlo, debemos importar el esquema IDO.
Para importar el esquema, ejecute los siguientes comandos,
[[email protected] ~]$ mysql -u root -p MariaDB [(none)]> CREATE DATABASE icinga; MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Aquí creamos otra base de datos para Icinga IDO y ahora le importaremos el esquema IDO,
[[email protected] ~]$ mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
También realice cambios según su base de datos en el siguiente archivo,
[[email protected] ~]$ sudo vi /etc/icinga2/features-available/ido-mysql.conf /** * The db_ido_mysql library implements IDO functionality * for MySQL. */ library "db_ido_mysql" object IdoMysqlConnection "ido-mysql" { user = "icinga" password = "icinga" host = "localhost" database = "icinga" }
Ahora, después de una validación exitosa del IDO, haga clic en Siguiente. En esta pantalla, podemos configurar información sobre nuestra instancia remota de icinga, cámbiela a ‘Archivo de comandos locales‘,
Deje el resto de las pantallas como predeterminadas y en la última pantalla, revise todos los cambios y presione Finalizar. Luego obtendremos la siguiente pantalla,
Haga clic en «Iniciar sesión en icinga Web 2” y redirigiremos la página de inicio de sesión para icinga. Inicie sesión con las credenciales que especificamos en los pasos de instalación anteriores.
Tras una autenticación exitosa, ahora podemos ver el tablero de icinga con todos los servicios y su estado,
Esto confirma que hemos instalado con éxito la herramienta de monitoreo Icinga 2. No dude en enviar sus consultas o sugerencias utilizando el cuadro de comentarios a continuación.
Lee mas – Cómo agregar un host remoto de Linux y Windows a Icinga 2 para monitoreo