{"id":42,"date":"2020-05-01T18:29:00","date_gmt":"2020-05-01T18:29:00","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=42"},"modified":"2020-07-29T09:17:51","modified_gmt":"2020-07-29T09:17:51","slug":"instalacion-de-icinga-director","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/instalacion-de-icinga-director\/","title":{"rendered":"Instalaci\u00f3n de ICINGA Director"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/\/2020\/ICINGA\/director\/director_ok.jpg\" alt=\"\" width=\"652\" height=\"504\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Continuando la instalaci\u00f3n previa ya realizada sobre CentOS 8 de la versi\u00f3n ICINGA 2.7.3 comprobamos que tengamos instalados los requisitos para CentOS, deber\u00edan estar todos:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">sudo dnf install php-pcntl php-process php-sockets<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Debemos tener instalados los modulos: ipl, incubator y reactbundle, procedemos a descarar las versiones m\u00ednimas requeridas:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">MODULE_NAME=ipl\nMODULE_VERSION=v0.5.0\nREPO=\"https:\/\/github.com\/Icinga\/icingaweb2-module-${MODULE_NAME}\"\nMODULES_PATH=\"\/usr\/share\/icingaweb2\/modules\"\ngit clone ${REPO} \"${MODULES_PATH}\/${MODULE_NAME}\" --branch \"${MODULE_VERSION}\"\nicingacli module enable \"${MODULE_NAME}\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">NOTA: si al ejecutar el clonado desde git no tenemos instalado el m\u00f3dulo, nos pedir\u00e1 instalarlo<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">MODULE_NAME=incubator\nMODULE_VERSION=v0.5.0\nREPO=\"https:\/\/github.com\/Icinga\/icingaweb2-module-${MODULE_NAME}\"\nMODULES_PATH=\"\/usr\/share\/icingaweb2\/modules\"\ngit clone ${REPO} \"${MODULES_PATH}\/${MODULE_NAME}\" --branch \"${MODULE_VERSION}\"\nicingacli module enable \"${MODULE_NAME}\"<\/pre>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Y el \u00faltimo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">MODULE_NAME=reactbundle\nMODULE_VERSION=v0.7.0\nREPO=\"https:\/\/github.com\/Icinga\/icingaweb2-module-${MODULE_NAME}\"\nMODULES_PATH=\"\/usr\/share\/icingaweb2\/modules\"\ngit clone ${REPO} \"${MODULES_PATH}\/${MODULE_NAME}\" --branch \"${MODULE_VERSION}\"\nicingacli module enable \"${MODULE_NAME}\"<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/\/2020\/ICINGA\/director\/module_clone.JPG\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Reiniciamos el servicio, los m\u00f3dulos estar\u00e1n visibles en el panel de control<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">systemctl restart icinga2.service<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Continuamos creando la base de datos para Director:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">mysql -p -e \"CREATE DATABASE director CHARACTER SET 'utf8';\nCREATE USER director@localhost IDENTIFIED BY 'Direc89mon_';\nGRANT ALL ON director.* TO director@localhost;\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si utilizamos el mismo usuario que utilizamos anteriormente en la instalaci\u00f3n previa, deberemos garantizar el acceso seg\u00fan nuestra configuraci\u00f3n, por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">GRANT ALL PRIVILEGES ON director.* TO 'icinga'@'localhost';\nGRANT ALL PRIVILEGES ON icinga.* TO 'director'@'localhost';\nquit<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el directorio \/etc\/incingaweb2\/resources.ini debemos a\u00f1adir la nueva BBDD.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comenzamos con la instalaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">MODULE_VERSION=\"1.7.2\"\nICINGAWEB_MODULEPATH=\"\/usr\/share\/icingaweb2\/modules\"\nREPO_URL=\"https:\/\/github.com\/icinga\/icingaweb2-module-director\"\nTARGET_DIR=\"${ICINGAWEB_MODULEPATH}\/director\"\ngit clone \"${REPO_URL}\" \"${TARGET_DIR}\" --branch v${MODULE_VERSION}\n\nicingacli module enable director<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con esto ya podemos seguir el asistente de instalaci\u00f3n desde la web.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/\/2020\/ICINGA\/director\/module_director_ok.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>Otras opciones y consejos \u00fatiles durante el proceso:<\/strong><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si no recordamos&nbsp;el usuario y clave de la API:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">vim \/etc\/icinga2\/conf.d\/api-users.conf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si no recordamos el nombre del nodo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">vim \/etc\/icinga2\/constants.conf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para crear el demonio del servicio:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">useradd -r -g icingaweb2 -d \/var\/lib\/icingadirector -s \/bin\/false icingadirector\ninstall -d -o icingadirector -g icingaweb2 -m 0750 \/var\/lib\/icingadirector\nMODULE_PATH=\/usr\/share\/icingaweb2\/modules\/director\ncp \"${MODULE_PATH}\/contrib\/systemd\/icinga-director.service\" \/etc\/systemd\/system\/\nsystemctl daemon-reload\nsystemctl enable icinga-director.service --now<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el caso de tener alg\u00fan modulo desactualizado, al reiniciar el servicio y en la consola web nos aparecer\u00e1 el problema concreto:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/\/2020\/ICINGA\/director\/error_dependencies_01.JPG\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/\/2020\/ICINGA\/director\/error_dependencies_02.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Si es nuestro caso, debemos eliminar las versiones previas y volver a realizar el proceso con la requerida en cada caso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash;auto-links:false;toolbar:false\">mysql -p\nUSE director;\nshow variables like \"character_set_database\";<\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/\/2020\/ICINGA\/director\/database_error_utf8.JPG\" alt=\"\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Continuando la instalaci\u00f3n previa ya realizada sobre CentOS 8 de la versi\u00f3n ICINGA 2.7.3 comprobamos que tengamos instalados los requisitos para CentOS, deber\u00edan 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\u00ednimas requeridas: MODULE_NAME=ipl MODULE_VERSION=v0.5.0 REPO=\u00bbhttps:\/\/github.com\/Icinga\/icingaweb2-module-${MODULE_NAME}\u00bb MODULES_PATH=\u00bb\/usr\/share\/icingaweb2\/modules\u00bb git clone ${REPO} \u00ab${MODULES_PATH}\/${MODULE_NAME}\u00bb [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[225,40,111],"class_list":["post-42","post","type-post","status-publish","format-standard","hentry","category-networking","tag-director","tag-icinga","tag-instalacion"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/42","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=42"}],"version-history":[{"count":0,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/42\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=42"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=42"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}