Postinstalación de Nagios 18


Nagios es un sistema de monitorización ampliamente utilizado de redes de código abierto. Vigila los equipos (hardware) y servicios (software) 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 (SMTP, POP3, HTTP, SNMP…), la monitorización de los recursos de sistemas hardware (carga del procesador, uso de los discos, memoria, estado de los puertos…), independencia de sistemas operativos, posibilidad de monitorización remota mediante túneles SSL cifrados ó SSH, y la posibilidad de programar plugins específicos para nuevos sistemas.

Se trata de un software que proporciona una gran versatilidad para consultar prácticamente cualquier parámetro de interés de un sistema, y genera alertas, que pueden ser recibidas por los responsables correspondientes mediante (entre otros medios) correo electrónico y mensajes SMS, cuando estos parámetros exceden de los márgenes definidos por el administrador de red.

La instalación y configuración de Nagios está ampliamente documentada, bloggeada y cada vez es mas fácil. Pero lo que no he visto, porque se asume, es las pequeñas alteraciones que hay que hacer después de instalar uno, en mi caso después de una instalación sobre un Ubuntu Server 9.10 limpio. Dejo aquí mis notas para acordarme la próxima vez.

Instalación.
Inicialmente intenté bajarme una máquina virtual con todo configurado, pero no encontré ninguna con la última versión de Nagios y que no me obligase a registrarme, así que lo hice a las bravas.

Los pasos:

  • Tener instalado Virtualbox. Aprovecha mientas Oracle no lo cobre.
  • Creamos una máquina virtual en virtualbox y configuramos el arranque desde CD (con el iso de la Ubuntu Server asociado al CD). La máquina la monté con 200 Mb de Ram y la Red en modo Bridge para tener libre acceso a servidor virtual.
  • Arrancamos y vamos escogiendo la configuración que deseemos. En mi caso sólo quiero que sea un servidor SSH.
  • Cuando tengamos la máquina virtual arracanda procedemos a actualizar los paquetes de la distribución, instalar los driver de VirtualBox y Nagios
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install virtualbox-guest-additions
$ sudo apt-get install nagios3 nagios-plugins-basic nagios-plugins-standard nagios-plugins-extra

 

Acceder a servidor de Nagios desde un navegador Web

http://IP_maquina_virtual/Nagios3

 

Configuración.
Lo siguiente que haremos es configurar los servicios que quiero monitorizar. Está ampliamente documentado así que me voy a limitar a pasar de puntillas. Los ficheros de configuración que me interesan están en:

  • Configuración Nagios: /etc/nagios3
  • Configuración de los plugins: /etc/nagios-plugins
  • Plugins: /usr/lib/nagios/plugins

Lo primero que haré será crear dos directorios dentro de /etc/nagios. Uno para los ficheros de configuración obsoletos y otro para los ficheros de configuración de los servicios que quiero monitorizar. Después modificaré la configuración de nagios para que mire en el directorio de configuración nuevo, le daré contenido a dicho directorio y probaré algún comando que defina. Y finalmente reiniciamos nagios para que cargue la nueva configuración.

  • Creación de directorios
$ sudo mkdir /etc/nagios/obsoletos
$ sudo mkdir /etc/nagios/mimonit
  • Indicarle a Nagios que lea los ficheros de configuración que hay en /etc/nagios/mimonit
  • Editar el fichero /etc/nagios3/nagios.cfg e incluir una línea del tipo: cfg_dir=/etc/nagios3/mimonit
  • Le damos contenido a /etc/nagios/mimonit. Para eso es necesario definir los host a monitorizar, los grupos de hosts, las definiciones de los comandos nuevos si los hubiera y los servicios que se van a monitorizar. En principio se puede hacer todo en el mismo fichero, aunque yo lo hago en ficheros diferentes. Así tendríamos:

 

Hosts.cfg

 

define host{
use generic-host ; Plantilla que se usa
host_name miservidor
alias servi
address 192.168.1.36
}

 

Hostgroups.cfg

define hostgroup {
hostgroup_name debian-servers
alias Debian GNU/Linux Servers
members miservidor
}

 

Commands.cfg

define command{
command_name check_https_comp
command_line check_http –ssl -H '$HOSTADDRESS$' –p $ARG1$ -f follow –u $ARG2$ -s $ARG3$
}

 

Este comando verifica que sobre https:// $HOSTADDRESS$:$ARG1$/$ARG2$ y siguiendo las redirecciones la respuesta contiene $ARG3$

Para verificar la respuesta y que el comando esta bien construido se puede probar desde línea de comando con:

/usr/lib/nagios/plugins/check_http –ssl -H Valor –p Valor -f follow –u Valor -s Valor

 

Services.cfg

define service {
hostgroup_name debian-servers
service_description HTTPS
check_command check_ping!552!/contexto!respuesta
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}

Para símbolos extraños, por ejemplo “?” ó “!” es necesario escaparlos primero con “”

 

 

  • Reiniciar Nagios
$ sudo /etc/init.d/nagios restart

 

Cambio en la configuración por defecto.

  • Notificaciones: Dirección de correo
Para cambiar la dirección de correo a la que se envían por defecto las notificaciones basta editar el fichero /etc/nagios/conf.d/contacts.cfg y modificar la línea email introduciendo en nuestro. Quedaría por ejemplo:

 

email mimail@miservidor.es, miotromail@miotroservidor.com

 

 

  • Eliminar el ping automático a los servidores.
Si estamos monitorizando sistemas externos puede pasar que tengan cortado el ping y que nos encontremos que el servidor Nagios lo declara como caído cuando no es cierto. Esto pasa porque en la plantilla por defecto que hemos usado en la definición de los servidores está definida una comprobación que es precisamente hacer un ping al servidor cada cierto tiempo.

 

Para eliminar esa comprobación editar /etc/nagios3/conf.d/generic-host_nagios2.cfg y se comenta (con #) la línea que dice check_command check-host-alive

 

 

  • Eliminar la monitorización existente.
Por defecto Nagios viene monitorizando la actividad del gateway y del propio servidor. Para eliminarlo lo que yo podemos hacer es:

 

mv /etc/nagios3/conf.d/localhost_nagios2.cfg /etc/nagios3/conf.d/obsoletos mv /etc/nagios3/conf.d/host-gateway_nagios3.cfg /etc/nagios3/conf.d/obsoletos

 

  1. Pasar los ficheros de definiciones al directorio de obsoletos:
  2. Comentar los lugares donde se hace referencia al gateway y a localhost: /etc/nagios3/conf.d/hostgroups_nagios2.cfg

Ojo a Nagios no le gustan las definiciones de grupos de host sin miembros. Así que habrá que comentar toda la definición del grupo … y consecuentemente habrá que comentar donde hace referencia a ellos: /etc/nagios3/conf.d/services_nagios2.cfg

Ojo a Nagios no le gustan las definiciones de servicios sin miembros (hostgroup_name). Así que si queda alguna vacía comentar el servicio completo.

 

 

  • Configurar el servidor de Correo.
Nagios usa un servidor de correo local para enviar las notificaciones. Por defecto se instala POSTFIX, pero no se configura. Así que toca hacerlo. La configuración que voy a comentar es como utilizar postfix para que use un servidor smtp en internet para en envío de correo (relay), en concreto el de gmail.

 

Para enviar correo utilizando el servidor SMTP de Gmail la conexión tiene que estar cifrada con TLS, para lo que debemos añadir la Autoridad Certificadora adecuada y autenticada, para lo que utilizaremos un nombre de usuario (dirección de correo) y contraseña del servicio. Para configurar el servidor es necesario editar /etc/postfix/main.cf y añadir las líneas siguientes:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd
smtp_sasl_security_options = noanonymous

 

Se le indica que use el smtp de gmail por el puerto 587, usando TSL, con el certificado en /etc/postfix/cacert.pem, autenticando y la información de la autenticación se encuentra en /etc/postfix/sasl/passwd Para generar el fichero con la información de autenticación se crea el fichero /etc/postfix/sasl/passwd con el siguiente contenido:

[smtp.gmail.com]:587 unacuenta@gmail.com:unacontraseña.

 

Y lo protegemos adecuadamente con:

chmod 600 /etc/postfix/sasl/passwd

 

El fichero de configuración hay que transformarlo a un fichero indexado de tipo hash mediante la instrucción:

postmap /etc/postfix/sasl/passwd

 

que creará el fichero /etc/postfix/sasl/passwd.db Para añadir la autoridad certificadora

cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem

 

Es necesario reiniciar postfix.

Para probar si todo ha ido bien:

$ mail -s "tsets" cuenta_correo@gmail.com
Para enviarlo pulsar Ctrl+D

 

 

Referencias
Instalación y configuración de Nagios
http://lopezivan.blogspot.com/2008/02/monitorizando-sistemas-con-nagios.html
http://blog.unlugarenelmundo.es/?s=nagios

Búsqueda de plugins de Nagios
http://www.monitoringexchange.org/

Documentación oficial Nagios
http://nagios.sourceforge.net/docs/3_0/toc.html

Configuración de postfix
http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-traves-de-un-relay-host-autenticado-gmail/

 

Compartir
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Dejar un comentario

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

18 ideas sobre “Postinstalación de Nagios

  • J.B

    Hola he seguido los pasos que indicas para ” utilizar postfix para que use un servidor smtp en internet para en envío de correo (relay) ” pero cuando se para un servicio o se reinicia un servidor no llega la alerta a la cuenta de gmail, pero si realizo ” mail -s “tsets” cuenta_correo@gmail.com ” llega sin problema

  • Anonymous

    Si eso está comprobado, pero un log que me llega de root me pone lo siguiente:

    ——————— pam_unix Begin ————————

    runuser-l:
    Unknown Entries:
    session closed for user nagios: 3 Time(s)
    session opened for user nagios by root(uid=0): 2 Time(s)
    session opened for user nagios by (uid=0): 1 Time(s)

    ———————- pam_unix End ————————-

    ——————— postfix Begin ————————

    15604 bytes transferred
    6 messages sent
    6 messages removed from queue

    Unknown users: 1, 1 Time(s)
    ———————- postfix End ————————-

    SEVERE ERRORS
    ————-

    System Error Messages:
    opendaemonsocket: daemon MTA: cannot bind: Address already in use: 11 Time(s)
    opendaemonsocket: daemon MTA: server SMTP socket wedged: exiting: 1 Time(s)

  • Guillermo

    Parece que tienes otro proceso que tiene pillado el puerto SMTP, en este caso el 587. Se me ocurren varias cosas.
    La primera que reinicies el servidor de postfix, no sea que desde que lo reconfiguraste no lo hayas rearrancado y esté entrando en conflicto con él mismo.
    Revisa si tienes otros programas de correo, como sendmail, que estén bloqueando el puerto.
    Prueba con un netstat -a | grep 587 ó netstat -a | grep smtp para ver si se está pillando el puerto por otro programa.

  • Anonymous

    Hola de nuevo cada vez entiendo menos, por que en internet hay muhos manaules de nagios pero cada uno de una versión que lo cambia todo, y la gente no se preocupa de indicar la versión, por lo que es un jaleo.

    Bueno he ejecutado lo que me dices y me dice lo siguiente:

    # netstat -a | grep 587
    unix 3 [ ] STREAM CONNECTED 8587

    # netstat -a | grep smtp
    tcp 0 0 *:smtp *:* LISTEN
    unix 2 [ ACC ] STREAM LISTENING 8561 private/smtp
    unix 2 [ ACC ] STREAM LISTENING 8621 private/bsmtp

    Un saludo y gracias.

    PD.Mi versión Nagios core 3.2.2

  • Anonymous

    Cuando pongo:
    cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem

    me sale error por que no se como crear el certificado Equifax.secure_ca.pem

    alguien sale como puedo crear ese certificado, yo uso CENTOS 5.5, espero una pronta ayuda

  • Anonymous

    Cuando pongo:
    cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem

    ls /etc/postfix/cacert
    ca-bundle.crt localhost.crt makefile
    ca-bundle.trust.crt make-dummy-cert Makefile

    no tengo el certificado, ya instale el ca-certificates

    Por favor su ayuda

  • Guillermo

    Hace tiempo que desinstalé la máquina con Nagios. Pero a priori se me ocurre:
    – Que no hayas trabajado con root (prueba con sudo)
    – Estas mirando un directorio que no es. El certificado está en /etc/postfix
    Compruébalo y me cuentas. Si sigue sin funcionar intento recuperar alguna máquina virtual y pruebo.
    Suerte.

  • Anonymous

    Cuando digito la linea:
    cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem
    cat: /etc/ssl/certs/Equifax_Secure_CA.pem: No such file or directory

    Me sale ese error No such file or directory, he mandado a hacer un ls /etc/ssl/certs/*.pem y me muestra el siguiente resultado:

    ls: cannot access *.pem: No such file or directory

    estoy realizando todo como usuario root

  • Guillermo Conde

    Perdona, pero todavía no he tenido tiempo de mirarlo. Cosas que se me ocurren:
    – Que no tengas instalado algún paquete.
    – Que no tengas los permisos oportunos.

    Prueba con un locate*.pem y con un ls -l /etc/ssl/certs/ y me cuentas.

    Un saludo

  • Cecilia

    Hola, muy buen post! de hecho si lo que quiero hacer no funciona lo voy a usar creando una cuenta en gmail. Pero mi problema es otro, yo tengo instalado Nagios, también centreon, pero ese eso otro cuento, todo funciona de 10, el tema es que localmente en relay coloco el servidor local de correo de la empresa, novell en este caso, esto funciona perfecto y localmente le envia correos a todos lo que tienen una cuenta de novell, pero necesito que envie a una cuenta de gmail y no sale, (basicamente no hace nada), sabes que tendría que modificar?
    Saludos y muchas gracias

    • Guillermo Conde

      UFF, no me lo pones fácil.
      Yo diría que si envía para unas direcciones bien y otras no el problema estará en el servidor de correo y su configuración. Me explico:
      – Que el servidor local sólo envíe a direcciones de la empresa y el resto las rechace.
      – Que el servidor local no tenga pasarela de salida hacia afuera. – Que el servidor local valide la dirección que envíe el correo y si no es de la empresa, o no exista, no lo trate.
      – …
      Te diría que mirases la traza del servidor de correo para ver si te puede dar algo mas de información.