Cómo monitorizar un servidor DNS con Pi-hole, en Linux Debian, mediante el sistema de monitorización Pandora FMS. Mostraremos cómo monitorizar los módulos habituales de un servidor Linux: CPU, RAM, espacio en discos, ping, latencia, último login (usuario/ip cliente), carga media, total procesos, … y la monitorización propiamente dicha de Pi-hole, como: número de consultas DNS totales realizadas en las últimas 24 horas, número de consultas totales realizadas en los últimos 5 minutos, número de consultas DNS bloqueadas en las últimas 24 horas, número de consultas DNS bloqueadas en los últimos 5 minutos, etc.

Requisitos para monitorizar servidor DNS Pi-hole con Pandora FMS

En primer lugar dispondremos de un servidor de monitorización con Pandora FMS. En el siguiente artículo explicamos cómo montar un servidor de monitorización con Pandora FMS versión Community (gratuita):

Dispondremos también de un servidor Linux Debian con Pi-hole. En el siguiente enlace explicamos cómo montar un servidor DNS con Pi-hole en Linux:

Necesitaremos un usuario y contraseña con permisos suficientes para acceso al servidor DNS Pi-hole.

Monitorizar equipo Linux Debian con Pandora FMS

Instalaremos el agente de Pandora FMS en el servidor Linux Debian de Pi-hole, tal y como indicamos en este artículo:

Con esto tendremos monitorizado el sistema operativo y el equipo Linux Debian donde residirá el servicio DNS con Pi-hole. Como indicamos en el artículo anterior, se monitorizarán la carga de CPU, el uso de la memoria RAM, espacio libre en los discos, número de procesos, carga media del sistema, último usuario que inició sesión, ping, latencia, estado del servicio SSH, etc.

Monitorizar Pi-hole en Linux Debian con Pandora FMS

Una vez instalado el agente de Pandora FMS en el equipo Linux Debian con Pi-hole (como hemos indicado anteriormente), realizaremos pruebas para verificar que la ejecución de los siguientes comandos funciona y devuelve valores numéricos. Esto lo haremos en la consola (shell) de comandos de Linux, accediendo, por ejemplo, mediante SSH con PuTTY. En el siguiente artículo explicamos cómo obtener información de un servidor DNS Pi-hole, accediendo a su base de datos SQLite:

Pretendemos obtener los siguientes datos, para monitorizarlos:

Dato a obtenerComando para obtenerloDevuelve
Numero de consultas DNS totales realizadas en los últimos 5 minutossqlite3 /etc/pihole/pihole-FTL.db «select count(*) from queries where timestamp>=strftime(‘%s’,’now’)-300»Un número
Número de consultas DNS totales realizadas en las últimas 24 horassqlite3 /etc/pihole/pihole-FTL.db «select count(*) from queries where timestamp>=strftime(‘%s’,’now’)-86400»Un número
Número de consultas DNS bloqueadas en los últimos 5 minutossqlite3 /etc/pihole/pihole-FTL.db «select count(*) from queries where status in (1,4,5,9,10,11) and timestamp>=strftime(‘%s’,’now’)-300»Un número
Número de consultas DNS bloqueadas en las últimas 24 horassqlite3 /etc/pihole/pihole-FTL.db «select count(*) from queries where status in (1,4,5,9,10,11) and timestamp>=strftime(‘%s’,’now’)-86400»Un número

Comprobaremos estos comandos desde la línea de comandos, para verificar que funcionan correctamente, por ejemplo:

Devolverá algo así:

Monitorizar Pi-hole en Linux Debian con Pandora FMS

Además, esta primera ejecución nos servirá para anotar los valores devueltos en cada consulta. Así podremos establecer umbrales en cada módulo (sonda/sensor/monitor) para que se lancen alertas en caso de superar ese umbral. Por ejemplo, si en nuestra organización las consultas DNS totales habituales en 5 minutos son de unas 50.000, podremos indicar un umbral de estado de aviso (warning) entre 55.000 y 65.000 y un umbral de estado crítico (critical) cuando superen las 65.001. Así podremos añadir una alarma para que nos avise (por mail, telegram, sms) cuando se pasa a estado crítico.

Una vez revisados los comandos, el siguiente paso será agregar los módulos correspondientes en el fichero de configuración del agente de Pandora FMS en Linux. Para ello editaremos este fichero (que habitualmente suele estar en sudo /etc/pandorafms/pandora_agent.conf:

Al final de este fichero, añadiremos los siguientes módulos:

Modificaremos los umbrales para warning y critical, para cada módulo, ajustándolos a los de nuestra organización. Incluso si no queremos cambios de estados, podremos omitir los umbrales, quitando las líneas:

Guardaremos los cambios pulsando Control + O y cerraremos con Control + X. A continuación reiniciaremos el servicio de Pandora Agent en Linux con:

Comprobamos que está en estado «active (running» con:

Monitorizar Pi-hole en Linux Debian con Pandora FMS

Monitorizar servicio Pi-hole en Linux con Pandora FMS

Monitorizaremos también el estado del servicio (demonio/daemon) de Linux «pihole-FTL» en Pandora FMS. Para monitorizar un servicio Linux, usaremos el siguiente comando:

Si lo ejecutamos desde la línea de comandos del equipo Linux con el DNS Pi-hole, deberíamos obtener el valor «1», indicando que el servicio «pihole-FTL» está iniciado:

Si devuelve «0» indica que no está iniciado o no existe.

Añadiremos el siguiente módulo al fichero /etc/pandorafms/pandora_agent.conf para monitorizar el estado de un servicio Linux, en este caso el servicio de Pi-hole:

Revisar módulos/sensores/sondas en consola web del servidor de Pandora FMS

Esperaremos unos segundos y accederemos a la consola web de Pandora FMS. Buscaremos el agente (servidor/dispositivo) y accederemos a su detalle. Podremos comprobar que, además de los módulos habituales para un servidor Linux, ya aparecen los módulos, agregados anteriormente al fichero de configuración del agente, para monitorizar Pi-hole:

Revisar módulos/sensores/sondas en consola web del servidor de Pandora FMS

Desde aquí podremos modificar los umbrales establecidos, pulsando en el icono de la llave de un módulo:

Revisar módulos/sensores/sondas en consola web del servidor de Pandora FMS

Ajustaremos los umbrales y cualquier otro dato del módulo:

Revisar módulos/sensores/sondas en consola web del servidor de Pandora FMS

Una vez configurados los umbrales, podremos establecer alertas para que nos avise, en caso de superar estos umbrales:

Revisar módulos/sensores/sondas en consola web del servidor de Pandora FMS

Por supuesto, podremos agregar tantos monitores/módulos/sondas como necesitemos, obteniendo los datos de la base de datos SQLite. Por ejemplo, otro monitor interesante podría ser obtener el equipo que más consultas DNS ha realizado en las últimas 24 horas, con:

Agregando el módulo al fichero /etc/pandorafms/pandora_agent.conf de Pandora Agent:

A partir de ahora recibiremos las alertas cuando un módulo supere los umbrales, por el medio que hayamos establecido:

Revisar módulos/sensores/sondas en consola web del servidor de Pandora FMS