Tenía pendiente instalar una máquina nueva con Debian 4 para migrar a ella los servicios de monitorización de mi centro de trabajo. Las versiones de Nagios etiquetadas como stable en esta nueva Debian son la 1.4 y la 2.6 así que como quería probar la nueva versión 3 y no encontré ningún repositorio donde estuviera en forma de paquete .deb me decidí por compilarla e instalarla para evaluar si es lo suficientemente estable como para usarla en producción. El proceso ha sido bien sencillo así que dejo aquí un breve «paso a paso» para quien quiera animarse.
Partimos de una instalación limpia de debian etch con apache2. Lo primero que necesitamos es instalar nuestro entorno de compilación. Hay un paquete en debian con todo lo que necesitas para ello.
apt-get install build-essential
El segundo paso es instalar las librerías necesarias para, posteriormente, compilar nagios. Necesitamos las jpeg, png y gd2. Para las dos primeras no tuve ningún problema en instalar las que vienen con la distribución estable:
apt-get install libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev
Para las gd2 sin embargo me lié un poco ¿necesito las que traen soporte para xpm o las que no?¿es indiferente, tal vez? Cómo no tenía ni idea y no encontré información referente a ello visité la página del proyecto y vi que allí no hacían distinción alguna… Reconozco que lo de los formatos gráficos no es lo mío (ni los de audio, ni los de video, ni…) así que tiré por la calle de enmedio y decidí bajarme los fuentes y compilarlos también:
cd /tmp
wget -c http://www.libgd.org/releases/gd-2.0.35.tar.gz
tar xzf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure
make
make install
Lo siguiente es crear los grupos y usuarios necesarios para nagios:
useradd nagios
passwd nagios
groupadd nagios
groupadd nagcmd
usermod -G nagios nagios
usermod -G nagios josemaria
usermod -G nagcmd nagios
usermod -G nagcmd www-data
Con esto hemos creado un nuevo usuario (nagios), le asignamos una contraseña, creamos dos grupos (nagios y nagcmd). Añadimos nagios a ambos grupos, el usuario www-data (el que usa Apache) al grupo nagcmd y, por comodidad aunque no es indispensable, nuestro usuario común al grupo nagios para que la edición de ficheros de configuración nos resulte ma? cómoda.
Ya lo tenemos todo listo. Ahora toca bajarse Nagios, compilarlo e instalarlo. Visita la página oficial para asegurarte de que usas las últimas versiones disponible. Por lo demás, la secuencia usando las versiones actuales es la siguiente:
cd /tmp
wget -c http://tinyurl.com/2jyzao/nagios-3.0a5.tar.gz
wget -c http://tinyurl.com/2mqzzk/nagios-plugins-1.4.9.tar.gz
tar xzf nagios-3.0a5.tar.gz
cd nagios-3.0a5
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
cd ..
tar xzf nagios-plugins-1.4.9.tar.gz
cd nagios-plugins-1.4.9
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
Creamos una contraseña para el acceso web del usuario nagiosadmin y reiniciamos apache:
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
/etc/init.d/apache2 reload
Y por último arrancamos nagios y, si no presenta ningún error, creamos un enlace para que de ahora en adelante arranque de forma automática al iniciar la máquina:
/etc/init.d/nagios start
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Y ya. Con esto nuestro nagios debe de estar totalmente funcional y accesible vía web a través de la URL «http://hostname/nagios». La configuración por defecto monitoriza algunos servicios en la propia máquina dónde se instala y nos debe de bastar para saber que funciona correctamente. Para sacarle partido debemos de hacer algunas cosillas más que os enumero, aunque con menor detalle, a continuación.
- Primero y fundamental: hay que plasmar la topología de nuestra red a través de los ficheros de configuración de nagios. Dichos ficheros se encuentan en el directorio «/usr/local/nagios/etc/objects». Allí debemos de encontrar al menos un fichero llamado localhost.cfg (el único activo por el momento) y que nos puede servir como ejemplo de base. No le echeis cuenta a quien os diga que la configuración de nagios es enrevesada y echadle un vistazo libres de prejuicios, ya vereis que no es así. La guía de configuración debería de ser una buena referencia para este paso.
- Si queremos recibir notificaciones por email de las alertas de nuestra red es preciso que la máquina tenga postfix instalado y correctamente configurado y que editemos el fichero «/usr/local/nagios/etc/objects/contacts.cfg» y cambiemos la dirección de correo que aparece asociada por defecto al usuario nagiosadmin por la nuestra.
- Si queremos personalizar con iconos apropiados los hosts que aparecen en mapas y fichas de información debemos de descargarnos una o varias colecciones de ellos del apartado correspondiente (logos and images) de nagios exchange, descomprimirlas y dejar los iconos en el directorio «/usr/local/nagios/share/images/logos/».
- Y ya que estamos por Nagios Exchange conviene echarle un vistazo también a la sección de Check Plugins. En ella encontraremos una gran colección de scripts para la monitorización de los más variados servicios y que complementan fabulosamente a los que nagios trae de base y hemos instalado ya.
Y poco más… aún no he plasmado todos los hosts y servicios de mi red pero con una horita escasa de trabajo este es el resultado. Cuando concluya prometo hacer una segunda entrada contando en detalle la configuración para los más perezosos que no quieran leerse la documentación en inglés.
al tratar de instalar los plugins me danda error:
gzip:stdin:not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors
necesito ayuda con eso
Perdona la siguiente pregunta pero es que soy novatin:
Como desinstalo el nagios una vez instalado siguiendo tu guia?
A mi no me dio problemas la nueva version, pero no le entiendo bien eso de configurar el OBJECT. para que que ya jale bien todo y sin problemas.
De ante mano gracias, esta muy interesante esto.
En la empresa realizamos administración remota de servidores GNU/Linux & BSD por lo que el nagios lo usamos bastante.
Al intentar compilar la versión 3.x puede presentarse un problema con Debian Etch con las libtool, lo que impedirá realizar la compilación.
Una cosa que puede producirse con Etch y con la versión 3.0b7 de nagios (no he probado la anterior) es que pueden tener instaladas las libtool (libltdl0-dev). Sin embargo el configure del nagios dirá que está todo ok, pero no compilara y saldrá un error como este:
# make all
cd ./base && make
make[1]: Entering directory `/tmp/nagios-3.0b7/base’
gcc -g -O2 -DHAVE_CONFIG_H -DNSCORE -c -o broker.o broker.c
In file included from ../include/nebcallbacks.h:29,
from broker.c:30:
../include/nebmodules.h:80: error: expected specifier-qualifier-list before ‘lt_ptr’
make[1]: *** [broker.o] Error 1
make[1]: Leaving directory `/tmp/nagios-3.0b7/base’
Lo que se requiere es desinstalar las libltdl0-dev e instalar las libltdl3-dev
Con eso, se realizara la compilación sin problemas
Hola, alguien conoce la existencia de alguna herramienta de monitorizacion de aplicaciones corporativas, usando para ello los servicios nagios.
Muchas gracias, un saludo
Hola Cristian. Yo siempre que he usado el nagios con soporte mysql he tirado del paquete de debian (nagios-mysql). Es una versión más antigua pero creo que casi todo lo que he puesto por aquí te va a servir para configurarlo.
Hola,
bastante interesante tu articulo, queria hacerte una pregunta.
me interesaria poder compilar nagios 3 con soporte mysql. resulta que lo tengo andando por defecto y derrepente se cae y pierde toda la informacion ingresada. pierdo comentarios, pierdo los estados asignados a los servidores, etc….
Creo que si envio la informacion a una base de datos tendria menos posibilidades de que pasara esto y no encuentro info en la red como para realizar esto.
alguna sugerencia??
Saludos desde CHile….
Quisiera saber si alguien me puede ayudar a encontrar una aplicacion para pasar de jpg a gd2 para poder poner en el status map.
Gracias, muy buena la info!!!
Para instalar gd2 en ubuntu:
sudo apt-get install libgd-gd2-perl libgd2-xpm libgd2-xpm-dev libgdchart-gd2-xpm
Saludos.
José: lo siento, ha sido culpa mía. O, más bien, del tipo de letra que he usado para escribir los bloques de instrucciones que tiene la «gracia» de hacer que dos guiones seguidos se transformen en un guión largo. Lo peor de todo es que ya me ha ocurrido esto mismo otras veces… soy un despistado.
Ya está corregido en el texto. El comando donde te falla debería de ser así:
./configure --with-command-group=nagcmd
Muy interesante, pero te cuento que me quede en la parte de compilación e instalación. Me puedes ayudar. Precisamente aqui me quede:
:/tmp/nagios-3.0a5# ./configure ??with-command-group=nagcmd
configure: error: invalid variable name: ??with-command-group
Sinceramente no entiendo, ayer instale UBUNTU 7.04 y quiero experimentar con nagios, no se nada de nada.
Se que este no es un foro pero por favor ayudame.
Slds.
No Ángel. A lo mejor te confundes con MRTG que si se apoya por completo en SNMP. Nagios puede monitorizar cualquier cosa usando plugins que pueden estar escritos en cualquier lenguaje y usar cualquier protocolo.
En cuanto a un manual de SNMP ¿Qué tal si empiezas por la wikipedia y los enlaces que te proporcionan en ella?
Wikipedia::SNMP (castellano)
Wikipedia::SNMP (inglés)
Buenas Tardes.
Al hilo de nagios, ¿Alguien me puede pasar o decir donde encuentro un manual del protocolo SNMP que si no entiendo mal es sobre el que se desarrolla nagios.
Saludos a todos.
GRACIAS
sxr: se llama Browser Sniff.
Tal ves esto es algo fuera de tema. pero como se llama el widget de wordpress, el que se esta usando en blog que dice:
Usando Mozilla Firefox 2.0.0.4 sobre Windows XP
Quiero ponerlo en mi blog.
Creo que no, sinceramente!!!
Dabo: Gracias. Y bienvenido de vuelta. Se te ha echado de menos.
Carmen: hay gente que come carne de camellos con pelo. Será peor, digo yo ¿no?
¿Y después de hacer esto sobrevives?? Qué cosas haces!!
Como siempre, un post muy interesante, a un colega mío le vendrá muy bien ;D.
Saludos y a seguir así amigo!
Dabo -;)