Sei sulla pagina 1di 18

Introducción

La presente guía tiene como objetivo el guiar al lector en la configuración y puesta en marca de un
sistema de monitoreo utilizando el programa de código abierto Nagios sobre un sistema CentOS 5.3 .

Este documento se encuentra dividido en 4 partes principalmente:


Parte 1: Instalación y puesta en marcha del sistema Nagios.
Parte 2: Instalación y puesta en marcha de NRPE para el monitoreo de equipos Linux.
Parte 3: Instalación y puesta en marcha de Nagisk para el monitoreo Asterisk.
Parte 4: Introducción a la configuración de archivos de monitorización.

Este manual nos ayudará a tener un servicio de monitorización de servidores Linux mas el plus de
poder monitorizar algunos recursos Asterisk.

La importancia de la monitorización de servidores Asterisk.


El realizar una implementación seria y estable de un IP-PBX basado en Asterisk no termina cuando
realizamos la primera llamada, a estos equipos se les debe de dar servicio constantemente para
evitar problemas, Este servicio consiste en la instalación de actualizaciones, mantenimiento en
óptimas condiciones del hardware, limpieza del equipo y monitoreo del mismo.

El monitorizar nuestros servidores nos permite adelantarnos a futuras fallas y estar atentos a niveles
críticos que estos puedan alcanzar , tales como gran consumo de RAM, poco espacio en disco duro ,
desconexión generalizada de anexos SIP, estado de canales , uso de partición SWAP y muchas
cosas mas.

Si bien Nagios no esta diseñado para el monitoreo de Asterisk, existe un parche que nos ayuda a esto
, haciendo de este sistema una herramienta mas interesante ya que no solo nos permitirá medir
niveles de disco duro y RAM , sino también monitorizar nuestras extensiones SIP , versión de Asterisk
y algunas otras cosas que nos ayudaran a tener nuestro IP-PBX bajo control.

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 1 de 18 info@nextortelecom.com México, D.F. C.P. 11560
¿Qué es Nagios?
Nagios es un sistema de código abierto para monitorización de redes que vigila los equipos y
servicios que se especifiquen, alertando cuando el comportamiento de los mismos no sea el deseado.

Entre sus características principales figuran la monitorización de servicios de red, la monitorización


de los recursos de sistemas hardware , independencia de sistemas operativos, posibilidad de
monitorización remota mediante túneles SSL cifrados o SSH.

Otra de las características principales de Nagios es la posibilidad de programar plugins específicos


para monitorizar diversos sistemas , tal es el caso de Asterisk.

Nagios nos permite recibir alertas vía correo electrónico o mensajes SMS cuando alguno de los
servicios monitorizados deja de funcionar o sobre pasa ciertos parámetros establecidos como puede
ser el espacio libre en disco duro.

Prerrequisitos
Para esta guía tomaremos como un hecho que ya tiene instalado en su servidor la versión mas
reciente de apache, y los siguientes paquetes.
gcc
glibc
glibc-common
gd
gd-devel
ssl-headers

En caso de no tener estos últimos paquetes podemos instalarlos fácilmente con el siguiente comando:
yum install httpd gcc glibc glibc-common gd gd-devel

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 2 de 18 info@nextortelecom.com México, D.F. C.P. 11560
yum install openssl-devel

Parte 1: Instalación y Puesta en Marcha del Sistema Nagios.

Creamos el usuario nagios


useradd -m nagios

Generamos el grupo nagcmd para permitir el envío de comandos desde la consola web y agregamos
los usuarios nagios y apache
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache

Generamos la carpeta donde descargaremos nagios


mkdir /opt/nagios

Descargamos dentro de nuestra nueva carpeta:


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

Nagios Plugins 1.4.14


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

Nagios nrpe 2.12 (el cual nos servirá para monitorizar servidores Linux remotos)
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
*Para buscar la versión estable mas reciente visita http://www.nagios.org/download/download.php

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 3 de 18 info@nextortelecom.com México, D.F. C.P. 11560
Descomprimimos la carpeta de nagios
cd /opt/nagios
tar xzf nagios-3.2.0.tar.gz
cd nagios-3.2.0

Configuramos y Compilamos
./configure --with-command-group=nagcmd
make all

Compilamos binarios, init script y archivos de ejemplos de configuración


make install
make install-init
make install-config
make install-commandmode
*con esto nagios queda instalado en /usr/local/nagios

Instalación de interfaz Web y Creación de Usuario Admin


cd /opt/nagios/nagios-3.2.0
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
service httpd restart
*no olvide la contraseña que especifico ya que la requerirá para ingresar a la interfaz web

Instalación y compilación de Nagios Plugins


Descomprimimos
cd /opt/nagios
tar xzf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 4 de 18 info@nextortelecom.com México, D.F. C.P. 11560
Configuramos y Compilamos
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

Verificamos los archivos de configuración


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

Total Warnings: 0
Total Errors: 0

Permitimos que Nagios y apache inicien al iniciar nuestro sistema


chkconfig --add nagios
chkconfig nagios on
chkconfig httpd on

Iniciamos Nagios
service nagios start
*La interfaz web quedó instalada en /usr/local/nagios/share/
**El archivo http.conf se añadio a /etc/httpd/conf.d/nagios.conf

Para Ingresar al portal del Nagios utilizar http://dirección-servidor/nagios , utilizar el usuario


nagiosadmin y la contraseña que le asignamos en pasos anteriores

Parte 2: Instalación y puesta en marcha de NRPE para el monitoreo

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 5 de 18 info@nextortelecom.com México, D.F. C.P. 11560
de equipos Linux.

Instalación de NRPE en Host Remoto

Instalamos Openssl
yum install openssl-devel

Generamos el usuario nagios (debemos ser usuario root para ello)


/usr/sbin/useradd nagios
passwd nagios

Descargamos y Descomprimimos Nagios Plugins


mkdir /opt/nagios
cd /opt/nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
tar xzf nagios-plugins-1.4.14.tar.gz

Compilamos e Instalamos Nagios Plugins


cd nagios-plugins-1.4.14
./configure
make
make install

Cambiamos Permisos
chown nagios.nagios /usr/local/nagios

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 6 de 18 info@nextortelecom.com México, D.F. C.P. 11560
chown -R nagios.nagios /usr/local/nagios/libexec

Instalamos Xinetd
yum install xinetd

Descargamos y Descomprimimos el Demonio NRPE


cd /opt/nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12

Compilamos e Instalamos NRPE


./configure
make all

make install-plugin
make install-daemon
make install-daemon-config

Instalamos el Demonio NRPE Como un Servicio en Xinetd


make install-xinetd

Editamos el archivo /etc/xinetd.d/nrpe para agregar la ip de nuestro servidor Nagios


vi /etc/xinetd.d/nrpe

only_from = 127.0.0.1 <direccion-nagios>


*Aquí podemos ingresar la IP Pública de nuestro servidor Nagios en caso de que no se encuentre dentro de la misma red.
De ser así será necesario redirigir el puerto 5666 TCP al servidor que queremos monitorizar.

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 7 de 18 info@nextortelecom.com México, D.F. C.P. 11560
Agregamos la siguiente línea para nuestro demonio NRPE en el archivo /etc/services
vi /etc/services
nrpe 5666/tcp # NRPE

Reiniciamos Xinetd
service xinetd restart

Probamos el demonio NRPE localmente


netstat -at | grep nrpe

Debemos obtener la siguiente salida:


tcp 0 0 *:nrpe *:* LISTEN

En caso de no obtener dicha salida debemos revisar lo siguiente:


• Se agrego correctamente la entrada en el archivo /etc/services
• La línea only_from del archivo /etc/xinetd.d/nrpe contiene 127.0.0.1
• Xinetd esta correctamente instalado y corriendo

Verificamos que el demonio NRPE esta correctamente instalado, para ello utilizaremos el plugin
check_nrpe que instalamos para pruebas
/usr/local/nagios/libexec/check_nrpe -H localhost

Debemos de obtener la siguiente salida:


NRPE v2.12

Los comandos que se utilizaran para medir los recursos locales se encuentran configurados dentro de
el archivo /usr/local/nagios/etc/nrpe.cfg, mas adelante veremos como podemos personalizar estos

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 8 de 18 info@nextortelecom.com México, D.F. C.P. 11560
comandos para configurar nuestros parámetros de seguridad. Para probar los comandos configurados
por defecto podemos correr cualquiera de los siguientes comandos:

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users


/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_zombie_procs

Instalación de NRPE en Servidor Nagios de Monitoreo

Descomprimimos el archivo check_nrpe que descargamos en un principio


cd /opt/nagios
tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12

Configuramos y compilamos en archivo NRPE


./configure
make all
make install-plugin

Probamos la comunicación con el demonio NRPE de nuestros server a monitorizar


/usr/local/nagios/libexec/check_nrpe -H <ip-servidor-monitorizar>
*Es indispensable hacer las redirecciones o reglas necesarias en nuestro router para que el servidor de monitoreo se pueda
comunicar con el servidor a monitorizar Es necesario dirigir el puerto 5666 TCP a nuestro servidor a monitorizar

Debemos de obtener:
NRPE v2.12

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 9 de 18 info@nextortelecom.com México, D.F. C.P. 11560
En caso de no obtener dicha salida debemos revisar lo siguiente:
• Verificar que ningún firewall este bloqueando la comunicación entre ambos servidores.
• Verificar que el demonio NRPE este funcionando correctamente en el servidor a monitorizar.
• Asegúrese que el servidor a monitorizar no tenga tablas IP que bloquen el trafico de entrada o
salida.

Editamos el archivo /usr/local/nagios/etc/elastix/commands.cfg para poder usar el plugin


vi /usr/local/nagios/etc/elastix/commands.cfg

define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Hasta el momento ya tenemos nuestro servidor de monitoreo instalado con Nagios y check_nrpe ,
también hemos configurado exitosamente el demonio nrpe en nuestro servidor a monitorizar que nos
permite tener control sobre el consumo de recursos, ahora veremos como instalar Nagisk para el
monitoreo de algunos servicios Asterisk y una breve introducción a como configurar los archivos
necesarios para monitorizar servicios en nuestros servidores.

Parte 3: Instalación y puesta en marcha de Nagisk para el


monitoreo Asterisk.

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 10 de 18 info@nextortelecom.com México, D.F. C.P. 11560
Descargamos Nagisk en nuestro servidor Asterisk a monitorear donde instalamos el demonio NRPE.
cd /opt/nagios
wget http://downloads.sourceforge.net/sourceforge/nagisk/nagisk-1.1.1.tgz
*Para buscar la ultima versión estable visita https://sourceforge.net/projects/nagisk/

Descomprimimos y movemos el archivo nagisk.pl


tar zxvf nagisk-1.1.1.tgz
cd nagisk
cp nagisk.pl /usr/local/nagios/libexec

Cambiamos Permisos
chown nagios:nagios /usr/local/nagios/libexec/nagisk.pl
chmod 750 /usr/local/nagios/libexec/nagisk.pl

Agregamos la siguiente linea en el archivo /etc/sudoers


nagios ALL= NOPASSWD: /usr/sbin/asterisk
*Como es un archivo de solo lectura debemos guardar con :x!

En el archivo /usr/local/nagios/etc/nrpe.conf podemos agregar cualquiera de las siguientes líneas


según lo que queramos monitorizar:

command[check_asterisk_versión]=/usr/local/nagios/libexec/nagisk.pl -c versión

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 11 de 18 info@nextortelecom.com México, D.F. C.P. 11560
command[check_asterisk_peers]=/usr/local/nagios/libexec/nagisk.pl -c peers
command[check_asterisk_channels]=/usr/local/nagios/libexec/nagisk.pl -c channels
command[check_asterisk_zaptel]=/usr/local/nagios/libexec/nagisk.pl -c dahdi
command[check_asterisk_span]=/usr/local/nagios/libexec/nagisk.pl -c span -s 1

Reiniciamos el servicio NRPE


/etc/init.d/nrpe restart

Parte 4: Introducción a la configuración de archivos de


monitorización.

• El archivo de configuración general de Nagios lo encontraremos en


/usr/local/nagios/etc/nagios.cfg

• Los archivos de configuración para el monitoreo de los equipos los encontramos en /usr/local/
nagios/etc/objects/

Primero Ingresaremos al archivo general de configuración y agregaremos algunas líneas para que el
sistema lea nuestros archivos de configuración que crearemos en la carpeta /usr/local/nagios/etc/linux
vi /usr/local/nagios/etc/nagios.cfg

Generamos la carpeta /usr/local/nagios/etc/elastix


mkdir /usr/local/nagios/etc/elastix

Buscamos la sección:
# You can also tell Nagios to process all config files (with a .cfg

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 12 de 18 info@nextortelecom.com México, D.F. C.P. 11560
# extension) in a particular directory by using the cfg_dir
# directive as shown below:
cfg_dir=/usr/local/nagios/etc/elastix -- Agregamos esta Línea
#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

Ahora Generaremos algunos templates que aplicaremos a nuestros servidores linux , lo que nos
ahorrara tiempo en configuración de archivos.
vi /usr/local/nagios/etc/linux/templateelastix.cfg

Agregamos las siguientes lineas para especificar un template para equipos Linux
define host{
name elastix ; Name of this template
use generic-host ; Inherit default values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS - ITS A TEMPLATE
}

Si nos fijamos con cuidado podemos observar que se está utilizando el template generic-host , mismo

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 13 de 18 info@nextortelecom.com México, D.F. C.P. 11560
que se encuentra especificado en el archivo localhost.cfg.

Generamos el archivo donde daremos de alta nuestros servidores


vi /usr/local/nagios/etc/elastix/servers.cfg

Agregamos los hosts en el archivo servers.cfg


define host{
use elastix ; Inherit default values from a template
host_name Asterisk1 ; The name we're giving to this server
alias Asterisk1 ; A longer name for the server
address asterisk1.dyndns.org ; IP address of the server o Hostname
}

define host{
use elastix ; Inherit default values from a template
host_name Asterisk2 ; The name we're giving to this server
alias Asterisk2 ; A longer name for the server
address asterisk2.dyndns.org ; IP address of the server o Hostname
}

Generamos el archivo donde daremos de alta nuestros servicios a monitorear


vi /usr/local/nagios/etc/elastix/servicios.cfg

Agregamos algunos servicios en el archivo servicios.cfg


#Verifica la Carga de CPU
define service{
use generic-service
host_name Asterisk1, Asterisk2 #Lo asignamos a nuestros servidores
service_description CPU Load
servicegroups Asterisk

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 14 de 18 info@nextortelecom.com México, D.F. C.P. 11560
check_command check_nrpe!check_load
}

#Monitoriza número de usuarios loggeados


define service{
use generic-service
host_name Asterisk1,Asterisk2
service_description Current Users
servicegroups Asterisk
check_command check_nrpe!check_users
}

#Monitoriza espacio en Disco Duro


define service{
use generic-service
host_name Asterisk1,Asterisk2
service_description /dev/hda1 Free Space
servicegroups Asterisk
check_command check_nrpe!check_hda1
}

#Monitoriza uso de partición Swap


define service{
use generic-service
host_name Asterisk1,Asterisk2
service_description /dev/hda1 Free Space
servicegroups Asterisk
check_command check_nrpe!check_swap
}

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 15 de 18 info@nextortelecom.com México, D.F. C.P. 11560
Verificamos no tener errores en nuestros archivos de configuración
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Reiniciamos Nagios
service nagios restart

Algo de Configuración Avanzada

Vamos a ver un pequeño ejemplo de como establecer alertas en ciertos servicios dependiendo de
limites que nosotros establezcamos.

En nuestro servidor remoto ingresamos a /usr/local/nagios/etc/nrpe.cfg y modificamos las lineas


siguientes:
vi /usr/local/nagios/etc/nrpe.cfg

command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%


command[check_swap]=/usr/local/nagios/libexec/check_hda1 -w 20% -c 10%
*Al llegar al 20% de uso nos enviará una advertencia , llegando al 10% recibiremos una alerta crítica.

Para utilizar el parche para Asterisk podemos agregar cualquiera de los comandos mencionados
anteriormente en el archivo nrpw.cfg de nuestro servidor a monitorear.
vi /usr/local/nagios/etc/nrpe.cfg

command[check_asterisk_versión]=/usr/local/nagios/libexec/nagisk.pl -c versión
command[check_asterisk_peers]=/usr/local/nagios/libexec/nagisk.pl -c peers

En nuestro servidor de monitoreo agregamos las siguientes líneas en el archivo servicios.cfg

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 16 de 18 info@nextortelecom.com México, D.F. C.P. 11560
define service{
use elastix
host_name Asterisk1,Asterisk2
service_description Check SIP
servicegroups Asterisk
check_command check_nrpe!check_asterisk_version
}

define service{
use elastix
host_name Asterisk1,Asterisk2
service_description Check SIP
servicegroups Asterisk
check_command check_nrpe!check_asterisk_peers
}

Verificamos no tener errores en nuestros archivos de configuración


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

Reiniciamos Nagios
service nagios restart

Conclusiones

Con esta guía tendrás configurado un sistema de monitoreo para servidores Linux, aunque también

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 17 de 18 info@nextortelecom.com México, D.F. C.P. 11560
podrás monitorizar servidores windows , router , firewalls y muchas cosas mas , todo está en la forma
en la que se configuran los archivos.

En próximas ediciones agregaré un capitulo para la configuración de envío y recepción de alertas vía
correo electrónico y la utilización de grupos de servidores y usuarios.

Cualquier sugerencia o contribución es bienvenida , favor de enviarlas a


augusto.sepulveda@nextortelecom.com

Algunas Referencias:
http://blog.nicolargo.com/2008/10/superviser-asterisk-dans-nagios-grace-a-nagisk.html
http://wiki.centos.org/HowTos/Nagios
http://www.kernelhardware.org/install-nagios-on-centos-5/
http://www.nagios.org/download
http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf

Creador: Augusto Sepúlveda NZXT Telecomunicaciones de México SA de CV


Configuración Nagios en Centos Lamartine 311 Piso 1
Rev. 14/07/09 Ver. 1.0 http://www.nextortelecom.com Col. Polanco
Página 18 de 18 info@nextortelecom.com México, D.F. C.P. 11560

Potrebbero piacerti anche