Cómo instalar Nagios + NagiosQL en Centos 7

En este post os vamos a explicar cómo instalar y configurar Nagios en un servidor Centos7. Nagios es un complejo sistema de monitorización que nos permite controlar varios servidores.
Nagios se configura mediante línea de comandos, para facilitar la tarea instalaremos NagiosQL que nos permitirá configurar Nagios vía web.

Instalar LAMP

En este artículo se explica al detalle cómo hacerlo, aquí os dejamos los comandos necesarios:

# yum install wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip
# systemctl start httpd.service
# systemctl enable httpd.service
# yum install mariadb-server mariadb
# systemctl start mariadb.service
# systemctl enable mariadb.service
# mysql_secure_installation
# yum install epel-release
# yum install php php-mysql php-cli php-pear php-devel

Instalar Nagios

En el momento de hacer este artículo la versión estable de Nagios es la 4.3.4, por favor visita la web de Nagios por si hubiera alguna versión más reciente e instala la última versión.
Para usar Nagios necesitaremos crear un usuario y añadirlo al grupo apache:

# useradd nagios
# groupadd nagcmd
# usermod -a -G nagcmd nagios
# usermod -a -G nagios,nagcmd apache

Ahora ya podemos proceder a descargar Nagios e instalarlo:

# wget wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.4.tar.gz
# tar -xzvf nagios-4*
# cd nagios-*
# ./configure --with-command-group=nagcmd
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
# make install-webconf
# cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

En este último paso nos habrás solicitado que asignemos una contraseña al usuario “nagiosadmin” será el usaremos para acceder vía web a Nagios.

Instalar plugins Nagios

Nagios requiere de plugins para poder realizar comprobaciones de servicios. En el momento de hacer este artículo la última versión de plugins es la 2.2.1, por favor visita la web de Nagios por si hubiera alguna versión más reciente e instala la última versión.
Para instalar los plugins de Nagios ejecutaremos:

# cd ..
# wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
# tar -xzvf nagios-plugins*
# cd nagios-plugins*
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install

Ahora ya tenemos Nagios instalado, por lo cual vamos a activarlo e iniciarlo:

# systemctl restart httpd
# systemctl enable nagios
# systemctl start nagios

Instalación NagiosQL

NagiosQL es una interface web que nos permitirá configurar Nagios sin tener que entrar a editar ficheros por SSH.

# cd ..
# wget https://netcologne.dl.sourceforge.net/project/nagiosql/nagiosql/NagiosQL%203.3.0/nagiosql_330.tar.gz
# tar -xzvf nagiosql_330.tar.gz
# chmod 777 nagiosql33/config
# mv nagiosql33 /usr/local/nagios/share/
# mkdir /etc/nagiosql
# chmod 777 /etc/nagiosql

Actualizaremos la configuración de PHP para establecer nuestra zona horaria:

# vi /etc/php.ini
# date.timezone = “Europe/Madrid”
# systemctl restart httpd

Ahora crearemos una base de datos, usuario y contraseña para usar NagiosQL:

# mysql -u root
MariaDB [(none)]> create database nagios character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nagios.* to nagios@localhost identified by 'nagiostest';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye

Configuración NagiosQL

Ahora que ya tenemos Nagios y NagiosQL instalado procederemos a la configuración de NagiosQL mediante la interfaz web, para ello entraremos en nuestro navegador a http://IP-Publica/nagios/nagiosql33/install/index.php y rellenaremos los datos que nos soliciten, aquí  os dejamos unas capturas del proceso:

Configuración NagiosQL con Nagios

Ahora que ya tenemos NagiosQL es hora hacer que funcione en conjunto con Nagios para ello editaremos:

# OBJECT CONFIGURATION FILE(S)
# These are the object configuration files in which you define hosts,
# host groups, contacts, contact groups, services, etc.
# You can split your object definitions across several config files
# if you wish (as shown below), or keep them all in a single config file.

# You can specify individual object config files as shown below:
#cfg_file=/usr/local/nagios/etc/objects/commands.cfg
#cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
#cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
#cfg_file=/usr/local/nagios/etc/objects/templates.cfg

# Definitions for monitoring the local (Linux) host
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

# Definitions for monitoring a Windows machine
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg

# Definitions for monitoring a router/switch
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg

# Definitions for monitoring a network printer
#cfg_file=/usr/local/nagios/etc/objects/printer.cfg


# You can also tell Nagios to process all config files (with a .cfg
# extension) in a particular directory by using the cfg_dir
# directive as shown below:

#cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers

   cfg_file=/etc/nagiosql/contacttemplates.cfg
   cfg_file=/etc/nagiosql/contactgroups.cfg
   cfg_file=/etc/nagiosql/contacts.cfg
   cfg_file=/etc/nagiosql/timeperiods.cfg
   cfg_file=/etc/nagiosql/commands.cfg

   cfg_file=/etc/nagiosql/hostgroups.cfg
   cfg_file=/etc/nagiosql/servicegroups.cfg

   cfg_dir=/etc/nagiosql/hosts
   cfg_dir=/etc/nagiosql/services


   cfg_file=/etc/nagiosql/hosttemplates.cfg
   cfg_file=/etc/nagiosql/servicetemplates.cfg
   cfg_file=/etc/nagiosql/servicedependencies.cfg
   cfg_file=/etc/nagiosql/serviceescalations.cfg
   cfg_file=/etc/nagiosql/hostdependencies.cfg
   cfg_file=/etc/nagiosql/hostescalations.cfg
   cfg_file=/etc/nagiosql/hostextinfo.cfg
   cfg_file=/etc/nagiosql/serviceextinfo.cfg

Ahora entraremos en la interfaz web de NagiosQL e iremos a “Administración > Config targets” y editaremos localhost. Luego iremos a “Herramientas > Control Nagios” y haremos todas las comprobaciones. Aquí os dejamos capturas de pantalla de este proceso.

Ya podemos empezar a usar Nagios configurando nuestros servidores desde NagiosQL.

To write a comment on this article, fill out the form below. Fields marked with an asterisk (*) are required.

Visitors comments
  1. Comentario (Publicado por jaime)

    Saludos Estimado,
    Gracias por la explicacion. todo bien hasta cuando creo la base de datos en NagiosQL.

    me arroja estos errores.
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘&amp’ at line 1
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘Query OK, 1 row affected (0.00 sec)

    Reply

    • Comentario (Publicado por cldn-kb-admin)

      Has de ejecutar:
      create database nagios character set utf8 collate utf8_bin;
      grant all privileges on nagios.* to nagios@localhost identified by ‘nagiostest’;
      quit;

      Reply

      • Comentario (Publicado por jaime)

        Gracias por la respuesta. Ahora todo bien. Solo que en la última parte en Herramientas/control nagios / Comprobar los ficheros de configuración: me arroja este error : ¡No se puede encontrar el binario de Nagios o no tiene derechos de ejecución!.

        Reply

  2. Comentario (Publicado por Manu)

    Buenos días

    Es posible conectarme desde Nagios QL a un nagios remoto para cargar remotamente servicios y host?
    Muchas gracias!

    Reply

    • Comentario (Publicado por cldn-kb-admin)

      Creo que no es posible, NagiosQL escribe los ficheros de configuración sobre el mismo servidor, otra cosa es que lo resuelvas montando un NFS.

      Reply

  3. Comentario (Publicado por Guillermo Spindola)

    Además llos siguientes archivos no existen en mi servidor.

    cfg_file=/etc/nagiosql/contacttemplates.cfg
    cfg_file=/etc/nagiosql/contactgroups.cfg
    cfg_file=/etc/nagiosql/contacts.cfg
    cfg_file=/etc/nagiosql/timeperiods.cfg
    cfg_file=/etc/nagiosql/commands.cfg

    cfg_file=/etc/nagiosql/hostgroups.cfg
    cfg_file=/etc/nagiosql/servicegroups.cfg

    cfg_dir=/etc/nagiosql/hosts
    cfg_dir=/etc/nagiosql/services

    cfg_file=/etc/nagiosql/hosttemplates.cfg
    cfg_file=/etc/nagiosql/servicetemplates.cfg
    cfg_file=/etc/nagiosql/servicedependencies.cfg
    cfg_file=/etc/nagiosql/serviceescalations.cfg
    cfg_file=/etc/nagiosql/hostdependencies.cfg
    cfg_file=/etc/nagiosql/hostescalations.cfg
    cfg_file=/etc/nagiosql/hostextinfo.cfg
    cfg_file=/etc/nagiosql/serviceextinfo.cfg

    Reply