¿Como Instalar Nagios en Ubuntu 9.04?

INSTALACION DEL SISTEMA DE MONITORIZACION (al final del documento encontraremos como hacer la instalacion en el cliente):








Si bien algunos ya conocen los sistemas de monitorizacion por red utilizando el protocolo snmp, para los que todavia no saben de lo que hablo, Nagios
es un sistema de monitorizacion que permite basicamente mediante una lista de servicios a comprobar y un listado de pc´s conectados remotamente, monitorizar estos, ya sea desde espacio en disco duro, si el host remoto esta apagado, si esta fallando algun servicio indispensable o controlar si el SAI/UPS esta funcionando correctamente. Este sistema (nagios) permite monitorizar ya sea una red local como remota o por vpn.


Notas:

Vamos a instalar los siguientes programas en nuestro ubuntu:

Nagios y todos sus plugins disponibles, estos se instalaran en /usr/local/nagios.
Nagios se configurara para monitorizar los siguientes aspectos (carga de cpu, espacio en disco duro, etc).

Podremos configurar nagios mediante un asistente web desde la direccio http://localhost/nagios/.

Paquetes requeridos:

Apache 2
PHP
Compilador GCC y librerias de desarrollo.
Librerias de desarrollo GD

Comenzando:

1-Mediante el programa apt-get instalaremos los siguientes paquetes:


#sudo apt-get install apache2

#sudo apt-get install libapache2-mod-php5

#sudo apt-get install build-essential

#sudo apt-get install libgd2-xpm-dev


2-Crearemos una cuenta con privilegios de root:

#sudo -s

#/usr/sbin/useradd -m -s /bin/bash nagios

#passwd nagios


3-En algunas versiones anteriores de ubuntu, era necesario agregar el usuario a un determinado grupo, si esto no se hace automaticamente por algun monitivo debemos de crearlo y agregarlo nosotros mismos:


#/usr/sbin/groupadd nagios

#/usr/sbin/usermod -G nagios nagios


4-Ahora crearemos un grupo nuevo llamado nagcmd para permitir ejecutar comandos externos mediante el interfaz web, agregaremos ambos, el usuario nagios y el usuario apache a este grupo.


#/usr/sbin/groupadd nagcmd

#/usr/sbin/usermod -a -G nagcmd nagios

#/usr/sbin/usermod -a -G nagcmd www-data


5-Descargando Nagios y sus plugins:

Crearemos un directorio llamado downloads:


#mkdir ~/downloads

#cd ~/downloads

Luego vamos a descargar el codigo fuente de Nagios y de los Plugins:


#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz

#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz


6-Compilando e instalando Nagios:

Primero vamos a extraer los ficheros del codigo fuente de nagios:


cd ~/downloads

tar xzf nagios-3.2.0.tar.gz

cd nagios-3.2.0


Luego lanzaremos el script para configurar Nagios, incluyendo el nombre del grupo que hemos creado anteriormente que en este caso era nagcmd:


#./configure --with-command-group=nagcmd


7-Ahora compilaremos el codigo fuente de Nagios:


#make all


8-Instalaremos los ficheros binarios, los script de inicio, los ficheros de configuracion de ejemplo y configuraremos los permisos en el directorio de ejecucion externo:


#make install

#make install-init

#make install-config

#make install-commandmode


Nota: Todavia no ejecutaremos Nagios, necesitamos realizar un par de operaciones mas...

9-Retocando la configuracion:

Los archivos de configuracion de ejemplo han sido instalados en /usr/local/nagios/etc, estos archivos de ejemplos deberian de funcionar bien para empezar a funcionar con Nagios, solo necesitaremos hacer los siguientes cambios:

Editaremos el fichero que se encuentra en /usr/local/nagios/etc/objects/contacts.cfg, podemos utilizar el editor "nano":

sudo nano /usr/local/nagios/etc/objects/contacts.cfg


10-Configurando la interfaz web:


Para instalar la interfaz de configuracion web de Nagios debemos lanzar el siguiente comando:


#make install-webconf


Crearemos una cuenta llamada nagiosadmin para acceder a la interfaz web, recuerden la contraseña que mas tarde la vamos a necesitar:


#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin


Reiniciamos el servidor web apache para que se refresquen los cambios:


#/etc/init.d/apache2 reload


11-Compilando e instalando los plugins de Nagios:


Descomprimimos los plugins de Nagios:


#cd ~/downloads

#tar xzf nagios-plugins-1.4.11.tar.gz

#cd nagios-plugins-1.4.11


Compilamos e instalamos los plugins de Nagios:


#./configure --with-nagios-user=nagios --with-nagios-group=nagios

#make

#make install


12-Iniciando Nagios:


Configuraremos Nagios para que inicie cuando inicie nuestro SO:


#ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios


Verificaremos el archivo de configuracion de Nagios:


#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


13-Si no hay errores, iniciaremos Nagios:


#/etc/init.d/nagios start


14-Ingresaremos a la interfaz web:

http://localhost/nagios/


Hacemos click en "Service Detail" para ver los detalles de los procesos que se monitorizaran localmente, esperaremos unos minutos para que Nagios chequee todos los servicios asociados en nuestro ordenador:

15-Notificaciones:

Si queremos recibir un correo de notificacion para las alertas de Nagios debemos instalar el paquete Postfix:

#sudo apt-get install mailx

#sudo apt-get install postfix


You'll have to edit the Nagios email notification commands found in /usr/local/nagios/etc/objects/commands.cfg and change any '/bin/mail' references to '/usr/bin/mail'. Once you do that you'll need to restart Nagios to make the configuration changes live.


#sudo /etc/init.d/nagios restart


Configuring email notifications is outside the scope of this documentation. Refer to your system documentation, search the web, or look to the Nagios Support Portal or Nagios Community Wiki for specific instructions on configuring your Ubuntu system to send email messages to external addresses.






SISTEMA DE MONITORIZACION (CLIENTE):



En este tutorial vamos a instalar el soporte de monitorizacion para el ordenador cliente, los servicios que se monitorizaran son:

Uso de memoria
Carga de CPU
Espacio en disco duro
Estado de los servicios
Procesos ejecutandose
etc.


Nota: La monitorizacion de servicios y otros atributos en un ordenador con SO Windows instalado requiere la instalacion de un agente, este agente actua de proxy entre el servidor Nagios, los plugs, etc, sin este agente nagios no puede monitorizar o ejecutar sus plugins en el equipo remoto.

1-Editaremos el archivo de configuracion de Nagios en el servidor:


#sudo nano /usr/local/nagios/etc/nagios.cfg


Quitaremos el signo (#) de la siguiente linea:


#cfg_file=/usr/local/nagios/etc/objects/windows.cfg


Guardaremos el archivo y salimos del editor.

2-Lo que hemos hecho anteriormente es decirle a Nagios que mire en el fichero /usr/local/nagios/etc/objects/windows.cfg para encontrar objetos adicionales. Ahi es donde se agregan y definen los servicios y el host a monitorizar, ese fichero ya contiene algunos parametros de configuracion.

3-Instalando el agente Nagios en Windows


3.1. Descargamos la ultima version del agente NSClient++ desde http://sourceforge.net/projects/nscplus

3.2. Descomprimimos el agente en el directorio C:\NSClient++

3.3. Abrimos el CMD y entramos en el directorio C:\NSClient++

3.4. Registramos el agente NSClient++ y creamos el servicio con el siguiente comando:


C:\NSClient++>nsclient++ /install


3.5. Podemos instalar el agente en la barra de inicio con el siguiente comando:


C:\NSClient++>nsclient++ SysTray


4-Una vez instalado el agente, abriremos los servicios de windows, lanzando desde Inicio > Ejecutar > services.msc, buscaremos el agente de Nagios, hacemos doble click sobre el y en la pestaña de Inicio de sesión, marcaremos la opcion de interactuar con el escritorio de Windows.





5-Editaremos el fichero NSC.INI que se encuentra en C:\NSClient++:

5.1 Quitaremos todas las lineas comentadas en la seccion [modules] a excepcion de CheckWMI.dll y RemoteConfiguration.dll.

5.2 Quitaremos la linea comentada 'allowed_hosts' en la seccion [Settings] y agregaremos la ip del nuestro servidor Nagios recien instalado, tambien la podemos dejar en blanco y permitir que cualquier host que quiera monitorizar este ordenador con windows pueda conectarse (mejor le definimos la IP).

5.3 Vamos a asegurarnos de que la opcion 'port' en la seccion[NSClient] esta sin comentar y configurada en '12489'.


Nota: cuando hablamos de quitar el o las lineas comentadas no es borrar las lineas sino quitarle el # o -- '' del inicio de la linea.


6-Iniciaremos el servicio desde el cmd:


c:\>nsclient++ /start


7-Si todo ha salido como uno espera siempre (bien), ahora nos debe de aparecer un icono en nuestra barra de inicio de windows, un circulo amarillo con una M en negro.


8-Ahora podremos agregar nuestro ordenador con Windows al servicio Nagios y comenzar a monitorizarlo:


Abrimos el fichero windows.cfg y lo editaremos agregando las siguientes lineas:

sudo nano /usr/local/nagios/etc/objects/windows.cfg


Si recuerdan, hemos dicho que este fichero es de ejemplo y que hay algunas lineas que debemos cambiar:


define host{

use windows-server ; No borraremos esta linea!

host_name winserver ;ejemplo de nombre de equipo

alias My Windows Server ; el nombre que queremos ponerle para que lo veamos desde la interfaz web.

address 192.168.1.2 ; La ip de nuestro equipo.

}


Ahora vamos a agregar los servicios mas comunes:

define service{

use generic-service

host_name winserver

service_description NSClient++ Version

check_command check_nt!CLIENTVERSION

}


define service{

use generic-service

host_name winserver

service_description Uptime

check_command check_nt!UPTIME

}


define service{

use generic-service

host_name winserver

service_description CPU Load

check_command check_nt!CPULOAD!-l 5,80,90

}


define service{

use generic-service

host_name winserver

service_description Memory Usage

check_command check_nt!MEMUSE!-w 80 -c 90

}


define service{

use generic-service

host_name winserver

service_description C:\ Drive Space

check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90

}


define service{

use generic-service

host_name winserver

service_description W3SVC

check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

}


define service{

use generic-service

host_name winserver

service_description Explorer

check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

}


Una vez que terminamos de editar el archivo, lo guardamos y salimos del editor.

9-Reiniciaremos Nagios o mejor el servidor para que se refresquen los cambios, eso es todo....

Espero que les sirva de utilidad....
Share on Google Plus
    Blogger Comment

6 comentarios:

Pedro dijo...

hola, tengo problemas con MEMUSE
no me detecta la memoria REAL fisica sino la paginacion parece
en vez de 1Gb de Ram detecta 2.3 GB

Estebancr dijo...

Hola.

Gracias por el tutorial. Me gustaria saber como se hace para monitorear el espacio de otros DD aparte de C:. Gracias.

Esteban

Miguel dijo...

Hola,
La documentación genial explicada paso a paso, pero he ido a arrancar http://localhost/nagios y tras la contraseña , me pregunta el navegador que quiero hacer con un archivo el cual es un PHTML.
¿Algo tengo mal? ¿el que puede ser me podeis dar alguna pista?
Gracias
Miguel

Miguel dijo...

Hola,
Soy Miguel de nuevo, olvidaros del tema que ya he encontrado el problema gracias por todo.
A ver como me va el resto

DarkAntares dijo...

Miguel por favor seria bueno que nos comentaras como solucionaste el problema con la interfaz web ya que a mi me pasa lo mismo y no tengo idea de como solucionarlo. Muchas gracias.

DarkAntares dijo...

He encontrado la solucion "bizarra" a este problema, y es que efectivamente aunque instalemos superficialmente php5 dentro de la instalacion de Nagios, aun hacen falta algunos paquetes necesarios para evitar ese fastidioso documento phtml.

Una vez instalado nagios ejecutar lo siguiente como root:

sudo aptitude install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd \
php5-imagick php5-mcrypt php5-memcache php5-mhash php5-mysql php5-pspell php5-snmp \
php5-sqlite php5-xmlrpc php5-xsl

esto instala los modulos de php mas comunes y usados, lo que nos garantiza el funcionamiento correocto de nagios. Una vez hecho esto, reiniciamos apache y por si las dudas reiniciamos nagios.