martes, 22 de mayo de 2012

Configuración de Nagios para monitorizar un Linux a través del nombre del equipo

Para poder monitorizar un equipo remoto, tendremos que usas el añadido NRPE, que instalaremos en el equipo a monitorizar y en el servidor. Se trata de un demonio que nos permitirá ejecutar en remoto los plugins que instalaremos en la máquina a monitorizar, y le pasará los datos al servidor Nagios.

1º Instalaremos los plugins de Nagios en el cliente.

root@skillredes01-debian:~# useradd nagios
root@skillredes01-debian:~# passwd nagios
La contraseña que utilizaremos será "nagios".
Para poder instalar todas las dependencias tendremos que asegurarnos de tener los siguientes repositorios en la lista:
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free
root@skillredes01-debian:~# nano /etc/apt/sources.list
root@skillredes01-debian:~# apt-get update
root@skillredes01-debian:~# apt-get install libmysqld-dev libmysqlclient-dev php5-sybase php-db libsnmp-perl snmp snmp-mibs-downloader libssl-dev libyaml-perl
root@skillredes01-debian:~# perl -MCPAN -e shell
cpan[1]> install Net::SNMP
cpan[2]> exit
root@skillredes01-debian:~# exit
manuel@skillredes01-debian:~$ mkdir Descargas
manuel@skillredes01-debian:~$ cd Descargas/
manuel@skillredes01-debian:~/Descargas$ tar xzf nagios-plugins-1.4.15.tar.gz 
manuel@skillredes01-debian:~/Descargas$ cd nagios-plugins-1.4.15/
manuel@skillredes01-debian:~/Descargas/nagios-plugins-1.4.15$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios
manuel@skillredes01-debian:~/Descargas/nagios-plugins-1.4.15$ make
manuel@skillredes01-debian:~/Descargas/nagios-plugins-1.4.15$ su -l
root@skillredes01-debian:~# cd /home/manuel/Descargas/nagios-plugins-1.4.15/
root@skillredes01-debian:/home/manuel/Descargas/nagios-plugins-1.4.15# make install
root@skillredes01-debian:/home/manuel/Descargas/nagios-plugins-1.4.15# chown nagios.nagios /usr/local/nagios
root@skillredes01-debian:/home/manuel/Descargas/nagios-plugins-1.4.15# chown -R nagios.nagios /usr/local/nagios/libexec

lunes, 21 de mayo de 2012

Configuración de Nagios para monitorizar una base de datos MySQL ubicada en Windows Server 2008

Como vimos en el artículo anterior, gracias a XAMPP tenemos un servidor MySQL instalado en nuestro Windows 2008. 
Para esta monitorización vamos a crear un usuario "nagios" en mysql, con permiso de lectura y que se podrá conectar desde cualquier IP a la base de datos "test".
c:\xampp\mysql\bin\mysql -u root
mysql> GRANT select ON test.* TO 'nagios'@'%' IDENTIFIED BY 'nagios';
mysql> FLUSH PRIVILEGES;
mysql> exit;

Añadimos en /usr/local/nagios/etc/objects/commands.cfg
# 'check_mysql' command definition
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ $ARG1$
}


Configuración de Nagios para monitorizar una página Web hospedada en Windows Server 2008

Para los siguientes puntos instalaremos la suite XAMPP en el servidor de Windows, que incluye un servidor Apache, MySQL, PHP, Perl y FTP.

Para que el Apache funcione correctamente, tendremos que instalar el "Paquete redistribuible de Microsoft Visual C++ 2008".

Configurar Nagios para que monitorice la interfaz de red de un equipo Windows Server 2008

Para monitorizar la interfaz de red hay varias formas, a través del protocolo SNMP, con WMI o a través de contadores, que es el método que explicaremos aquí. 
Lo que haremos será crear contadores en el servidor que consultaremos desde Nagios, con la ayuda de la herramienta administrativa Monitor de confiabilidad y rendimiento.
En el monitor de confiabilidad y rendimiento, en monitor de rendimiento, creamos un nuevo contador, para la Interfaz de red. Elegiremos para esta demostración, los datos de Bytes enviados/s y recibidos/s.
Una vez configuradas las colas en Windows, procederemos a configurar Nagios para que lea esos datos. 
Muy importante:
El nombre de la cola debe estar escrito de forma correcta o no dará los datos requeridos.
Añadimos al final de /usr/local/nagios/etc/objects/windows.cfg

#Servicio para monitorizar la Interfaz de red enviados
define service{
use generic-service
host_name excellondonsrv1
service_description Bytes enviados/s
check_command check_nt!COUNTER!-l "\\Interfaz de red(Conexión de red Intel[R] PRO_1000 MT)\\Bytes enviados/s"
}


#Servicio para monitorizar la Interfaz de red
define service{
use generic-service
host_name excellondonsrv1
service_description Bytes recibidos/s
check_command check_nt!COUNTER!-l "\\Interfaz de red(Conexión de red Intel[R] PRO_1000 MT)\\Bytes recibidos/s"
}
root@excellondonsrv2:~# nano /usr/local/nagios/etc/objects/windows.cfg

y reiniciamos nagios.

root@excellondonsrv2:~# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
root@excellondonsrv2:~# service nagios reload

Configuración Nagios para monitorizar un Windows Server 2008 a través del nombre del equipo


Los pasos a seguir para la monitorización de un equipo con Windows son:
1.- Realizar los prerequisitos de la primera vez
2.- Instalar un agente de control en la máquina Windows
3.- Crear nuevas definiciones de anfitrión y de servicios para el control de la máquina de Windows
4.-Reiniciar el demonio de Nagios

1.- Prerequisitos

Los prerequisitos consisten en modificar el archivo de configuración de Nagios para habilitar el archivo de configuración para los equipo con Windows, borrando "#" de la línea "#cfg_file=/usr/local/nagios/etc/objects/windows.cfg"

root@excellondonsrv2:/home/user/Download# nano /usr/local/nagios/etc/nagios.cfg 

2.- Instalar un agente de control en la máquina Windows

En el equipo Windows, instalaremos el complemento NSClient++, que puede ser localizado en http://sourceforge.net/projects/nscplus. Este agente nos permitirá monitorizar la máquina.




Ahora que ya tenemos instalado y configurado NSClient, continuaremos con la configuración del servidor linux.

1º Haremos una cópia de seguridad del archivo de configuración de windows.

root@excellondonsrv2:~# cp /usr/local/nagios/etc/objects/windows.cfg /usr/local/nagios/etc/objects/windows.cfg.backup


2º Modificamos el archivo windows.cfg y sustituimos "winserver" por el nombre de nuestro servidor. En nuestro caso activaremos todos los servicios por defecto.

root@excellondonsrv2:~# nano /usr/local/nagios/etc/objects/windows.cfg


3º La protección con clave que pusimos nos obliga a modificar el archivo commands.cfg para que envíe la clave cuando realice las peticiones. Eso se consigue modificando la línea command-line de la definición de "CHECK_NT" para que quede como sigue:
"$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$ "
root@excellondonsrv2:~# nano /usr/local/nagios/etc/objects/commands.cfg 


4º Ya podemos comprobar la configuración y reiniciar Nagios.
root@excellondonsrv2:~# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

root@excellondonsrv2:~# service nagios restart

Proceso de instalación de Nagios Core sobre una máquina Virtual.


Partiremos de una máquina en VMWare con Debian 6.0.4 Squeeza instalado previamente.
Para comprobar que tenemos instalados el servidor Web, la librería GD, PHP y el compilador, utilizaremos los siguientes comandos:
root@excellondonsrv2:~# dpkg --get-selections |grep apache
root@excellondonsrv2:~# dpkg --get-selections |grep php
root@excellondonsrv2:~# dpkg --get-selections |grep gd
root@excellondonsrv2:~# dpkg --get-selections |grep gcc

O simplemente ejecutamos los comandos para su instalación, que es la opción más aconsejable:

root@excellondonsrv2:~# apt-get install apache2 php5 build-essential postfix libgd-graph-perl libgd2-xpm-dev libgd2-xpm

"build-essential" nos proporciona el entorno de compilación, "postfix" el servidor de correos para entregar las alertas, que sustituirá al instalado por defecto exim4 y libgd la librería GD.
Durante el proceso de instalación, se nos pedirá que configuremos el servidor de correo Postfix.

A continuación crearemos el usuario y grupo necesarios para utilizar Nagios:
root@excellondonsrv2:~# useradd -m nagios
root@excellondonsrv2:~# passwd nagios
“nagios” es la contraseña que utilizaremos.
Para poder trabajar con el entorno web sin problemas, añadiremos el usuario www-data al grupo nagios.

root@excellondonsrv2:~# usermod -a -G nagios www-data
Ya tenemos listo el entorno para poder compilar nuestro Nagios, por lo que procederemos a la descarga de Nagios Core y sus Plugins. 
La versión actual de Nagios Core es la 3.4.1 y la versión estable de los plugins la 1.4.15.
Como no es conveniente la descarga y la descompresión la realizaremos con el usuario normal.
root@excellondonsrv2:~# exit
user@excellondonsrv2:~$ mkdir Download
user@excellondonsrv2:~$ cd Download/

Requisitos para su instalación en una distribución Linux


Según indica el manual, Nagios solo necesita de una máquina con Linux (o una variante de UNIX) ejecutándose, que tenga acceso a red y un compilador de C instalado (si se quiere instalar desde el código fuente).
No estamos obligados a utilizar los CGIs que se incluyen con Core Nagios. Sin embargo, si se decide utilizarlas, es necesario tener instalado el software siguiente:
1.- Un servidor Web (preferiblemente Apache).
2.- La librería GD de Thomas Boutell versión 1.6.3 o superior (que es necesaria para las CGIs “statusmap” y “trends”)
3.- PHP
A lo largo de las siguientes entradas, procederemos a resolver todas las dependencias de librerías que surja para la correcta instalación y configuración de Nagios Core en una distribución Debian 6.0.4 Squeeze.