Instalar y configurar Nagios en Debian Jessie

En la web he tratado de manera amplia y extendida Nagios. Para ello me serví del sistema operativo Debian, en su version 7, que utiliza el codename Wheezy. Muchos usuarios me escribían comentarios referidos a que ellos habían utilizado la versión inmediatamente superior, es decir, la 8, llamada Jessie. Por lo que éste artículo es para ellos. Vamos a ver como instalar y configurar Nagios en Debian Jessie.

Nagios_Logo

Instalar servidor LAMP

Un requisito imprescindible es instalar un servidor LAMP, esto es, la combinación de Apache2, PHP 5 y MySQL o MariaDB.

Vamos a ello, no explicaré cada paso, ya que existen muchos artículos en ésta misma web donde los explico.

  1. apt-get -y update
  2. apt-get -y install apache2
  3. apt-get -y install mysql-server php5-mysql
  4. apt-get -y install php5 libapache2-mod-php5 php5-mcrypt
  5. apt-get -y install php5-cgi php5-gd php5-common php5-curl

Instalar Nagios

Instalamos el paquete build-essential, esencial para compilar, ya que los ficheros están escritos en C.

  1. apt-get -y install build-essential

Añadiremos unos paquetes extras que son necesarios:

  1. apt-get -y install libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzip curl

Creamos el usuario y el grupo con el que trabajaremos:

  1. useradd nagios
  2. groupadd nagcmd
  3. usermod -a -G nagcmd nagios

Nos descargamos la última versión de Nagios, que a fecha de hoy es la 4.1.1

  1. cd /tmp
  2. curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

Descomprimimos el fichero utilizando el programa tar:

  1. tar xvf nagios-4.1.1.tar.gz

Accedemos a la carpeta:

  1. cd nagios-4.1.1

Asignamos el usuario y el grupo antes de compilar:

  1. ./configure --with-nagios-group=nagios --with-command-group=nagcmd

Compilamos:

  1. make all

Seguimos con los scripts:

  1. make install
  2. make install-commandmode
  3. make install-init
  4. make install-config

Configuramos la parte del servidor web:

  1. /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf

Añadimos el usuario de Apache www-data al grupo nagcmd:

  1. usermod -G nagcmd www-data

Instalar Plugins de Nagios

Ahora de manera adicional y recomenda, instalaremos el paquete de plugins. Accedemos a la carpeta /tmp y descagamos el fichero:

  1. cd /tmp
  2. curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

Al igual que con el archivo de core, también descomprimimos con tar:

  1. tar xvf nagios-plugins-2.1.1.tar.gz

Accedemos a la carpeta:

  1. cd nagios-plugins-2.1.1

Asignamos usuario y grupo:

  1. ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

Compilamos:

  1. make
  2. make install

Instalar Plugin NRPE

Para poder monitorizar máquinas con GNU Linux debemos instalar el plugin NRPE, los pasos son similares a los anteriores.

Accedemos a la carpeta /tmp y descargamos la última versión:

  1. cd /tmp
  2. curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Descomprimimos el fichero y accedemos a la carpeta recién creada:

  1. tar xvf nrpe-2.15.tar.gz
  2. cd nrpe-2.15

Asignamos usuario y grupo:

  1. ./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

Compilamos y ejecutamos los scripts:

  1. make all
  2. make install
  3. make install-xinetd
  4. make install-daemon-config

Modificamos el fichero /etc/xinetd.d/nrpe y modificamos la línea only_from y añadimos la IP de nuestro servidor:

  1. nano /etc/xinetd.d/nrpe

En mi caso sería:

  1. only_from = 127.0.0.1 192.168.0.100

Salimos y reiniciamos el servicio:

  1. service xinetd restart

Configurar Nagios

Primero de todo crearemos una nueva carpeta, donde ubicaremos la configuración de nuestros servidores:

  1. mkdir /usr/local/nagios/etc/servers

Modificamos el fichero de configuración principal:

  1. nano /usr/local/nagios/etc/nagios.cfg

Y descomentamos la siguiente línea:

  1. #cfg_dir=/usr/local/nagios/etc/servers

Guardamos y salimos.

Configurar contactos

Modificamos el fichero de contactos, para añadir nuestro correo electrónico:

  1. /usr/local/nagios/etc/objects/contacts.cfg

Modificamos la línea «mail» con nuestro correo electrónico, guardamos y cerramos.

Configuramos el comando check_nrpe

Para que el plugin NRPE monitorice nuestro servidor, debemos modificar el fichero:

  1. nano /usr/local/nagios/etc/objects/commands.cfg

Y añadimos al final del fichero:

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

Guardamos y salimos

Configurar Apache

Habilitamos los módulos de Apache ‘rewrite’ y ‘cgi’:

  1. a2enmod rewrite
  2. a2enmod cgi

Asignamos una contraseña para el usuario ‘nagiosadmin» que utilizaremos para acceder a la web:

  1. htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Creamos un enlace simbólico utilizando ln, que apunte a la carpeta de sites-enabled de Apache:

  1. ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Reiniciamos Nagios y Apache:

  1. service nagios start
  2. service apache2 restart

Añadimos Nagios al arranque del sistema, mediante un enlace simbólico:

  1. ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Comprobamos que la configuración es correcta:

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

Problemas en el arranque

Si al arrancar el servicio nos devuelve el siguiente mensaje:

Failed to start nagios.service: Unit nagios.service failed to load: No such file or directory.

Debemos copiar el fichero /etc/init.d/skeleton a /etc/init.d/nagios

  1. cp /etc/init.d/skeleton /etc/init.d/nagios

Y añadimos las siguientes líneas:

  1. DESC="Nagios"
  2. NAME=nagios
  3. DAEMON=/usr/local/nagios/bin/$NAME
  4. DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"
  5. PIDFILE=/usr/local/nagios/var/$NAME.lock

Modificamos los permisos del fichero:

  1. chmod +x /etc/init.d/nagios

Y arrancamos el servicio:

  1. /etc/init.d/nagios start

Y si todo ha ido bien ya podemos ir a nuestro navegador, escribiendo http://nuestra-ip/nagios

nagios-debian-jessie

He grabado un vídeo en mi canal de youtube, explicando justo los mismos pasos:

Para el artículo me he ayuda de :

Nagios Documentation | DigitalOcean

Podéis dejar vuestros comentarios aquí abajo y explicar vuestra experiencia.

44 Respuestas

  1. Daniel Rodriguez dice:

    Hombre, muchas gracias! funciona todo correctamente, usted tendrá mas acerca de esta herramienta?, agregar nuevos host, monitorear servicios en especifico?, le repito muchas gracias! y quedo atento.

  2. carlos dice:

    Muchas gracias por tu torial estuvo muy util de verdad, lo unico es que tuve un errror al intentar instalar el Plugin NRPE lo descargo, lo descomprimo y le asigno los usuarios pero al final de la linea me sale «checking for SSL libraries… configure: error: Cannot find ssl libraries» y si ejecuto el comando «make» me da este error «make: *** No rule to make target ‘all’. Alto.», si puedieses ayudarme con eso estaria muy agradecido.

    • davidochobits dice:

      Hola Carlos,

      Tiene pinta que hay algún paso que te has dejado o algún parámetro. Mira que tengas instalado el paquete «openssl» y revisa todos los pasos.

      Gracias por pasarte y comentar. Un saludo

  3. hercross dice:

    Hola davidochobits, muchas gracias por el tuto, me vino de 10..

    Lo he hecho paso a paso, y no he recibido ningún error, excepto el que comentas en el arranque.. después de hacer todo, cuando voy a entrar en la web del nagios: http://ip_address/nagios, me dice 404 not found..

    En /etc/apache2/sites-enabled si que tengo nagios.conf…

    Porqué podría ser?

    Muchas gracias

    • hercross dice:

      Sorry, ya está.. me faltaba reiniciar apahe..

      Mil gracias

    • davidochobits dice:

      Hola,

      Pues podrían ser varias cosas, primero de todo tienes el servidor web apache encendido? Lo puedes comprobar con ‘service apache2 status’, también podría ser que la dirección de nagios en el fichero nagios.conf fuese erronea, también lo tendrías que comprobar. Ya me dices.

      Saludos

  4. jose dice:

    hola estimado gracias por la guia está excelente, pero a la hora de iniciar el servicio nagios me dice
    unit nagios.service failed to load: No such file or directory…
    que me faltó?

    Saludos

  5. Juan dice:

    Hola amigo, podrias sumar a este tutorial como agregar herramientas graficas al Nagios? pnp4nagios, check_mk, etc.
    Muchas gracias, muy bueno tu trabajo, de mucha ayuda. Abrazo!

  6. ruben dice:

    Hola, voy a utlizar este tutorial para poner en marcha nagios en un raspberry pi que uso con debian 8.

    ¿sabes si los pasos de la configuracion de red son totalmente necesarios? yo al conectarme por wifi no he sido capaz que me coja una IP fija.

  7. Tuxito78 dice:

    Muchas gracias por el aporte, ¿algunos de ustedes ha intentado integrar NagiosQL en esta configuración, si es así, podría compartir la experiencia y si fuera posible la guía o guías, las cuales fueron tomadas como referencia.

    Saludos y gracias

  8. victor ferrada dice:

    hola exelente tutorial lo instale en mi notebook y funciono pero ahora lo estoy realizando en mi pc y al momento de descomprimir el nagios plugin me da eror de:
    gzip: stdin : not in gzip format
    tar: child returned status 1
    tar: Error is not recoverable: exiting now

    copie y pegue la misma linea todo lo demas me deja descomprimir pero este archivo no me deja 🙁

  9. Wuilme dice:

    Gracias por su aporte, excelente trabajo

  10. Wuilme dice:

    hola, estoy tratando de agregar los servidores y los switch al nagios para poder monitorearlos pero no logro dar con la ruta, tengo instalado nagios4 en debian 8, luego de eso quisiera configurar las notificaciones vial mail. Agradeceria toda tu ayuda.

  11. Dani Ramirez dice:

    Gracias por su aporte, excelente trabajo esta muy claro todo.

  12. Juan dice:

    Hola!
    el instructivo de maravillas. Solo que al final cuando coloco la url y me solicita el login me rechaza el acceso (usuario: nagiosadmin / pasword). He probado ingresar desde diferentes navegadores y distintas pc y el resultado es el mismo. Se te ocurre cual puede ser el problema?
    Segui el instructivo paso a paso sin errores.

    El mensaje de error es el siguiente:

    Forbidden

    You don’t have permission to access /nagios/ on this server.
    Apache/2.4.10 (Debian) Server at 192.168.1.38 Port 80

  13. Kurt dice:

    Hola que tal acabo de instalar nagios amigo y todo bien cuando ejecuto /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg pero cuando ingreso a http://nuestra-ip/nagios me dice unable to get process status y no me muestra nada cuando selecciono alguna subpagina que podra ser? de antemano muchas gracias

  14. EXCELENTE TUTORIAL !!! GRACIAS !!!

    como detalle te comento que tuve que modificar la linea
    ./configure –enable-command-args –with-nagios-user=nagios –with-nagios-group=nagios –with-ssl=/usr/bin/openssl –with-ssl-lib=/usr/lib/x86_64-linux-gnu

    por

    /configure –enable-command-args –with-nagios-user=nagios –with-nagios-group=nagios –with-ssl=/usr/bin/openssl –with-ssl-lib=/usr/lib/i386-linux-gnu

    ya que mi kernel donde corro nagios es 386

  15. german dice:

    Hola, gracias por el tutorial, excelente.
    Tengo un problema. el paso Configuramos la parte del servidor web no lo puedo realizar ya que me da un error ya que sample-config/httpd.conf no existe.
    Me podras dar una idea en que le estoy errando.

    Muchas gracoas

  16. joseluis dice:

    ya lo instale y muy bueno el tutorial, felicitaciones ; pero como añado mas hosts (servidores) ya sean estos linux o windows, te agradecería mucho si me podrías ayudar o hacer un tutorial de para añadir mas servidores, gracias

  17. geronimo dice:

    Excelente, gracias.

  18. Rodrigo Gonçalves dice:

    Olá .
    Meu nome é Rodrigo, muito obrigado pelo seu tutorial, após eu ter tentado utilizar varios o seu foi o primeiro em que eu consegui fazer funcionar.
    Muito Obrigado !!

  19. eli dice:

    buenas noches, he seguido el tutorial pero tengo problema al reiniciar apache y no se que pueda ser

    root@ortizLC1718:/etc/init.d# service apache2 start
    Job for apache2.service failed. See ‘systemctl status apache2.service’ and ‘journalctl -xn’ for details.
    root@ortizLC1718:/etc/init.d# systemctl status apache2.service
    ● apache2.service – LSB: Apache2 web server
    Loaded: loaded (/etc/init.d/apache2)
    Drop-In: /lib/systemd/system/apache2.service.d
    └─forking.conf
    Active: failed (Result: exit-code) since lun 2017-11-27 01:14:37 CET; 19s ago
    Process: 11649 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
    Process: 11535 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
    Process: 11906 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

    nov 27 01:14:37 ortizLC1718 apache2[11906]: Starting web server: apache2 failed!
    nov 27 01:14:37 ortizLC1718 apache2[11906]: The apache2 configtest failed. … (warning).
    nov 27 01:14:37 ortizLC1718 apache2[11906]: Output of config test was:
    nov 27 01:14:37 ortizLC1718 apache2[11906]: apache2: Syntax error on line 219 of /etc/apache2/apache2.conf:…ctory
    nov 27 01:14:37 ortizLC1718 apache2[11906]: Action ‘configtest’ failed.
    nov 27 01:14:37 ortizLC1718 apache2[11906]: The Apache error log may have more information.
    nov 27 01:14:37 ortizLC1718 systemd[1]: apache2.service: control process exited, code=exited status=1
    nov 27 01:14:37 ortizLC1718 systemd[1]: Failed to start LSB: Apache2 web server.
    nov 27 01:14:37 ortizLC1718 systemd[1]: Unit apache2.service entered failed state.
    Hint: Some lines were ellipsized, use -l to show in full.

    Gracias por la ayuda

  20. Hola colega,

    Fijate en el mensaje:

    apache2: Syntax error on line 219 of /etc/apache2/apache2.conf:…ctory

    Tienes que revisar el fichero de configuración /etc/apache2/apache.conf, hay algo que no le gusta.

    Saludos

  21. antonio dice:

    muy buen manual, de muy buena ayuda. muchas gracias.

  22. Jossuell dice:

    Men, tengo el mismo error, el apache2 no me carga después de todo el proceso…

    #service apache2 start
    #Job for apache2.service failed. See ‘systemctl status apache2.service’ and ‘journalctl -xn’ for details.

    #journalctl | tail
    Dec 19 11:48:19 SRV-LNX-00 apache2[32647]: The Apache error log may have more information.
    Dec 19 11:48:19 SRV-LNX-00 systemd[1]: apache2.service: control process exited, code=exited status=1
    Dec 19 11:48:19 SRV-LNX-00 systemd[1]: Failed to start LSB: Apache2 web server.
    Dec 19 11:48:19 SRV-LNX-00 systemd[1]: Unit apache2.service entered failed state.
    Dec 19 11:49:11 SRV-LNX-00 sudo[32703]: nagios : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/local/nagios/libexec/check_init_service cron
    Dec 19 11:49:11 SRV-LNX-00 sudo[32703]: pam_unix(sudo:session): session opened for user root by (uid=0)
    Dec 19 11:49:11 SRV-LNX-00 sudo[32703]: pam_unix(sudo:session): session closed for user root
    Dec 19 11:49:26 SRV-LNX-00 sudo[32711]: nagios : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/local/nagios/libexec/check_init_service ssh
    Dec 19 11:49:26 SRV-LNX-00 sudo[32711]: pam_unix(sudo:session): session opened for user root by (uid=0)
    Dec 19 11:49:26 SRV-LNX-00 sudo[32711]: pam_unix(sudo:session): session closed for user root

    #apache2ctl configtest
    apache2: Syntax error on line 216 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/conf-enabled/nagios3.conf: No such file or directory
    Action ‘configtest’ failed.
    The Apache error log may have more information.

    Primero me lanzo el error en la carga del Nagios, luego use la informacion que muestras mas abajo, entonces cuando Nagios arranco yl Apache2 dejo de funcionar.

    Esos son los resultados que me muestra después que se soluciono el error del Nagios.

  23. Jhonnathan dice:

    Gracias por el toturial, si hay posibilidades de subir mas información para monitorizar dispositivos activos

  1. 29 octubre, 2015

    […] También existe un artículo sobre la instalación sobre un Debian 8 “Jessie” […]

  2. 30 octubre, 2015

    […] unos días escribí un artículo en la web sobre la instalación de Nagios, sobre un servidor Debian Jessie. Al publicar una nota en la red Diaspora sobre dicha entrada, un […]

  3. 22 agosto, 2016

    […] y maquinaria (hardware) Es similar a otros que he tratado durante estos años en la web, véase Nagios, Icinga o Pandora […]

  4. 15 febrero, 2017

    […] SLES, para quien no lo sepa significa SUSE Linux Enterprise Server, al cual le tenía que instalar Nagios, pero en unos de los pasos tuve un problema con un paquete, concretamente uno de […]

  5. 15 febrero, 2017

    […] En la web he hablado de muchas plataformas de monitorización, entre las más destacada está Nagios.  Para su funcionamiento utiliza en el sistema operativo en que lo instalemos el demonio xinetd. […]

  6. 14 junio, 2018

    […] y maquinaria (hardware) Es similar a otros que he tratado durante estos años en la web, véase Nagios, Icinga o Pandora […]

  7. 16 mayo, 2019

    […] recientemente han hecho que salte la alarma, en el sistema de monitorización de turno, véase Nagios, PandoraFMS, Zabbix o Icinga, y ha hecho que un recurso se quede sin espacio o le quede poco para […]

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.