Requiere una instalación y configuración previa por medio de terminal (no se puede lograr por medio de la interfaz web), así que toca meterse al barro y trastear con la terminal de Linux.
Concretamente vamos a ver cómo instalar Nagios en Raspberry Pi.
Primero hemos de saber que existe una versión de servidor NAGIOS para Raspberry, con multitud de herramientas:
Por otra parte siempre podemos descargar Nagios CORE de forma manual desde los repositorios:
Primero actualizamos nuestra Raspberry:
sudo apt update
sudo apt upgrade
sudo reboot
Como Nagios funciona con una interfaz web, debemos instalar Apache y PHP:
sudo apt install apache2 libapache2-mod-php
Creamos un directorio donde descargaremos los paquetes de Nagios Core y los plugins. En este caso hemos elegido el directorio Downloads del usuario por defecto, pero podemos elegir otro directorio:
mkdir /home/pi/Downloads
cd /home/pi/Downloads
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.5.tar.gz
wget http://nagios-plugins.org/download/nagios-plugins-2.3.1.tar.gz
Vamos a pasar a instalar y compilar Nagios CORE y los plugins Nagios, pero primero creamos el usuario específico para Nagios, el grupo para el usuario nagios y su grupo en Apache.
sudo useradd -m -s /bin/bash nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd www-data
tar zxvf nagios-4.4.5.tar.gz
cd nagios-4.4.5
./configure --with-command-group=nagcmd
make all
sudo make install
sudo make install-init
sudo make install-config
sudo make install-commandmode
En este punto, Nagios Core ya está instalado, pero todavía queda configurar la parte relativa a Apache, para permitir el acceso a la página de Nagios.
Existen varias tareas que tenemos que realizar para dejar Apache preparado para Nagios:
sudo a2enmod cgi
sudo cp sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo service apache2 restart
Ahora ya podemos comprobar si tenemos acceso a la interfaz web de Nagios:
http://192.168...... /nagios/
O sea, la_IP_de_nuestro_Server_NAGIOS/nagios/
Recibiremos este error, ya que el servicio Nagios todavía no está levantado:
sudo service nagios start
Y comprobamos que ya podemos acceder a la interfaz web de Nagios (utilizando el usuario y contraseña que hemos creado previamente):
Y para más comodidad, añadimos el servicio Nagios de forma automática al arranque:
sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
sudo update-rc.d nagios defaults
extraemos los archivos:
tar zxvf nagios-plugins-2.3.1.tar.gz
cd nagios-plugins-2.3.1
Compilamos e instalamos los plugins:
cd nagios-plugins-2.3.1/
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install
Reiniciar servicio Nagios de nuevo:
sudo service nagios restart
Ahora solo nos queda preparar los host que serán monitorizados por NAGIOS.
Dado que Nagios utiliza sobre todo SNMP, instalaremos SNMP en cada host antes de añadirlo a Nagios para que sea monitorizado:
sudo apt install snmpd
cd /etc/snmp
cp snmpd.conf snmpd.conf.bak
rm snmpd.conf
nano snmpd.conf
com2sec readonly default MICOMUNIDAD
group MyROGroup v1 readonly
group MyROGroup v2c readonly
view all included .180
access MyROGroup "" any noauth exact all none none
sysName MIHOST
Podemos modificar “MICOMUNIDAD” y “MIHOST“, por los nombres que prefiramos. Existen más opciones, pero estas son las más importantes y necesarias.
service snmpd restart
Vamos al directorio de objetos de Nagios:
cd /usr/local/nagios/etc/objects
Creamos un nuevo archivo para nuestro Host:
nano mihost.cfg
Y añadimos:
define host
{
use linux-server ;Host group to use
host_name MotionEYE ; Name of this host
alias motioneye ; Alias
address 192.168.0.113 ; IP Address
}
Esta es una configuración básica de un host. Simplemente monitorizará si el host está levantado. Pero es el punto de partida.
Después podremos crear monitorizaciones más complejas!
/usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/mihost.cfg
Hecho esto, reiniciamos el servicio de Nagios:
service nagios restart
Y ya podremos ver que el nuevo host motioneye aparece (vemos también otro host linux que estamos monitorizando, llamado servidor1):
Si vamos a la sección Servicios (Services), veremos todos los servicios que se están monitorizando en estos hosts:
En artículos posteriores, veremos cómo crear y modificar servicios para monitorizar otros puertos con NAGIOS. Por ejemplo, en la captura anterior se puede apreciar que el host motioneye no usa el servicio HTTP, sino uno llamado HTTP-8765, que se trata de un servicio que hemos creado para monitorizar otro puerto diferente al 80 (el tradicional HTTP).