Usando Nagios
¿Por qué usar Nagios?
Nagios es un sistema open source de monitoreo de redes ampliamente utilizado, que vigila los equipos (hardware) y servicios (software) que se especifiquen, alertando cuando el comportamiento de los mismos no sea el deseado.
Configurar el servidor de monitoreo
Requisitos
- Servidor Web (Este manual asume que se usará Apache)
- Php (Para la interface web)
- Gcc
- Libgd (es una librería gráfica necesaria para mostrar el statusmap)
- Perl
- Servidor de correo (Opcional. Para enviar las alertas por correo)
Instalación (como usuario root)
Crear un usuario nagios
useradd -m nagios passwd nagios
Instalar nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz gunzip -dc nagios-3.0.6.tar.gz | tar xvf - cd nagios-3.0.6 ./configure --with-command-group=nagios make all make install make install-init make install-config make install-commandmode
Configuración
Editar el archivo /usr/local/nagios/etc/objects/contacts.cfg
Este cambio es para indicar a que correo se notificarán las alertas configuradas.
reemplazar “nagios@localhost” por el correo del administrador
Configurar la interfase web
make install-webconf htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin chown nagios.nagios /usr/local/nagios/etc/htpasswd.users chmod 664 /usr/local/nagios/etc/htpasswd.users service httpd restart
Instalar los plugins de Nagios
El plugin para PostgreSQL lo instalaremos luego manualmente, estos es por dos motivos:
- Para instalar la última versión y
- Para no tener problemas de dependencias en caso de que en el servidor de monitoreo no tengamos instalado PostgreSQL
cd .. wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz gunzip -dc nagios-plugins-1.4.13.tar.gz | tar xvf - cd nagios-plugins-1.4.13 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --without-pgsql make make install
Iniciar Nagios
cd /etc/init.d chkconfig --add nagios chkconfig nagios on
Para comprobar que todo esta bien
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Finalmente
service nagios start
En este momento ya es posible ingresar a Nagios, abriendo el navegador de internet y poniendo como dirección: http://localhost/nagios
Ingrese como usuario nagiosadmin y como clave la que indico cuando configuraba la interfase web.
Si instalo en la misma máquina que va a ser monitoreada pasar a la instalación del plugin para PostgreSQL, de lo contrario continúe con la siguiente sección.
Configurar la máquina que sera monitoreada
Requisitos
- PostgreSQL (Las instrucciones en este manual se probaron usando la versión 8.3.7)
- Xinetd
- Gcc
- Perl
Crear un usuario Nagios
useradd -m nagios passwd nagios
Instalar los plugins de Nagios
El plugin para PostgreSQL lo instalaremos luego manualmente para asegurarnos de usar la última versión.
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz gunzip -dc nagios-plugins-1.4.13.tar.gz | tar xvf - cd nagios-plugins-1.4.13 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --without-pgsql make make install chown -R nagios.nagios /usr/local/nagios
Instalar el modulo nrpe de Nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz gunzip -dc nrpe-2.12.tar.gz | tar xvf - cd nrpe-2.12 ./configure make all make install-plugin make install-daemon make install-daemon-config make install-xinetd
Configurar el modulo nrpe
Modificar el archivo /etc/xinet.d/nrpe
modificar el valor del campo “only_from” por la ip del servidor que se va a monitorear
Modificar el archivo /etc/services
agregar la siguiente linea “nrpe 5666/tcp #NRPE”
Configurar el servidor de monitoreo para que chequee los servicios en la máquina remota
Instalar el modulo nrpe de Nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz gunzip -dc nrpe-2.12.tar.gz | tar xvf - cd nrpe-2.12 ./configure make all make install-plugin
Probar el modulo nrpe
/usr/local/nagios/libexec/check_nrpe -H <ip servidor monitoreado>
Editar el archivo /usr/local/nagios/etc/objects/commands.cfg
Agregar las siguientes lineas al final del archivo
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
Debemos indicarle a Nagios que vamos a monitorear otra maquina editando el archivo /usr/local/nagios/etc/nagios.cfg Agregar la siguiente linea en la seccion “OBJECT CONFIGURATION FILE(S)”:
cfg_file = /usr/local/nagios/etc/objects/dbhost.cfg
Crear la definicion del host en un archivo dbhost.cfg
define host{ use linux-server host_name dbserver alias pgsql 8.3 address IP.del.servidor.PostgreSQL }
service nagios restart
Instalar plugin para monitorear PostgreSQL (en el servidor que se va a monitorear)
Descargar el archivo check_postgres.tar.gz desde http://bucardo.org/check_postgres gunzip -dc check_postgres.tar.gz | tar xvf - cd check_postgres cp check_postgres.pl /usr/local/nagios/libexec/. perl /usr/local/nagios/libexec/check_postgres.pl –symlinks
Para instalar chequeos se debe crear una entrada por cada servicio que vayamos a monitorear en el archivo /usr/local/nagios/etc/nrpe.cfg similar a (deben agregados en la seccion “COMMAND DEFINITIONS”):
command[check_postgres_locks]=/usr/local/nagios/libexec/check_postgres_locks -w 2 -c 3
Donde los comandos pueden tomarse de http://bucardo.org/check_postgres/check_postgres.pl.html
Luego debemos indicar los servicios a monitorear, creando entradas como las siguientes en el archivo /usr/local/nagios/etc/objects/dbhost.cfg en el servidor de monitoreo:
define service { use generic-service host_name dbserver service_description PGSQL locks check_command check_nrpe!check_postgres_locks }
define service{ use generic-service host_name dbserver service_description CPU Load check_command check_nrpe!check_load }
define service{ use generic-service host_name dbserver service_description Current users check_command check_nrpe!check_users }
define service{ use generic-service host_name dbserver service_description Total Processes check_command check_nrpe!check_total_procs }
define service{ use generic-service host_name dbserver service_description Zombie Processes check_command check_nrpe!check_zombie_procs }