PARTE I:
|_1. Nagios.
|_ _1.1. ¿Qué es Nagios y para qué sirve?
|_ _1.2. Implementación y configuración de Nagios-Core
|_ _1.3. Nagios-Plugins. 9
|_2. PNP4nagios.
|_ _2.1. ¿Qué es PNP4nagios?
|_ _2.2. Implementación y configuración de PNP4nagios
|_3. Check_MK.
|_ _3.1. ¿Qué es Check_MK?
|_ _3.2. Implementación y configuración de Check_MK
|_4. Actualización de Nagios
|_5. Agregando íconos a Nagios y Check_MK
1. Nagios
1.1. ¿Qué es Nagios y para qué sirve?
Nagios es un sistema de monitorización de redes de código abierto ampliamente utilizado, que vigila los equipos (hardware) y servicios 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, etc.), la monitorización de los recursos de sistemas hardware (carga del procesador, uso de los discos, memoria, estado de los puertos, etc.), independencia de sistemas operativos, posibilidad de monitorización remota mediante túneles SSL cifrados o SSH, y la posibilidad de programar plugins específicos para nuevos sistemas.
Aclarar aquí que el término servicio se usa muy libremente en Nagios y puede referirse a servicios que corren en un host (POP, SMTP, HTTP…) o a algún otro tipo de métrica asociada a un host (respuesta a un ping, número de usuarios logueados en el sistema, espacio libre en un disco…). También nos permite mapear la red, siempre que cada uno de los hosts tengan configurado el cliente que le envíe su información al servidor nagios.
1.2. Implementación y configuración de Nagios-Core
En “nagios-debian9”:
Creamos un directorio donde se encontrarán todos los instaladores para el nagios:
mkdir -p /opt/instaladores
Instalando paquetes necesarios:
apt-get install build-essential apache2 php7.0 make gcc g++ sudo libgd2-xpm-dev libpng16-16 libgd-tools libpng-dev zip snmp snmpd
Activar módulo «rewrite» de apache (lo usará posteriormente «pnp4nagios» y módulo “cgi”:
a2enmod rewrite a2enmod cgi
Reiniciando apache para activar los módulos recién habilitados:
service apache2 restart
Creando un usuario y grupo para nagios:
useradd -m -s /bin/bash nagios passwd nagios
#=========================================================================
NOTA: password: «nagios»
#=========================================================================
groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd www-data
Preparamos la instalación de nagios:
cd /opt/instaladores wget http://www.mediafire.com/file/zs3eypip56e2niz/nagios-4.4.4.tar.gz/file tar -xzvf nagios-4.4.4.tar.gz cd nagios-4.4.4 ./configure --with-command-group=nagcmd --with-httpd-conf=/etc/apache2/sites-enabled --sysconfdir=/etc/nagios
Al finalizar debe devolver algo como esto:
*** Configuration summary for nagios 4.4.4 2019-07-29 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagcmd Event Broker: yes Install ${prefix}: /usr/local/nagios Install ${includedir}: /usr/local/nagios/include/nagios Lock file: /run/nagios.lock Check result directory: /usr/local/nagios/var/spool/checkresults Init directory: /lib/systemd/system Apache conf.d directory: /etc/apache2/sites-enabled Mail program: /bin/mail Host OS: linux-gnu IOBroker Method: epoll Web Interface Options: ------------------------ HTML URL: http://localhost/nagios/ CGI URL: http://localhost/nagios/cgi-bin/ Traceroute (used by WAP): /usr/sbin/traceroute Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs.
Compilamos e instalamos nagios:
make all make install make install-init make install-commandmode make install-config make install-webconf make install-exfoliation make install-daemoninit
Establecemos password para usuario “nagiosadmin”:
htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
#=========================================================================
NOTA: password: «nagiosadmin»
#=========================================================================
Reiniciamos apache:
service apache2 restart
Verificando que no existan errores en la configuración del Nagios:
/usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg
Debe devolver lo siguiente si todo está en orden:
Nagios Core 4.4.4 Copyright (c) 2009-present Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 2019-07-29 License: GPL Website: https://www.nagios.org Reading configuration data... Read main config file okay... Read object config files okay... Running pre-flight check on configuration data... Checking objects... Checked 8 services. Checked 1 hosts. Checked 1 host groups. Checked 0 service groups. Checked 1 contacts. Checked 1 contact groups. Checked 24 commands. Checked 5 time periods. Checked 0 host escalations. Checked 0 service escalations. Checking for circular paths... Checked 1 hosts Checked 0 service dependencies Checked 0 host dependencies Checked 5 timeperiods Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Iniciando nagios:
systemctl start nagios.service
1.3. Nagios-Plugins
El siguiente procedimiento servirá para todos los host Linux, tanto el servidor nagios como los hosts a monitorizar.
En todos los host Linux:
Prerrequisitos:
apt-get install snmp snmpd
Preparamos la instalación de nagios-plugins:
cd /opt/instaladores wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz tar -xzvf nagios-plugins-2.2.1.tar.gz cd nagios-plugins-2.2.1 ./configure
Compilamos e instalamos nagios-plugins:
make make install
En “nagios-debian9”:
Reiniciamos nagios:
systemctl restart nagios.service
Accedemos a la web del nagios-core:
http://192.168.100.3/nagios/
Nos pedirá autenticación para acceder a la web del nagios:
Una vez autenticados nos saldrá el menú principal de nagios-core:
En los servicios, deberá aparecernos al rato, todos los chequeos de “localhost” en estado “OK”:
2. PNP4nagios
2.1. ¿Qué es PNP4nagios?
Pnp4nagios es un módulo para Nagios que analiza los datos de rendimiento de los servicios que tengamos implementados en cada host, almacena automáticamente los datos en bases de datos RRD (bases de datos Round Robin). Te muestra en forma de gráficos cada servicio de cada host de diferentes periodos de tiempo. Es un módulo oportuno para los administradores de redes, ya que tienes un buen control administrativo de todos los servicios de diferentes periodos de tiempo, pudiendo hacer comparativas de calidad entre los mismos servicios en diferentes períodos de tiempo entre otras opciones que desee el administrador.
2.2. Implementación y configuración de PNP4nagios
En “nagios-debian9”:
Instalando paquetes necesarios:
apt-get install php7.0-gd php7.0-xml librrds-perl rrdtool
Preparamos la instalación de pnp4nagios:
cd /opt/instaladores wget http://www.mediafire.com/file/6vpcy9lz95wua1q/pnp4nagios-0.6.26.tar.gz/file tar -xzvf pnp4nagios-0.6.26.tar.gz cd pnp4nagios-0.6.26 ./configure --with-httpd-conf=/etc/apache2/sites-enabled --sysconfdir=/etc/pnp4nagios --with-base-url=/site01/pnp4nagios
Compilamos e instalamos pnp4nagios:
make all make fullinstall
Al finalizar, debe devolver algo como esto:
*** Configuration summary for pnp4nagios-0.6.26 2017-08-21 *** General Options: ------------------------- ------------------- Nagios user/group: nagios nagios Install directory: /usr/local/pnp4nagios HTML Dir: /usr/local/pnp4nagios/share Config Dir: /etc/pnp4nagios Location of rrdtool binary: /usr/bin/rrdtool Version 1.6.0 RRDs Perl Modules: FOUND (Version 1.5001) RRD Files stored in: /usr/local/pnp4nagios/var/perfdata process_perfdata.pl Logfile: /usr/local/pnp4nagios/var/perfdata.log Perfdata files (NPCD) stored in: /usr/local/pnp4nagios/var/spool Web Interface Options: ------------------------- ------------------- HTML URL: http://localhost/site01/pnp4nagios Apache Config File: /etc/apache2/sites-enabled/pnp4nagios.conf *** Main program, Scripts and HTML files installed *** Enjoy.
Editamos el fichero «/etc/apache2/sites-enabled/pnp4nagios.conf»:
nano /etc/apache2/sites-enabled/pnp4nagios.conf
Cambiamos a la ruta correcta del fichero de autenticación de apache:
AuthUserFile /etc/nagios/htpasswd.users
Reiniciamos apache:
service apache2 restart
Al acceder por primera vez a la web del pnp4nagios se activará una verificación de nuestra instalación:
http://192.168.100.3/site01/pnp4nagios/
Renombramos el fichero «/usr/local/pnp4nagios/share/install.php», para quitar la verificación anterior y poder acceder a la web del pnp4nagios:
mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.save
Al recargar la página nuevamente obtendremos el siguiente error:
En este punto de la configuración es normal. Aún necesitamos realizar unos cambios en la configuración final.
Abrir el fichero «/opt/instaladores/pnp4nagios-0.6.26/sample-config/nagios.cfg-sample»:
nano sample-config/nagios.cfg-sample
Copiamos el siguiente fragmento:
# # Bulk / NPCD mode # process_performance_data=1 # *** the template definition differs from the one in the original nagios.cfg # service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTA$ service_perfdata_file_mode=a service_perfdata_file_processing_interval=15 service_perfdata_file_processing_command=process-service-perfdata-file # *** the template definition differs from the one in the original nagios.cfg # host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$ host_perfdata_file_mode=a host_perfdata_file_processing_interval=15 host_perfdata_file_processing_command=process-host-perfdata-file
El fragmento anterior lo pegamos al final del fichero «/etc/nagios/nagios.cfg».
Abrir el fichero «/opt/instaladores/pnp4nagios-0.6.26/misccommands.cfg-sample»:
nano sample-config/misccommands.cfg-sample
Copiar solo el siguiente fragmento:
# # Bulk with NPCD mode # #define command { # command_name process-service-perfdata-file # command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$ #} #define command { # command_name process-host-perfdata-file # command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$ #}
Pegar el fragmento anterior al final del fichero «/etc/nagios/objects/commands.cfg».
Descomentamos las líneas que vamos a agregar, quedando de la siguiente manera en el fichero indicado:
# # Bulk with NPCD mode # define command { command_name process-service-perfdata-file command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$ } define command { command_name process-host-perfdata-file command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$ }
Habilitamos e iniciamos el demonio npcd:
systemctl daemon-reload systemctl start npcd.service
Creamos un script para que el demonio inicie con el sistema:
mkdir -p /config/scripts nano /config/scripts/nagios.startup.sh
Agregamos los siguiente:
#!/bin/sh #--------------------------------------------------------------------- # Este es un script que es llamado desde el cron para que inicie con el sistema. # Con este script se automatiza el inicio de algunos servicios. #--------------------------------------------------------------------- systemctl start npcd.service
Damos permisos de ejecución al script:
chmod +x /config/scripts/nagios.startup.sh
Configuramos el cron para que el script se ejecute al iniciar el sistema:
crontab -e
Dentro agregamos lo siguiente:
########### # LEYENDA # ########### # "m": minutos (0-59) # "h": horas (0-23) # "dow": dia de la semana (0-6) # "dom": dia del mes (1-28/1-30/1-31) # "mon": mes (1-12) # "*": cualquiera # ",": separa valores dentro de la misma variable (0,5,10) # "-": define rangos dentro de la misma variable (0-5) # <m> <h> <dom> <mon> <dow> <directorio del script> ########## # NAGIOS # ########## # Inicio automatico del script para postconfiguraciones @reboot /config/scripts/nagios.startup.sh
Reiniciamos el servidor:
reboot
Al recargar la web de pnp4nagios, pasado un tiempo, nos saldrán las gráficas para localhost (único host configurado por el momento en nagios). Cuando se tengan más registros, mostrará el que le corresponda por orden alfabético (luego pueden buscarse en la barra de búsqueda los demás hosts):
3. Check_MK
3.1. ¿Qué es Check_MK?
Es un software libre desarrollado para monitorización de infraestructura de redes y servicios. En sus inicios surge como un agregado de Nagios para dotarle una mejora visual al chequeo de sus monitoreos. Actualmente presenta un desarrollo propio en tres ediciones, disponibles para varias plataformas de software libre. En este tutorial lo configuraremos como un agregado de nagios.
3.2. Implementación y configuración de Check_MK
En “nagios-debian9”:
Instalando paquetes necesarios:
apt-get install libapache2-mod-python sudo
Instalando check_mk-1.2.4p3:
#=======================================================================
NOTA: para compilar el check_mk necesitaremos al menos 1024MB de RAM. Si no es así podremos obtener un error del tipo: “g++: internal compiler error: Killed (program cc1plus)”.
#=======================================================================
cd /opt/instaladores wget http://www.mediafire.com/file/rka9tk7d0r1pfnv/check_mk-1.2.4p3.tar.gz/file tar -xzvf check_mk-1.2.4p3.tar.gz cd check_mk-1.2.4p3 ./setup.sh
#=======================================================================
NOTA: Las opciones que se tienen que cambiar, son las siguientes:
• Nagios command pipe: /usr/local/nagios/var/rw/nagios.cmd
• URL Prefix for Web addons: /site01/
• Apache config dir: /etc/apache2/sites-enabled
• Install Event Console: yes
#=======================================================================
Antes de lanzar la instalación, debería quedar configurada la instalación de la siguiente forma:
You have chosen the following directories: Executable programs /usr/bin Check_MK configuration /etc/check_mk Check_MK software /usr/share/check_mk documentation /usr/share/doc/check_mk check manuals /usr/share/doc/check_mk/checks working directory of check_mk /var/lib/check_mk extensions for agents /usr/lib/check_mk_agent configuration dir for agents /etc/check_mk Name of Nagios user nagios User of Apache process www-data Common group of Nagios+Apache nagcmd Nagios binary /usr/local/nagios/bin/nagios Nagios main configuration file /etc/nagios/nagios.cfg Nagios object directory /etc/nagios/check_mk.d Nagios startskript /etc/init.d/nagios Nagios command pipe /usr/local/nagios/var/rw/nagios.cmd Check results directory /usr/local/nagios/var/spool/checkresults Nagios status file /usr/local/nagios/var/status.dat Path to check_icmp /usr/local/nagios/libexec/check_icmp URL Prefix for Web addons /site01/ Apache config dir /etc/apache2/sites-enabled HTTP authentication file /etc/nagios/htpasswd.users HTTP AuthName Nagios Access PNP4Nagios templates /usr/share/check_mk/pnp-templates RRD files /var/lib/nagios/rrd rrdcached socket /tmp/rrdcached.sock compile livestatus module yes Nagios / Icinga version 4.4.4 check_mk's binary modules /usr/lib/check_mk Unix socket for Livestatus /usr/local/nagios/var/rw/live Backends for other systems /usr/share/check_mk/livestatus Install Event Console yes working directory of mkeventd /var/lib/mkeventd
Presionamos “y” y esperamos a que termine la instalación. Puede demorar unos minutos. Al finalizar, debe devolver lo siguiente:
Proceed with installation (y/n)? y (Compiling MK Livestatus.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................) (Compiling Event Console binaries.................................................................................) Installation completed successfully. Please restart Nagios and Apache in order to update/active check_mk's web pages. You can access the new Multisite GUI at http://localhost/site01/check_mk/
Creamos un enlace simbólico para check_mk en apache:
ln -s /etc/apache2/sites-enabled/zzz_check_mk.conf /etc/apache2/sites-available/zzz_check_mk.conf
Reiniciamos apache:
service apache2 restart
Habilitamos e iniciamos el demonio mkeventd:
systemctl daemon-reload systemctl start mkeventd.service
Reiniciamos el servidor:
service nagios restart
Una vez finalizada la instalación verificamos que la misma añadió las siguientes líneas al final del fichero: «/etc/nagios/nagios.cfg» (por defecto debería poder hacerlo):
. . . # Load Livestatus Module broker_module=/usr/lib/check_mk/livestatus.o /usr/local/nagios/var/rw/live event_broker_options=-1 # added by setup.sh of check_mk cfg_dir=/etc/nagios/check_mk.d
Accedemos a la web de check_mk:
http://192.168.100.3/site01/check_mk
Editamos el script de inicio de demonios de nagios, creado anteriormente:
nano /config/scripts/nagios.startup.sh
Agregamos el inicio del demonio “mkeventd” al script:
systemctl start mkeventd.service
4. Actualización de Nagios
En “nagios-debian9”:
En este tutorial hemos explicado cómo instalar nagios-core-4.4.4, sin embargo, las actualizaciones estables traen arreglos a bugs encontrados y se recomienda tener siempre actualizado el programa. En este apartado les explicaré, con unos sencillos pasos, cómo actualizar a la última versión estable, al término de esta guía, para que no tengan que compilar todo desde cero.
Detenemos el servicio de Nagios:
systemctl stop nagios.service
Procedemos a obtener el paquete de instalación:
cd /opt/instaladores wget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.5.tar.gz tar -xzvf nagios-4.4.5.tar.gz cd nagios-4.4.5
Preparamos su instalación, compilamos e instalamos:
./configure --with-command-group=nagcmd --with-httpd-conf=/etc/apache2/sites-enabled --sysconfdir=/etc/nagios make all make install make install-daemoninit
Iniciamos el servicio de nagios:
systemctl start nagios.service
Comprobamos la versión:
/usr/local/nagios/bin/nagios -V
Deberá devolver algo como esto:
Nagios Core 4.4.5 Copyright (c) 2009-present Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 2019-08-20 License: GPL . . .
Con esto hecho tenemos listo nuestro Nagios, actualizado a su última versión y sin perder nuestras configuraciones previas. Si accedemos a la web podremos ratificar esto:
5. Agregando íconos a Nagios y Check_MK
En “nagios-debian9”:
Si desea agregar otras imágenes al catálogo de nagios, debe ubicarlas en el mismo directorio y con los mismos permisos para el usuario y grupo “nagios”.
Listando el catálogo de imágenes de nagios:
ls -l /usr/local/nagios/share/images/logos
A continuación, les dejo un enlace para descargar el logo de Windows10 que me he creado para los servidores o estaciones que se monitoricen con este sistema operativo, ya que en los logos por defecto de nagios sólo viene el de Windows 98.
cd /usr/local/nagios/share/images/logos/ wget http://www.mediafire.com/file/jx8ifbs28te0qv4/my-logos.zip/file unzip my-logos.zip chown nagios:nagios nagios-logo.png chown nagios:nagios windows10-logo.png chown nagios:nagios fw.png chown nagios:nagios pve-logo.png
Copiamos los íconos del directorio «/usr/local/nagios/share/images/logos» y los pegamos en «/usr/share/check_mk/web/htdocs/images/icons»:
cp /usr/local/nagios/share/images/logos/* /usr/share/check_mk/web/htdocs/images/icons
Mozilla/5.0 (Linux; Android 9; MAR-LX3A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.117 Mobile Safari/537.36
Se puede hacer lo mismo pero con ubuntu 20.04 lts? Deseo monitorear un chr mikrotik y cliente windows
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0
Teoricamente si, se puede en Ubuntu
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Hola, segui los pasos al piede la letra pero cuando quiero activar los cambios me sale un error:
Cannot restart the monitoring core: /etc/init.d/nagios: 1: /etc/init.d/nagios: [Unit]: not found /etc/init.d/nagios: 5: /etc/init.d/nagios: [Install]: not found /etc/init.d/nagios: 8: /etc/init.d/nagios: [Service]: not found /etc/nagios/nagios.cfg: 22: /etc/nagios/nagios.cfg: Syntax error: Unterminated quoted string
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
hola Nael, algo debes tener mal, porque el fichero «nagios.cfg» es el fichero de configuración principal del programa. Verifica que hayas desempaquetado bien el compilado de nagios, los permisos de los ficheros. Recuerda que esta guía se basa en distros derivadas de Debian y que ha sido probada en Stretch y Buster. El sevicio «nagios» no está siendo reconocido, por lo que ve en tus errores, más preocupante es que dice que no existe el fichero de configuración. Trata de reiniciar y verificar que el servicio es reconocido. Si los errores persisten, descargate los compilados de nagios otra vez si es necesario (pesan 11MB aproximadamente). Recuerda que durante la instalación de nagios se especifica el directorio de configuración del programa en: «–sysconfdir=/etc/nagios»
Descargate la guía actualizada a la v1.3:
http://www.mediafire.com/file/flbyyact0ybgif7/Monitoreo_de_la_red_con_Nagios_%2528v2.1%2529.rar/file
(ten instalada al menos la versión 5.70 de winrar para descomprimir la guía)
SL2 y espero resuelvas
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
muchas gracias, ya esta corriendo. Al parecer en algun momento de la instalacion no creo los script para gestionar el servicio en /etc/init.d/ por eso me daba el paletazo en check_mk a la hora de salvar los cambios
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
http://192.168.100.3/nagios/
Carga con problemas la web en debian 10!
seguire intentanto!!!