Bien, ¿continuamos donde lo dejamos? Tenemos nuestro nagios recien instalado y ahora toca configurarlo, plasmar la topología de nuestra red y monitorizar algunos servicios básicos.
El primer archivo que tenemos que tocar es /usr/local/nagios/etc/nagios.cfg
. En el, entre otras cosas, se dicen los archivos de configuración que nagios tendrá en cuenta. En el apartado correspondiente a los objetos, que es lo único que vamos a tocar, localizamos la entrada correspondiente al fichero activo como ejemplo (linux.cfg
). Comentamos la línea correspondiente a este fichero e introducimos una nueva con el archivo cfg que usaremos y que se llamará, por ejemplo, mired.cfg
. Editamos el archivo nagios.cfg
e introducimos los siguientes cambios (en negritas):
# Definitions for monitoring the local (Linux) host
# cfg_file=/usr/local/nagios/etc/objects/linux.cfg# Definición de nuestra pequeña red local de ejemplo
cfg_file=/usr/local/nagios/etc/objects/mired.cfg
La red que vamos a definir como ejemplo constará de dos servidores windows, dos linux (uno de ellos el propio que alberga a Nagios), un router que nos da salida a Internet y un switch al que están conectados todos ellos. Vamos a crear el archivo mired.cfg en el directorio especificado y en el incluiremos la definición de estos objetos:
define host{
use linux-server
host_name nagios
alias Nagios Server
address 127.0.0.1
}define host{
use generic-switch
host_name switch#1
alias Switch
address 192.168.0.2
parents nagios
}define host{
use generic-switch
host_name router#1
alias Router ADSL
address 192.168.0.1
parents switch#1
}define host{
use linux-server
host_name intranet
alias Servidor Linux
address 192.168.0.3
parents switch#1
}define host{
use windows-server
host_name windows#1
alias Servidor principal del dominio
address 192.168.0.4
parents switch#1
}define host{
use windows-server
host_name windows#2
alias Servidor secundario del dominio
address 192.168.0.5
parents switch#1
}
Como podeis ver las definiciones son bien sencillas. Esta simpleza deriva de que Nagios usa una estructura jerárquica en la que cada objeto hereda las características definidas previamente en las plantillas que está usando. La declaración de estas plantillas se hace en el archivo templates.cfg
. Allí podemos ver, por ejemplo, el contenido del objeto linux-server que, a su vez, se deriva de otro denominado generic-host. Por el momento os digo esto sólo por culturilla porque no nos va a hacer falta. Nos basta con saber que tenemos disponibles las siguientes plantillas para empezar a trabajar con ellas:
- linux-server
- windows-server
- generic-printer
- generic-switch
Otra cosa interesante es la clausula parents
mediante la que especificamos las conexiones entre los diferentes hosts. Como veis la única máquina a la que no le hemos asignado un padre es a la que tiene Nagios instalado. Pensad que esa máquina será el corazón de nuestra red de monitorización porque es desde ella desde donde se ejecutaran todos los comandos.
Aunque aquí no aparece ninguna, una máquina puede tener más de un host como padre (imaginaos una estructura de switches con conexiones redundantes entre ellos). Para ello basta con especificar los nombres de todos los padres que consideremos necesarios separados por comas.
A continuación y en el mismo fichero añadiremos las definiciones necesarias para crear grupos y organizar nuestros objetos y para monitorizar un primer servicio común a todos ellos: el PING
define hostgroup{
hostgroup_name linux-servers
alias Servidores Linux
members nagios, intranet
}define hostgroup{
hostgroup_name windows-servers
alias Servidores Windows
members windows#1, windows#2
}define hostgroup{
hostgroup_name switches
alias Electrónica de red
members switch#1, router#1
}define service{
use generic-service
host_name nagios, intranet, switch#1, router#1, windows#1, windows#2
service_description PING
check_command check_ping!200.0,20%!600.0,60%
normal_check_interval 5
retry_check_interval 1
}
La definición de los grupos es autoexplicativa ¿verdad? Luego nos serviran para organizar las vistas adecuadamente. Y desde luego que esta clasificación no es obligatoria. Podeis crear grupos en función del entorno donde estén las máquinas (desarrollo, preproducción, producción), la localización geográfica, el color de la carcasa… a vuestro rollo, vamos.
Para los servicios quizás sea necesario contar algunas cosas más. Como podemos ver el servicio que hemos definido también deriva de un objeto denomimado generic-service y que también se encuentra en el archivo templates.cfg
. Podemos echarle allí un vistazo a esa definición pero por el momento no conviene que os despisteis y lo más interesante es la linea etiquetada como check_command que es donde realmente invocamos al comando que se va a encargar de monitorizar el servicio con una curiosa estructura de argumentos separados mediante signos de exclamación. Para comprender lo que estamos haciendo realmente tenemos que echar mano del fichero commands.cfg. Alli buscamos la definición del comando check_ping:
# ‘check_ping’ command definition
define command{
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}
$USER1$ es una variable que apunta al directorio donde se encuentran los plugins (/usr/lib/nagios/plugins/
) y $HOSTADDRESS$ es la IP del host que estamos monitorizando. Los argumentos que invocamos separados por signos de exclamación se sustituyen aquí por los $ARG1$ y $ARG2$. Es decir, cuando Nagios lanza esta comprobación para, por ejemplo, la máquina que aloja nuestra intranet está ejecutando lo siguiente:
/usr/lib/nagios/plugins/check_ping -H 192.168.0.3 -w 200.0,20% -c 600.0,60% -p 5
No creo que por el momento merezca la pena meterse en muchas interioridades pero básicamente lo que hacemos (y esto es común para casi todos los scripts que monitorizan servicios en Nagios) es pasar un umbral que consideraremos como warning y otro como critical (-w y -c respectivamente). Si te interesa saber más sobre lo que realmente estás haciendo basta con que ejecutes el comando con un -h.
Conocer como funcionan realmente los comandos de nagios es muy importante porque cuando empecemos a desarrollar nuestros propios scripts o queramos modificar los que vienen por defecto lo mejor es ejecutarlos directamente desde línea de comando y comprobar la salida que dan hasta que estemos satisfechos.
Y, si os parece, lo dejamos aquí por el momento. En la próxima entrega añadiremos algunos servicios más y adornaremos con iconos apropiados el mapa de nuestro sistema.
Buenas tardes alguien sabe como acceder a nagios via web desde otra pc de la red, puedo accesar desde el mismo linux pero ya en otra pc no hay paso, hice ping a la ip y me responde bien pero no me deja entrar al nagios, tengo configurada mi laptop con la ip 192.168.150.3 y el nagios esta en linux con la ip 192.168.150.2 estamos en mismo rango pero no puedo entrar, si alguien sabe me gustaria me ayudaran con el caso, saludos.
Hola. Exelente Tutorial y como dices, muestra lo fácil que puede resultar ser Nagios.
Pero quisiera preguntarte si de casualidad ya tendrás la tercera parte.
Gracias por tu excelente aporte.
Si, Gustavo, si que está. Lo que pasa es que no se porque este plugin de «enlaces relacionados» no lo muestra. Aquí te dejo el enlace:
Configurando Nagios (y III)
Muchas gracias, venia buscando desde hace un tiempito el uso del Nagios, y que mejor que este post; quisiera que me guiaras en algo, se ha instalado uan red inalambrica en la ciudad de ica y se quiere monitorear esta red, pasare a describir los puntos claves:
La red cuenta con 3 nodos, el punto de partida para los otros 2 se encuentra en una universidad.
Cada nodo cuenta con 1 antena y placa alix, software libre llamado Voyage, la ip de cada es 10.x.x.x
Se quiere monitorear la red desde una de las pc del lab de la universidad, la antena de la universidad se encuentra conectada al router de un lab, y la pc donde se quiere monitorear se encuentra conectada al mismo router.
Se esta usando un programa para redireccionar la ip dinamica del router a una ip fija, el programa es el DynDNS, como haria para monitorear las redes instalas que es lo que me interesa,
Se que el primero ip es el 192.168.x.x, los otros ya son 10.x.x.x, quisiera saber si se puede monitorear redes inalambricas y si se puede agradeceria algun aporte……
de antemano muchas gracias
yo ya tengo configurado nagios pero me sale el mismo error
The requested URL /nagios/cgi-bin/statusmap.cgi was not found on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch Server at
y ya instale todas las liberias y las trato de instalar otra ves y me dice que estan en la version mas recienteque podra ser???
por que e tratadode buscar el problema y no lo encuentro….
yo lo solucione instalando libgd2-xpm libgd2-xpm-dev
aptitude install libgd2-xpm libgd2-xpm-dev
Ricardo: suele ser por que no tienes las librerías gráficas necesarias. Léete el artículo sobre la instalación que allí se cuentan las que necesitas.
Jose Maria, se agradece la orientación, muy bueno tu manual ….
Tengouna consulta:
Al tratar de ver a travez de la consola web el status map, me arroja el siguiente error:
Not Found
The requested URL /nagios/cgi-bin/statusmap.cgi was not found on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch Server at
Porque se puede estar generando, he revisado paso a paso la instralación, pero no encuentro el problema..
Gracias por tu ayuda.-
HOLA MARIO,
HE INSTALADO RECIEN NAGIOS 3.0.6 Y TENGO PROBLEMAS CON EL STATUSMAP.CGI ? ME LASE EL SIGUIENTE ERROR EN NAGIOS :
??HTTP 404 – Archivo no encontrado
Internet Explorer?
BUSQUE EL ARCHIVO EN EL SERVIDOR Y ESTE NO SE ENCUENTRA, QUE PUEDO HACER? SABES SI ESTA NUEVA VERSION NO LO TRAE??? HE VISTO QUE A MUCHOS LES PASA LO MISMO? QUE PUEDE SER? ME GUSTARIA QUE ME AYUDARAS PORFA?
obs:lo busque ne la siguiente ruta :::
/usr/local/nagios/sbin/
solo aparece esto:
-rwxrwxr-x 1 nagios nagios 217672 dic 9 16:03 avail.cgi
-rwxrwxr-x 1 nagios nagios 217012 dic 9 16:03 cmd.cgi
-rwxrwxr-x 1 nagios nagios 184840 dic 9 16:03 config.cgi
-rwxrwxr-x 1 nagios nagios 234024 dic 9 16:03 extinfo.cgi
-rwxrwxr-x 1 nagios nagios 172584 dic 9 16:03 history.cgi
-rwxrwxr-x 1 nagios nagios 168488 dic 9 16:03 notifications.cgi
-rwxrwxr-x 1 nagios nagios 160264 dic 9 16:03 outages.cgi
-rwxrwxr-x 1 nagios nagios 164808 dic 9 16:03 showlog.cgi
-rwxrwxr-x 1 nagios nagios 225832 dic 9 16:03 status.cgi
-rwxrwxr-x 1 nagios nagios 180776 dic 9 16:03 statuswml.cgi
-rwxrwxr-x 1 nagios nagios 168488 dic 9 16:03 statuswrl.cgi
-rwxrwxr-x 1 nagios nagios 184904 dic 9 16:03 summary.cgi
-rwxrwxr-x 1 nagios nagios 180840 dic 9 16:03 tac.cgi
Quedo atento a sus noticias
SLDS.,
Hola, instale el monitoreo pero realice algunos cambios, estos cambios son el nombre de estos equipos ademas de crear nuevos grupos, a raiz de estos cambios no me muestra todos los iconos de los equipos que estoy monitoreando, creo que lo que esta haciendo es buscar aun los equipos que estaban antes de modificarlos y cuasa algun conflicto esto, si me pueden orientar para saber que necesito cambiar, GRACIAS.
HOLA, TENGO UN PROBLE CON LA INSTALACION DE NAGIOS Y QUISIERA QUE ME AYUDARAN, AL ENTRAR A CONFIGURAR TODO LO DE LARED ME VOTA UN ERROR QUE NO ENCUENTRA LOS CGI.POR FAVOR AYUNDENME!!!!!!!!!
Si, si lo hay Jorge. Fíjate bien en el segúndo capítulo del manualillo que tienes ya visible el mapa gráfico que te genera Nagios y se ve más claramente.
Switch con IP? Yo aqui lo que veo es un router ADSL conectado a un switch y 4 equipos. Nagios:192.168.0.2(esta es la ip que le has puesto el switch). Linux server2:192.168.0.3. Windows1:192.168.0.4, Windows2:192.168.0.5 y el router adsl que seria el .1 No veo ningun switch con IP. la IP que marca el switch es la ip de el servidor linux con Nagios ¿no?
Gracias por el manual y saludos.
quede con duda con el templates.cfg «que lleva» y el mira.cfg a que hace referencia al hosts.cfg ??
Hola Juan Carlos. Si el switch no tiene IP no se puede monitorizar desde nagios. En estos casos y si quieres que figure en tu mapa por coherencia lo que yo suelo hacer es crear un objeto con el icono de un switch y la dirección IP 127.0.0.1 de forma que siempre que la máquina con nagios esté funcionando te lo va a detectar también como activo. Realmente no estás midiendo nada pero te sirve como representación simbólica de tu red.
Hola que tal, he seguido tu manual y estoy probando Nagios.. pero tengo una confusion.. quisiera probar con una red muy pequeña para ir avanazando poco a poco.. Asi que quisiera agregar a mi red solo lo siguiente:
Host 1: localhost —> Donde esta corriendo mi nagios..
Host 2: Switch 1 —> padre –> nagios
Host 3: Maquina con Debian– > padre –> Switch 1
mi duda es la siguiente.. el switch q tengo no es configurable es decir no puedo ver su ip.. o no se como se la asigna.. como puedo agregar este host?? q coloco en el campo address ?? es un simple switch de 8 puertos..
muchas gracias..! espero que me puedas ayudar!
«…La definición de los grupos es auto explicativa ¿verdad? Luego nos servirán para organizar las vistas adecuadamente…»
He configurado mi nagios con varios grupos bien definidos pero aun no logro que en el cgi se organice la información.
No se si podrías mas adelante guiarnos en cómo organizar las vistas.
Desde ya muchas gracias.
Muchas gracias Lore. La semana que viene si no tengo mucho lío lo termino. Pendientes quedamos de tus apuntes acerca del Destripador de Contraseñas.
Este howto está siendo estupendo. Mi del.icio.us te lo agradece 😉
Yo tengo pendiente un manual de John the Ripper. A ver cuando empieza a ver la luz…
offtopic
Te he dejado un meme en mi blog