Menu

Implementando Nagios o como monitorear servidores remotos (I)

15 mayo, 2012 - Linux
Implementando Nagios o como monitorear servidores remotos (I)

Bueno, continuando con  la implementacion del server en linux vamos a ver a continuacion como monitorizar los diferentes servicios que se encuentren tanto en este server como en remotos y se los pueda monitorear desde internet

Para ello vamos a utilizar el Nagios Core 3, quien rapidamente y mediante una interfaz web nos mostrara los servicios que estemos monitoreando, dandonos tambien la posibilidad de enviar mails de alerta llegado el caso.

 

#apt-get install nagios3  nagios-nrpe-plugin

 

Al finalizar la instalacion nos solicitara ingresar una contraseña para el usuario nagiosadmin y donde podremos colocar caulquiera, tal como lo venimos haciendo.

Si todo lo anterior sali bien nuestro nagios estara corriendo correctamente y podremos comenzar a monitorear desde http://tuserver/nagios3

Colocando previamente user y pass.

 

Ahora bien, nos muestra solamente el localhost y sus servicios, pero ahora como hacemos para ver otros servicios en lugares diferentes?

Bien, para ello deberemos comenzar a escribir un poco, pero no se preocupen que no es mucho 😉

el primer paso seria crear el archivo de configuracion de los host. Yo creo uno por cada host, para tener un punto de edicion mas rapido, pero es lo mismo digamos.

 

Este archivo lo coloque en /etc/nagios3/conf.d/

y se llama trabajo.cfg

 

#vim /etc/nagios3/conf.d/trabajo.cfg

 

Luego se coloca lo que deseas que monitoree, esta documentado así que no hay pierde, veamos!

##################################
# A continuacion se define el host
# Trabajo
define host{
use generic-host
host_name Trabajo
address ip.trabajo.com
}
# A continuacion se definen los servicios a monitorear de este host
#WEB
define service{
use generic-service
host_name Trabajo
service_description Web
check_command check_http
}
# Escritorio Remoto
define service{
use generic-service
host_name Trabajo
service_description  RDP
check_command check_rdp
}

 

Después … esc–> :wq y salis

 

 

Ahora hay que avisarle al nagios que comience a mirar esta configuracion, para ello la agregamos en el file de config del nagios

 

#vim /etc/nagios3/nagios.cfg

 

al fin del documento se agrega la linea de configuracion

cfg_file=/etc/nagios3/trabajo.cfg Respetando mayusculas y minusculas

esc –> :wq

 

y se restartea el servicio, para lo cual no deberia devolver ningun error

 

#invoke-rc.d nagios3 restart

 

Si te pones a mirar bien el script, esta separado en dos partes, en la primera definis el host y en la segunda los servicios.

 

En la parte de servicios no esta del todo automagico y tal vez tengas que crear tus propias rutinas de configuración, por ejemplo para el puerto 3389 tuve que crear una llamada check_rdp

 

estas estan en /etc/nagios-plugins/config/

 

Para crear una nueva solo basta con crearla  simplemente, y con solo ser llamada desde trabajo.cfg alcanza.. no hay que hacer nada mas

 

Para el caso del RDP debi crearla puesto que el puerto 3389 no tenia una rutina ya creada. Pocedi de esta forma:

 

#vim /etc/nagios-plugins/config/rdp.cfg

 

# Comando para verificar el escritorio remoto o puerto 3389
# ‘check_rdp’ command definition
define command{
        command_name    check_rdp
        command_line    /usr/lib/nagios/plugins/check_tcp -H ‘$HOSTADDRESS$’ -p 3389
        }

 

ESC –>:WQ y listo.. creado el nuevo comando para testear el rdp

************************************************************************************************************************

Nota: Para corregir el problema de forzar las actualizaciones a mano desde el sitio debemos luego habilitar los comandos externos. Para ello

# vim /etc/nagios3/nagios.cfg

Buscar la linea check_external_commands=0 y cambiarla por check_external_commands=1

Guardamos, salimos y restarteamos el servicio de nagios.

Si luego  de esto nos aparece el error Error: Could not stat() command file ‘/var/lib/nagios3/rw/nagios.cmd’! al forzar la comprobacion, hacer

# chmod g+x /var/lib/nagios3/rw
# dpkg-statoverride –update –add nagios www-data 2710 /var/lib/nagios3/rw
# dpkg-statoverride –update –add nagios nagios 751 /var/lib/nagios3

**********************************************************************************************************************

12 thoughts on “Implementando Nagios o como monitorear servidores remotos (I)

Miguelius

Nagiosgrapher…? Servicios para polear…?

Reply
    Epel

    Que tal Miguel, no te impacientes por favor, es solo la primera entrega. Saludos!

    Reply
Miguelius

Nagiosgrapher…? Servicios para polear…?

Reply
    Epel

    Que tal Miguel, no te impacientes por favor, es solo la primera entrega. Saludos!

    Reply
raul

Consulta, como hago para ver si el servicio de tftp esta arriba, osea que entrega archivos?

gracias!

Reply
    Epel

    Que tal raul, mira el servicio de TFTP utiliza un datagrama UDP y corre en el puerto 69 por defecto.
    deberias de revisar si en /etc/nagios-plugins/config/ si existe algun comando check_tftp.cfg si no.. crealo 😉

    El ejemplo que puse para el rdp lo podes modificar para lo que necesites, imagino quedaria asi

    # Comando para verificar el servicio de TFTP
    # ‘check_tftp’ command definition
    define command{
    command_name check_tftp
    command_line /usr/lib/nagios/plugins/check_udp -H ‘$HOSTADDRESS$’ -p 69
    }
    despues solamente lo llamas desde el archivo trabajo.cfg
    agregando las siguientes lineas al final
    # TFTP
    define service{
    use generic-service
    host_name Trabajo
    service_description TFTP
    check_command check_tftp
    }
    Avisame como te fue!

    Reply
raul

Consulta, como hago para ver si el servicio de tftp esta arriba, osea que entrega archivos?

gracias!

Reply
    Epel

    Que tal raul, mira el servicio de TFTP utiliza un datagrama UDP y corre en el puerto 69 por defecto.
    deberias de revisar si en /etc/nagios-plugins/config/ si existe algun comando check_tftp.cfg si no.. crealo 😉

    El ejemplo que puse para el rdp lo podes modificar para lo que necesites, imagino quedaria asi

    # Comando para verificar el servicio de TFTP
    # ‘check_tftp’ command definition
    define command{
    command_name check_tftp
    command_line /usr/lib/nagios/plugins/check_udp -H ‘$HOSTADDRESS$’ -p 69
    }
    despues solamente lo llamas desde el archivo trabajo.cfg
    agregando las siguientes lineas al final
    # TFTP
    define service{
    use generic-service
    host_name Trabajo
    service_description TFTP
    check_command check_tftp
    }
    Avisame como te fue!

    Reply
marcelo

hola estoy luchando hace mucho y no puedo monitorear servicio realize todo como indicastes , tenog nagios 3.2.1 , hize todo lo que me has dicho pero cuando le pongo la ruta al archivo trabajo.cfg al final del archivo nagios me rebota y me dice que vuelva a chequearlo y no veo nada raro me dice

Error in configuration file ‘/usr/local/nagios/etc/nagios.cfg’ – Line 1328 (NULL value)

y no se que mas ponerle

Reply
    Epel

    Que tal Marcelo, te agradezco el comentario, estaba mal llamado al archivo de configuracion, la forma correcta debe ser cfg_file=/etc/nagios3/trabajo.cfg. Te mande un mail.

    Muchas gracias!

    Reply
marcelo

hola estoy luchando hace mucho y no puedo monitorear servicio realize todo como indicastes , tenog nagios 3.2.1 , hize todo lo que me has dicho pero cuando le pongo la ruta al archivo trabajo.cfg al final del archivo nagios me rebota y me dice que vuelva a chequearlo y no veo nada raro me dice

Error in configuration file ‘/usr/local/nagios/etc/nagios.cfg’ – Line 1328 (NULL value)

y no se que mas ponerle

Reply
    Epel

    Que tal Marcelo, te agradezco el comentario, estaba mal llamado al archivo de configuracion, la forma correcta debe ser cfg_file=/etc/nagios3/trabajo.cfg. Te mande un mail.

    Muchas gracias!

    Reply

Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *