Ir al contenido

AdGuard Home

El propio filtro DNS: si la protección está activada, si su servidor DNS funciona, qué respondió y bloqueó, si sus listas de filtro aún se actualizan, si sus servidores upstream responden, y si hay una versión más reciente disponible.

Un filtro DNS roto no parece roto. Las páginas siguen abriéndose, con sus anuncios. Los fallos habituales son silenciosos: protección pausada «durante una hora» desde la app del teléfono y nunca reactivada, listas de filtro que dejaron de descargarse hace semanas, un servidor DNS-over-HTTPS upstream que ya no responde así que cada búsqueda espera al siguiente.

DumbMonit lee la API REST de AdGuard Home (/control) con autenticación básica HTTP. Probado contra AdGuard Home v0.107.79 (y la comprobación de versión v0.107.78).

Todas las métricas tienen el prefijo dumbmonit_adguard_. Las cifras de consultas y bloqueos son sumas sobre la ventana de estadísticas de AdGuard Home (24 horas a menos que se cambie en Settings → General settings), no contadores: suben y bajan al desplazarse la ventana, y se guardan tal cual.

MétricaQuéEtiquetas
running1 cuando el servidor DNS está en ejecución
protection_enabled1 cuando la protección está activada
protection_paused_secondstiempo restante antes de que una protección pausada vuelva a activarse, 0 sin pausa
version_infovalor 1version
dns_queriesconsultas en la ventana de estadísticas
blocked_filteringconsultas bloqueadas por las listas de filtro y reglas personalizadas
replaced_safebrowsing, replaced_parental, replaced_safesearchrespuestas sustituidas por Browsing security, Parental control, Safe search
blocked_percentproporción de consultas bloqueadas (filtros, Browsing security, Parental control); ausente sin ninguna consulta
avg_processing_secondstiempo promedio de respuesta
stats_window_seconds, stats_enabledla ventana de estadísticas y si se conservan estadísticas (0.107.30 y posteriores)
upstream_responses, upstream_avg_secondsrespuestas y tiempo de respuesta promedio por upstream en la ventana, tal como lo muestra el Top upstreams del panel (como máximo 8)upstream
upstream_up1 cuando la propia prueba de AdGuard Home de ese upstream tiene éxito; 0 cuando falla o no da ninguna respuesta en 4 segundos (como máximo 8). La etiqueta es el upstream tal como AdGuard Home lo escribe en sus estadísticas (https://dns10.quad9.net:443/dns-query, 192.0.2.1:53); para un upstream que permaneció en silencio, la línea tal como está configurada.upstream
filtering_enabled1 cuando el filtrado está activado en Settings → General settings
filters, filters_enabledlistas de bloqueo configuradas, y activadas
filter_rulesreglas cargadas desde las listas activadas
filter_rules_count, filter_update_age_secondspor lista activada (como máximo 32)filter
filter_oldest_update_age_secondsantigüedad de la actualización más antigua entre las listas activadas
filters_never_updatedlistas activadas que nunca se descargaron
filter_update_interval_hourscon qué frecuencia se actualizan las listas; 0 desactiva las actualizaciones
update_check_enabled0 cuando AdGuard Home se ejecuta con su comprobación de versión desactivada
update_available1 cuando la última comprobación de versión anunció una versión más reciente; ausente cuando la comprobación está desactivadalatest
scrape_errorsllamadas secundarias que fallaron en la última comprobación

La comprobación de versión está desactivada en la imagen Docker oficial y en la mayoría de los paquetes de distribución, que actualizan AdGuard Home por sí mismos: ahí, update_available nunca se escribe y su regla permanece en silencio.

Las estadísticas de upstream solo cuentan respuestas: un upstream que deja de responder no deja rastro en ellas. Por eso DumbMonit pide a AdGuard Home que pruebe cada upstream en cada comprobación, la misma prueba que el botón Test upstreams en Settings → DNS settings: una consulta DNS de AdGuard Home hacia ese upstream. Un upstream muerto mantendría a AdGuard Home esperando el doble de su timeout de upstream (20 segundos por defecto); DumbMonit deja de esperar tras 4 segundos y lo reporta como caído. Desmarca la opción Test upstream servers para desactivar esto.

Las reglas integradas que se aplican: AdGuard Home protection off, AdGuard Home DNS not running, AdGuard Home upstream failing, AdGuard Home filter lists stale, AdGuard Home update available, además de Monitor unreachable.

El panel sobre las gráficas lee lo que guardó la sonda; abrir la página nunca se conecta a AdGuard Home. Indica si la protección y el servidor DNS están activados (y cuándo termina una pausa), luego las consultas, bloqueos y tiempo de respuesta en la ventana de estadísticas, los servidores upstream con su resultado de prueba y tiempo de respuesta, y las listas de filtro con sus reglas y última actualización.

Añadir un usuario para DumbMonit en AdGuard Home

Sección titulada «Añadir un usuario para DumbMonit en AdGuard Home»
  1. AdGuard Home no tiene ninguna cuenta de solo lectura: cada usuario listado en AdGuardHome.yaml puede cambiar cada ajuste. Dale a DumbMonit un usuario propio, para poder eliminarlo sin tocar el tuyo. Primero crea un hash bcrypt de una contraseña larga y aleatoria (htpasswd viene con el paquete apache2-utils o httpd-tools):

    htpasswd -B -C 10 -n -b dumbmonit 'LONG-RANDOM-PASSWORD'
  2. Detén AdGuard Home, abre AdGuardHome.yaml (junto al binario de AdGuardHome, o en la carpeta conf del volumen Docker) y añade esta línea bajo «users:», con la misma indentación que la línea «- name:» ya existente. Sustituye HASH por lo que imprimió htpasswd después de «dumbmonit:». Vuelve a iniciar AdGuard Home.

    - { name: dumbmonit, password: "HASH" }

    La sección queda entonces:

    users:
    - { name: dumbmonit, password: "$2y$10$…" }
    - name: yourname
    password: $2a$10$…
  3. Comprueba desde el host de DumbMonit que el usuario es aceptado:

    curl -u dumbmonit http://adguard.lan/control/status
  4. En DumbMonit, introduce la dirección de la interfaz web de AdGuard Home, por ejemplo «adguard.lan» (puerto 80) o «http://adguard.lan:3000», y luego el usuario dumbmonit y su contraseña.

  5. DumbMonit solo lee el estado, las estadísticas, las listas de filtro y la última comprobación de versión. Nunca lee el registro de consultas. En cada comprobación pide a AdGuard Home que pruebe cada servidor DNS upstream, como hace el botón Test upstreams; desmarca Test upstream servers abajo para detener eso.

AdGuard Home debe estar detenido mientras editas el archivo: reescribe AdGuardHome.yaml cada vez que cambia un ajuste, y descartaría una línea añadida mientras se ejecuta.

CredencialCampos
Nombre de usuario / contraseñaEl usuario dedicado añadido a AdGuardHome.yaml, enviado como autenticación básica HTTP.
Sin autenticaciónSolo para un AdGuard Home sin ningún usuario en AdGuardHome.yaml.

Dirección: un nombre de host o IP (adguard.lan), host:puerto, o una URL completa con un prefijo de ruta detrás de un proxy inverso (https://dns.lan/adguard); se ignora un /control final. Opciones: protocolo (HTTP por defecto), puerto (80), comprobación de certificado, tiempo de espera de la petición (5 s) y la prueba de upstream (activada).

LlamadaPor qué
GET /control/statusen ejecución, protección, versión: la única llamada cuyo fallo hace fallar la comprobación
GET /control/stats, GET /control/stats/configconsultas, bloqueos, respuestas de upstream, ventana de estadísticas
GET /control/filtering/statuslistas de filtro
POST /control/version.json con {"recheck_now": false}el resultado de la última comprobación de versión, tal como la lee la interfaz web en cada carga de página; nunca fuerza una comprobación nueva
GET /control/dns_info, luego POST /control/test_upstream_dns una vez por upstreamlos upstreams y servidores bootstrap configurados, y luego la prueba de upstream; no cambia ningún ajuste