Continuando la instalación previa ya realizada sobre CentOS 8 de la versión ICINGA 2.7.3 comprobamos que tengamos instalados los requisitos para CentOS, deberían estar todos:
sudo dnf install php-pcntl php-process php-sockets
Debemos tener instalados los modulos: ipl, incubator y reactbundle, procedemos a descarar las versiones mínimas requeridas:
MODULE_NAME=ipl MODULE_VERSION=v0.5.0 REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}" MODULES_PATH="/usr/share/icingaweb2/modules" git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}" icingacli module enable "${MODULE_NAME}"
NOTA: si al ejecutar el clonado desde git no tenemos instalado el módulo, nos pedirá instalarlo
MODULE_NAME=incubator MODULE_VERSION=v0.5.0 REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}" MODULES_PATH="/usr/share/icingaweb2/modules" git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}" icingacli module enable "${MODULE_NAME}"
Y el último:
MODULE_NAME=reactbundle MODULE_VERSION=v0.7.0 REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}" MODULES_PATH="/usr/share/icingaweb2/modules" git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}" icingacli module enable "${MODULE_NAME}"
Reiniciamos el servicio, los módulos estarán visibles en el panel de control
systemctl restart icinga2.service
Continuamos creando la base de datos para Director:
mysql -p -e "CREATE DATABASE director CHARACTER SET 'utf8'; CREATE USER director@localhost IDENTIFIED BY 'Direc89mon_'; GRANT ALL ON director.* TO director@localhost;"
Si utilizamos el mismo usuario que utilizamos anteriormente en la instalación previa, deberemos garantizar el acceso según nuestra configuración, por ejemplo:
GRANT ALL PRIVILEGES ON director.* TO 'icinga'@'localhost'; GRANT ALL PRIVILEGES ON icinga.* TO 'director'@'localhost'; quit
En el directorio /etc/incingaweb2/resources.ini debemos añadir la nueva BBDD.
Comenzamos con la instalación:
MODULE_VERSION="1.7.2" ICINGAWEB_MODULEPATH="/usr/share/icingaweb2/modules" REPO_URL="https://github.com/icinga/icingaweb2-module-director" TARGET_DIR="${ICINGAWEB_MODULEPATH}/director" git clone "${REPO_URL}" "${TARGET_DIR}" --branch v${MODULE_VERSION} icingacli module enable director
Con esto ya podemos seguir el asistente de instalación desde la web.
Otras opciones y consejos útiles durante el proceso:
Si no recordamos el usuario y clave de la API:
vim /etc/icinga2/conf.d/api-users.conf
Si no recordamos el nombre del nodo:
vim /etc/icinga2/constants.conf
Para crear el demonio del servicio:
useradd -r -g icingaweb2 -d /var/lib/icingadirector -s /bin/false icingadirector install -d -o icingadirector -g icingaweb2 -m 0750 /var/lib/icingadirector MODULE_PATH=/usr/share/icingaweb2/modules/director cp "${MODULE_PATH}/contrib/systemd/icinga-director.service" /etc/systemd/system/ systemctl daemon-reload systemctl enable icinga-director.service --now
En el caso de tener algún modulo desactualizado, al reiniciar el servicio y en la consola web nos aparecerá el problema concreto:
Si es nuestro caso, debemos eliminar las versiones previas y volver a realizar el proceso con la requerida en cada caso.
Si aparece un mensaje de advertencia pero la BBDD si esta en UTF8, puedes comprobarlo desde mysql, es posible continuar pese al mensaje de advertencia:
mysql -p USE director; show variables like "character_set_database";