Icinga 2 es un sistema de monitoreo de recursos de red de código abierto ampliamente utilizado, e Icinga Web 2 es la interfaz web oficial de Icinga 2.
En este tutorial, explicaré cómo instalarlos en un servidor Ubuntu 16.04.
Prerrequisitos
- Una instancia de servidor Vultr Ubuntu 16.04 recientemente implementada.
- Un usuario de sudo. Para obtener más información sobre cómo crear un usuario sudo en Ubuntu, consulte las instrucciones sobre Debian en otro tutorial de Vultr .
Paso 1: actualiza el sistema
Inicie sesión desde un terminal SSH como usuario de sudo y luego actualice el sistema al último estado estable utilizando los siguientes comandos:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
Después del reinicio, use el mismo usuario de sudo para iniciar sesión.
Paso 2: instalar Apache
Instala Apache usando el siguiente comando:
sudo apt-get install apache2 -y
Elimine la página de bienvenida predeterminada de Ubuntu Apache:
sudo rm /var/www/html/index.html
Por motivos de seguridad, debe prohibir a Apache que exponga los archivos y directorios dentro del directorio raíz web /var/www/html
a los visitantes:
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
Inicie el servicio Apache e inícielo en el arranque:
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
De manera predeterminada, el firewall UFW está deshabilitado en una instancia de servidor Vultr Ubuntu 16.04 recientemente implementada. Use los siguientes comandos para habilitar el firewall UFW y permitir el tráfico entrante de SSH, HTTP y HTTPS:
sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw allow in "Apache Full"
sudo ufw enable
Paso 4: instalar MariaDB
4.1) Use el siguiente comando para instalar MariaDB:
sudo apt-get install mariadb-client mariadb-server -y
4.2) Inicie el servicio MariaDB:
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
4.3) Asegure la instalación de MariaDB:
sudo /usr/bin/mysql_secure_installation
Durante el proceso interactivo, responda las preguntas una por una de la siguiente manera:
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <your-password>
Re-enter new password: <your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Nota : Reemplace <your-password>
con su propia contraseña de root de MySQL.
4.4) Modifique el complemento de autenticación del root
usuario MySQL :
sudo mysql -u root -p
Use la contraseña de root de MariaDB que estableció anteriormente para iniciar sesión.
En el shell de MySQL:
UPDATE mysql.user SET authentication_string=PASSWORD('<your-password>'), plugin='mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;
Nota : Reemplace <your-password>
con su propia contraseña de root de MySQL.
Paso 5: Instalar PHP
Instale PHP 7.0 y varias extensiones para Icinga 2 e Icinga Web 2:
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-gd php7.0-intl php7.0-xml php7.0-ldap php7.0-mysql php7.0-pgsql php-imagick -y
Instale la versión actual de Composer:
cd
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Nota : los comandos anteriores pueden estar desactualizados en el futuro, por lo que siempre debe obtener la última versión del sitio web oficial de Composer .
Como una cuestión de conveniencia, mover el guión Compositor composer.phar
de /usr/local/bin
y cambie su nombre composer
:
sudo mv ~/composer.phar /usr/local/bin/composer
Instalar zip y descomprimir:
sudo apt-get install zip unzip -y
Instale el componente ZendFramework Db usando Composer:
composer require zendframework/zend-db
Luego, debe configurar la zona horaria adecuada para su máquina, que se puede determinar desde el sitio web oficial de PHP . Por ejemplo, si su instancia de servidor reside en el centro de datos Vultr Los Angeles, entonces el valor de la zona horaria es America/Los_Angeles
.
Abra el archivo de configuración de PHP con el editor vi:
sudo vi /etc/php/7.0/apache2/php.ini
Encuentra la línea:
;date.timezone =
Cámbielo a:
date.timezone = America/Los_Angeles
Guardar y Salir:
:wq!
Reinicie el servicio Apache para que la nueva configuración surta efecto:
sudo systemctl restart apache2.service
Paso 6: Instale Icinga 2 y sus complementos
Configure el repositorio Icinga APT:
cd
wget -O - http://packages.icinga.org/icinga.key | sudo apt-key add -
sudo add-apt-repository 'deb http://packages.icinga.org/ubuntu icinga-xenial main'
sudo apt-get update
Instale Icinga 2 y varios complementos utilizando el repositorio Icinga APT:
sudo apt-get install icinga2 nagios-plugins -y
Para obtener más información sobre los complementos de Icinga 2, visite el sitio web del Proyecto de complementos de supervisión .
Inicie el servicio Icinga 2:
sudo systemctl start icinga2.service
sudo systemctl enable icinga2.service
Por defecto, el programa Icinga 2 habilitará tres funciones: comprobador, registro principal y notificación. Puede confirmarlo con el siguiente comando:
sudo icinga2 feature list
Paso 7: Configurar los módulos Icinga 2 IDO
7.1) Instalar los módulos IDO (Icinga Data Output) para MySQL
sudo apt-get install icinga2-ido-mysql
En el Configuring icinga2-ido-mysql
asistente, cuando se le pregunte si desea habilitar la función ido-mysql de Icinga 2, elija <No>
. Habilitaremos manualmente esta función más adelante.
Cuando se le pregunte si desea configurar una base de datos para icinga2-ido-mysql, elija <No>
. En su lugar, puede crear manualmente una base de datos como se explica en el paso 7.2.
7.2) Crear una base de datos para Icinga 2
Inicie sesión en el shell de MySQL como root:
sudo mysql -u root -p
Use la contraseña raíz de MariaDB que configuró en el paso 4 para iniciar sesión.
En el shell de MySQL, cree una base de datos con nombre icinga
y un usuario de base de datos icinga
con la contraseña icinga
, y luego otorgue privilegios en esta base de datos a este usuario de base de datos.
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
FLUSH PRIVILEGES;
EXIT;
7.3) Importar el esquema IDO de Icinga 2
sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Cuando se le solicite, ingrese la contraseña raíz de MariaDB para finalizar el trabajo.
7.4) Habilitar el módulo IDO MySQL
sudo vi /etc/icinga2/features-available/ido-mysql.conf
Encuentra estas líneas:
user = "icinga2",
password = "",
host = "localhost",
database = "icinga2"
Modifíquelos de la siguiente manera:
user = "icinga"
password = "icinga"
host = "localhost"
database = "icinga"
Guardar y Salir:
:wq!
Habilite la función ido-mysql:
sudo icinga2 feature enable ido-mysql
sudo systemctl restart icinga2.service
Paso 8: Instale Icinga Web 2
8.1) Configurar el tubo de comando externo
sudo icinga2 feature enable command
sudo systemctl restart icinga2.service
sudo icinga2 feature list
Para poder enviar comandos a Icinga 2 mediante una interfaz web, debe agregar el www-data
usuario al icingacmd
grupo:
sudo groupadd icingacmd
sudo usermod -a -G icingacmd www-data
Use el siguiente comando para confirmar su configuración:
id www-data
8.2) Instalar paquetes Icinga Web 2
sudo apt-get install icingaweb2 icingaweb2-module-monitoring icingaweb2-module-doc icingacli -y
Apunte el directorio raíz web de Apache a una ubicación especificada por Icinga Web 2:
sudo icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public
sudo systemctl restart apache2.service
8.3) Configurar la base de datos Icinga Web 2
sudo mysql -u root -p
CREATE DATABASE icingaweb2;
EXIT;
8.4) Cargue el esquema de la base de datos Icinga Web 2
mysql -u root -p icingaweb2 < /usr/share/icingaweb2/etc/schema/mysql.schema.sql
8.5) Genere un token de configuración para su uso posterior en el asistente de instalación web de Icinga Web 2
sudo icingacli setup token create
8.6) Inicie el asistente de instalación de Icinga 2 en la interfaz web
Apunte su navegador web a la siguiente URL:
http://<your-serve-ip>/icingaweb2/setup
8.7) En la página de bienvenida, ingrese el token de configuración que generó anteriormente y luego haga clic en el Next
botón.
8.8) En la página Módulos, seleccione uno o más módulos que desea habilitar (al menos, Monitoring
se requiere el módulo) y luego haga clic en el Next
botón.
8.9) En la página Requisitos, asegúrese de que se cumplan todos los elementos requeridos y luego haga clic en el Next
botón.
8.10) En la página Autenticación, debe elegir el método de autenticación al acceder a Icinga Web 2. Aquí puede elegir Database
y luego hacer clic en el Next
botón.
8.11) En la página Recurso de la base de datos, complete todos los campos obligatorios como se muestra a continuación y luego haga clic en el Next
botón.
- Nombre del recurso *: icingaweb_db
- Tipo de base de datos *: MySQL
- Anfitrión *: localhost
- Nombre de la base de datos *: icingaweb2
- Nombre de usuario *: root
- Contraseña *: <MariaDB-root-password>
8.12) En la página de backend de autenticación, usando el nombre de backend predeterminado icingaweb2
, haga clic en el Next
botón para continuar.
8.13) En la página de Administración, configure la primera cuenta administrativa de Icinga Web 2 (digamos que es icingaweb2admin
) y la contraseña (digamos que es icingaweb2pass
), y luego haga clic en el Next
botón.
8.14) En la página Configuración de la aplicación, puede ajustar las opciones de configuración relacionadas con la aplicación y el registro para satisfacer sus necesidades. Por ahora, puede usar los valores predeterminados que se enumeran a continuación y hacer clic en el Next
botón para continuar.
- Mostrar Stacktraces: marcado
- Tipo de almacenamiento de preferencias del usuario *: base de datos
- Tipo de registro *: Syslog
- Nivel de registro *: error
- Prefijo de aplicación *: icingaweb2
8.15) En la página Revisar, verifique su configuración y luego haga clic en el Next
botón.
8.16) En la página de bienvenida de Configuración del módulo de monitoreo, haga clic en el Next
botón.
8.17) En la página Supervisión del backend, use el nombre icinga
y el tipo de backend predeterminados IDO
, y luego haga clic en el Next
botón.
8.18) En la página Monitoreo de recursos IDO, ingrese los detalles de la base de datos IDO que configuró anteriormente y luego haga clic en el Next
botón.
- Nombre del recurso *: icinga_ido
- Tipo de base de datos *: MySQL
- Anfitrión *: localhost
- Nombre de la base de datos *: icinga
- Nombre de usuario *: icinga
- Contraseña *: icinga
8.19) En la página de transporte de comandos, aún use estos valores predeterminados que se enumeran a continuación. Haga clic en el Next
botón para continuar.
- Nombre de transporte *: icinga2
- Tipo de transporte *: archivo de comando local
- Archivo de comando *: /var/run/icinga2/cmd/icinga2.cmd
8.20) En la página Supervisión de seguridad, aún use el valor predeterminado:
- Variables personalizadas protegidas: * pw *, * pass *, community
Haga clic en el Next
botón para ir a la página siguiente.
8.21) En la página de revisión, verifique su configuración y luego haga clic en el Finish
botón.
8.22) ¡Enhorabuena! página, haga clic en el Login to Icinga Web 2
botón para ir a la página de inicio de sesión de Icinga Web 2. Use la cuenta administrativa y la contraseña de Icinga Web 2 que configuró anteriormente para iniciar sesión. Siéntase libre de explorar el panel de control de Icinga Web 2.
Eso concluye nuestro tutorial. Gracias por leer.