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.
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.
apt-get -y update
apt-get -y install apache2
apt-get -y install mysql-server php5-mysql
apt-get -y install php5 libapache2-mod-php5 php5-mcrypt
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.
apt-get -y install build-essential
Añadiremos unos paquetes extras que son necesarios:
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:
useradd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
Nos descargamos la última versión de Nagios, que a fecha de hoy es la 4.1.1
cd /tmp
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz
Descomprimimos el fichero utilizando el programa tar:
tar xvf nagios-4.1.1.tar.gz
Accedemos a la carpeta:
cd nagios-4.1.1
Asignamos el usuario y el grupo antes de compilar:
./configure --with-nagios-group=nagios --with-command-group=nagcmd
Compilamos:
make all
Seguimos con los scripts:
make install
make install-commandmode
make install-init
make install-config
Configuramos la parte del servidor web:
/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:
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:
cd /tmp
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:
tar xvf nagios-plugins-2.1.1.tar.gz
Accedemos a la carpeta:
cd nagios-plugins-2.1.1
Asignamos usuario y grupo:
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
Compilamos:
make
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:
cd /tmp
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:
tar xvf nrpe-2.15.tar.gz
cd nrpe-2.15
Asignamos usuario y grupo:
./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:
make all
make install
make install-xinetd
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:
nano /etc/xinetd.d/nrpe
En mi caso sería:
only_from = 127.0.0.1 192.168.0.100
Salimos y reiniciamos el servicio:
service xinetd restart
Configurar Nagios
Primero de todo crearemos una nueva carpeta, donde ubicaremos la configuración de nuestros servidores:
mkdir /usr/local/nagios/etc/servers
Modificamos el fichero de configuración principal:
nano /usr/local/nagios/etc/nagios.cfg
Y descomentamos la siguiente línea:
#cfg_dir=/usr/local/nagios/etc/servers
Guardamos y salimos.
Configurar contactos
Modificamos el fichero de contactos, para añadir nuestro correo electrónico:
/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:
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’:
a2enmod rewrite
a2enmod cgi
Asignamos una contraseña para el usuario ‘nagiosadmin» que utilizaremos para acceder a la web:
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:
ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/
Reiniciamos Nagios y Apache:
service nagios start
service apache2 restart
Añadimos Nagios al arranque del sistema, mediante un enlace simbólico:
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Comprobamos que la configuración es correcta:
/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
cp /etc/init.d/skeleton /etc/init.d/nagios
Y añadimos las siguientes líneas:
DESC="Nagios"
NAME=nagios
DAEMON=/usr/local/nagios/bin/$NAME
DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE=/usr/local/nagios/var/$NAME.lock
Modificamos los permisos del fichero:
chmod +x /etc/init.d/nagios
Y arrancamos el servicio:
/etc/init.d/nagios start
Y si todo ha ido bien ya podemos ir a nuestro navegador, escribiendo http://nuestra-ip/nagios
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.
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.
Hola Daniel,
Muchas gracias. En su día hice una guía extensa sobre su instalación con Debian Wheezy. Es similar, aquí te dejo la parte que vendría ahora:
https://www.ochobitshacenunbyte.com/2014/06/27/instalar-y-configurar-nagios-en-servidor-debian-7-parte-ii/
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.
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
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
Sorry, ya está.. me faltaba reiniciar apahe..
Mil gracias
Perfecto, te había contestado en otro post y te decía justo lo mismo.
Un saludo
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
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
Hola Jose,
Revisa todos los pasos. También puedes consultar el vídeo.
Saludos
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!
Gracias Juan por pasarte por aquí y comentar.
Respecto a la sugerencia lo tendré en cuenta para futuros artículos.
Salu2!
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.
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
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 🙁
Gracias por su aporte, excelente trabajo
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.
Hola,
Simplemente debes añadirlos indicando su IP, piensa que los más sencillos, no tienen IP asignada.
Un saludo
Gracias por su aporte, excelente trabajo esta muy claro todo.
Gracias. Un saludo
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
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
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
Gracias Andrés, me alegro que te haya servido. Un saludo
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
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
Hola,
En la web tienes más artículos al respecto del producto de monitorización Nagios. Entre ellos uno sobre cómo añadir nuevos hosts a monitorizar, aquí te lo dejo:
https://www.ochobitshacenunbyte.com/2014/06/27/instalar-y-configurar-nagios-en-servidor-debian-7-parte-ii/
Espero que te sirva.
Saludos!!
Excelente, gracias.
Gracias a ti por pasarte y comentar.
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 !!
Hola Rodrígo,
Gracias a ti por pasarte y comentar. Me alegro que te haya servido, esa es mi la intención 🙂
Saludos!!
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
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
muy buen manual, de muy buena ayuda. muchas gracias.
Gracias Antonio por pasarte y comentar. Me alegro que te haya servido.
Saludos
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.
Gracias por el toturial, si hay posibilidades de subir mas información para monitorizar dispositivos activos