En los posts anteriores (aquí y aquí) abordé cómo configurar los elementos que van a monitorizarse en la red para permitir su gestión desde el servidor Nagios. En este post voy a abordar la configuración de Nagios.
Nagios, de acuerdo a la instalación que tengo, mantiene la información de configuración en el directorio /usr/local/nagios/etc. Bajo este directorio y los subdirectorios correspondientes se encuentran una serie de ficheros de configuración.
El primer paso es traerse toda esta información de configuración al PC para poder editar los ficheros de forma más amigable (aunque vi/vim es un gran editor, prefiero hacerlo con UltraEdit). Después de los líos con la creación de una imagen y su montaje que tuve para transferir archivos desde el PC a una máquina virtual, descubrí que la forma más fácil de mover ficheros es a través de un pincho USB. Lo único que hay que hacer es añadir a las máquinas virtuales un controlador USB y, cuando se monta el controlador reconoce los dispositivos pinchados en el PC que ejecuta el vClient.
Reflexionando sobre el manejo de la cantidad de ficheros de configuración involucrados en el lab, se me ocurre que, probablemente sea una buena idea montar un control de versiones (por ejemplo, svn) para mantener gestionadas todas estas configuraciones (le echaré una pensada a lo largo de la semana).
Volviendo al tajo tras la digresión, lo que voy a hacer es organizar los elementos de configuración en una serie de subdirectorios, en la actualidad, lo que hay es un subdirectorio ‘objects’ con distintos objetos de configuración y uno ‘servers’ con los ficheros de configuración de los distintos hosts de la red. En el directorio raíz se encuentran los ficheros de configuración generales de Nagios. Mi plan es organizar la configuración de la siguiente forma:
-
En el directorio raíz los ficheros de configuración generales: nagios.cfg, resource.cfg, cgi.cfg, nrpe.cfg y htpasswd.users.
-
Subdirectorio commands. Ficheros .cfg de los distintos comandos.
-
Subdirectorio contactgroups. Ficheros .cfg de los contact groups.
-
Subdirectorio contacts. Ficheros .cfg de los contactos.
-
Subdirectorio hostgroups. Ficheros .cfg de los grupos de hosts.
-
Subdirectorio hosts. Ficheros .cfg de los distintos hosts existentes en el lab.
-
Subdirectorio services. Ficheros .cfg de los distintos servicios.
-
Subdirectorio servicegroups. Ficheros de .cfg correspondientes a los grupos de servicios.
-
Subdirectorio timeperiods. Ficheros .cfg con la configuración de períodos de tiempo.
Para que surja efecto es necesario que, en el fichero de configuración general de nagios (nagios.cfg), se establezca que estos directorios deberán ser contemplados en la carga de la configuración:
Una vez completada esta labor, lo que queda es pasarla al servidor nagios y probar la configuración. Empleando el pincho usb la transferencia de la configuración es coser y cantar y tras unas mínimas correcciones consigo que la configuración sea correcta:
Re-arranco Nagios y me conecto a la interfaz web desde una máquina virtual Lubuntu conectada a la red de gestión.
Se ve que los tres hosts de mi red están levantados pero tengo cuatro problemas críticos:
Los cuatro problemas críticos tienen que ver con el router vyos, uno de ellos es el servicio SSH que no estará levantado y los otros tres están relacionados con SNMP. Voy a investigar qué pasa.
Al editar la definición del servicio Uptime me doy cuenta enseguida del error. La community del comando check_snmp está puesta a public y en el setup de SNMP del router VyOS la community que establecí es mylab. Un pequeño cambio en la configuración de los servicios basados en SNMP y este problema debería quedar arreglado:
En el caso del SSH, voy a levantar el servicio SSH en el router vyos:
Ya sólo queda comprobar la configuración de Nagios, re-arrancar el servicio y ver qué pasa:
A priori, todo pinta bien, veamos cómo está el router VyOS:
Todo verde, tarea completada (por ahora) queda por definir qué voy a monitorizar del router, pero eso ya será en otro lugar.