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:
# vi /usr/local/nagios/etc/nagios.cfg;
Hay que comentar todos los cfg_file hasta routers y añadir los que indicamos a continuación:
# 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.