Instalación de Nagios Core 4.4.1 en servidor Ubuntu 18.04

Objetivo:

En este documento instalaremos desde cero un servidor Nagios Core en su versión 4.4.1, este nos ayudará a monitorizar nuestros equipos, ya sean Windows, linux, switchs, routers, servidores vmware esxi, etc, etc. Habilitaremos las notificaciones por correo, cambiaremos el tema por defecto de Nagios Core, instalaremos pnp4nagios para tener gráficas de rendimiento de equipos y servicios (Muy útil para detectar patrones y tendencias) y finalmente añadiremos un equipo Windows en la monitorización a modo de prueba.

Resumen de los pasos que seguiremos:

1.- Instalaremos Ubuntu Server 18.04

2.- Instalaremos Nagios Core 4.4.1 y Plugins de Nagios 2.2.1

3.- Activaremos y probaremos notificaciones por correo electrónico

4.- Cambiaremos el tema por defecto de Nagios por otro más bonito, en este caso utilizaremos “Nuvola”

5.- Instalaremos graficos pnp4nagios para monitorizar rendimientos

6.- Instalaremos cliente en un equipo y lo añadiremos a la monitorización


1.- Instalación de Ubuntu Server 18.04

La instalación de Ubuntu se ha simplificado mucho en las ultimas versiones, si bien ya era sencillo en las versiones más antiguas, con la 18.04 es ya un juego de niños. Completaremos el asistente teniendo en cuenta un par de puntos que es bueno recordar.

  • Recomendación que no obligación instalar el sistema operativo en Inglés, puesto que en caso de error nos sera mucho más fácil encontrar documentación.
  • Configuramos la red, ip, puerta de enlace, servidores dns, dominio…. (La instalación permite configurar esto de manera muy sencilla)
  • Durante la instalación crearemos el usuario “nagios” si queremos podemos utilizar otro pero de ser así lo tendremos que crear posteriormente.
  • Particionaremos el disco duro según recomendación

Una vez finalizada la instalación y verificado que tenemos conectividad a red e Internet (Haremos ping a puerta de enlace y a dns de Internet), actualizaremos el sistema.


2.- Instalación de Nagios Core 4.4.1

2.1- Instalación de las dependencias y servicios que Nagios requiere

2.2.- Editamos el fichero hosts para añadir el nombre de servidor que se utilizará a la hora de enviar correos de notificación

Para este ejemplo añadimos los datos siguiente en la cabecera del archivo

2.3.- Descargamos el instalador de Nagios Core y los plugins

2.4.- Descromprimimos los ficheros descargados

2.5.- Preparamos los usuarios y permisos necesarios para Nagios

En caso de no haber creado el usuario “nagios” durante la instalación, lo haremos ahora, si así lo hicimos este primer comando se puede omitir

Creamos el grupo “nagcmd”

Agregamos el usuario “nagios” al grupo “nagcmd”

Agregamos el usuario “nagios” y el grupo “nagcmd” al grupo www-data utilizado por apache2

2.6.- Creamos el fichero de configuración

2.7.- Instalamos ejecutando cada uno de las lineas de comando por separado

2.8.- Comprobamos los ficheros de configuración de Nagios y iniciamos el servicio

2.9.- Activar el site en apache

Copiaremos el fichero de configuración del site a la carpeta /etc/apache2/sites-available

Creamos el vínculo permanente en sites-enabled

Reiniciamos el servicio apache2

Activamos el site

Reiniciamos nuevamente apache2

2.10.- Creación del password para el usuario nagiosadmin que se utilizará en el portal Nagios

2.11.- Instalamos los pluginsc ejecutando cada linea individualmente

2.12.- Configuramos el servicio nagios para que arranque automáticamente al iniciar el servidor

Llegados a este punto ya podemos abrir un navegador y mediante la dirección “http://ip_que_hayamos_configurado/nagios”, ver nuestra instalación de Nagios Core


3.- Configuración de las notificaciones por correo

3.1.- Primeramente editaremos el fichero de contactos donde se puede configurar la dirección o direcciones de correo donde vamos a enviar las notificaciones.

Ejemplo

3.2.- Ponemos el servidor en la zona horaria correcta, consultar para la vuestra en: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

3.3.- Damos permisos a la carpeta de cola

Ya podemos enviar una notificación de prueba


4.-  Cambiar tema por defecto de Nagios a Nuvola

Podemos en Nagios Core aplicar distintos temas que algunos usuarios han desarrollado para mejorar ligeramente su diseño, en este caso aplicaremos Nuvola. La instalación de cualquier otro seria muy parecida.

4.1.- Descargamos el tema

4.2.- Creamos carpeta y descomprimimos el fichero descargado

4.3.- Copiamos los ficheros necesarios a las carpetas Nagios


5.-  Instalación de pnp4nagios para monitorizar rendimientos

5.1.- Instalar dependencias como rrdtools y phpxml

5.2.- Descargamos pnp4nagios.

5.3- Descomprimimos

5.4.- Instalamos

5.5.- Creamos el vínculo al fichero de configuración del sitio en apache2

5.6.- Eliminar el fichero de configuración

Si abrimos la url de pnp4nagios http://myip/pnp4nagios vermos que tenemos que eliminar el fichero de configuración.

5.7.- Activamos la recopilación de datos de rendimiento en Nagios

Para ello tendremos que editar el fichero /usr/local/nagios/etc/nagios.cfg

Buscamos el “process_performance_data” y lo ponemos en 1

Seguidamente añadimos las lineas siguientes en el mismo fichero /usr/local/nagios/etc/nagios.cfg

5.8.- Ponemos el servicio npcd como automàtico

5.9.- Añandimos en comandos los destinos de datos

5.10.- Creamos las plantillas que invocaremos desde equipos o servicios

5.11.- Solucionamos el error “sizeof(): Parameter must be an array or an object that implements Countable”

Editamos el fichero data.php y vamos a la linea afectada, en este caso la [979]

Modificaremos la linea “if(sizeof($pages) > 0 ){” y quedará del siguiente modo

5.12.- Añadimos la graficación en los hosts o servicios.

Editando archivos localhost.cfg o windows.cfg, podemos añadir las plantillas que hemos definido en el paso 5.10, esto lo haremos añadiendo host-pnp o srv-pnp en la propiedad host, dependiendo de si se trata de un servicio o un host

Ejemplo:

5.13.- Añadimos los pop up de vista previa de los gráficos.


6.-  Instalación del cliente en un equipo y añadir a monitorización

Para monitorizar un equipo (Por ejemplo un servidor), es necesario tener en cuenta un par de cosillas. Lo primero instalar el software de monitorización y posteriormente dar de alta el servidor en el fichero de configuración de Nagios, aquí veremos un ejemplo

6.1.- Descargamos el cliente apropiado para nuestra versión de sistema operativo

https://www.nsclient.org/

6.2.- Procedemos a la instalación

Seleccionamos “Generic”

“Typical”

Indicamos la IP de Nuestro servidor Nagios

Finalizamos

6.3.- Editamos el fichero nsclient.ini para activar las monitorizaciones.

Este fichero en equipos Windows se encuentra en: C:\Program Files\NSClient++ aquí modificaremos los “disabled” por un “1”, de manera que nos va a quedar algo parecido a lo siguiente

6.4.- Reiniciamos el servicio

6.5.- En nuestro servidor Nagios activamos la lectura de la plantilla windows.cfg.

Para hacer esto editaremos el fichero /usr/local/nagios/etc/nagios.cfg y quitaremos el “#” de comentario en la linia cfg_file=/usr/local/nagios/etc/objects/windows.cfg

6.6.- Finalmente solo necesitamos añadir el equipo y los servicios que vamos a monitorizar en el fichero /usr/local/nagios/etc/objects/windows.cfg

Aquí ya vemos un ejemplo de equipo etiquetado como “winserver”, nos podemos basar en él.

Ejemplo:

En este vínculo podemos encontrar las configuraciones que podemos aplicar a cada uno de los objetos, es muy importante que lo revisemos puesto que nos ayudará a adaptar cada monitorización a nuestras necesidades

https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/objectdefinitions.html

Reiniciamos Nagios y esperamos unos minutos a ver los resultados


Y hasta aquí este tutorial de como instalar y configurar Nagios core, he intentado que fuera lo más sencillo posible para minimizar errores y que todo el mundo lo pueda seguir, evidentemente esto es solo la punta del iceberg, pero creo que es suficiente para poner en marcha este servicio e ir desarrollando a partir de aquí.

Saludos

4 Comments

Add a Comment

Your email address will not be published. Required fields are marked *

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