Pular para o conteúdo

AdGuard Home

O próprio filtro DNS: se a proteção está ativa, se o seu servidor DNS corre, o que respondeu e bloqueou, se as suas listas de filtros ainda se atualizam, se os seus servidores a montante respondem, e se uma versão mais recente está disponível.

Um filtro DNS avariado não parece avariado. As páginas continuam a abrir, com os seus anúncios. As falhas habituais são silenciosas: proteção pausada «por uma hora» a partir da app do telefone e nunca mais reativada, listas de filtros que deixaram de descarregar há semanas, um servidor DNS-over-HTTPS a montante que já não responde pelo que toda procura espera pelo seguinte.

O DumbMonit lê a API REST do AdGuard Home (/control) com autenticação HTTP básica. Testado contra o AdGuard Home v0.107.79 (e a verificação de versão v0.107.78).

Todas as métricas têm o prefixo dumbmonit_adguard_. Os valores de consultas e bloqueios são somas sobre a janela de estatísticas do AdGuard Home (24 horas a menos que alterado em Settings → General settings), não contadores: sobem e desçem conforme a janela deslizar, e são guardados como estão.

MétricaO quêEtiquetas
running1 quando o servidor DNS corre
protection_enabled1 quando a proteção está ativa
protection_paused_secondstempo restante antes de uma proteção pausada voltar a ligar, 0 sem pausa
version_infovalor 1version
dns_queriesconsultas na janela de estatísticas
blocked_filteringconsultas bloqueadas pelas listas de filtros e regras personalizadas
replaced_safebrowsing, replaced_parental, replaced_safesearchrespostas substituídas por Browsing security, Parental control, Safe search
blocked_percentfração de consultas bloqueadas (filtros, Browsing security, Parental control); ausente sem nenhuma consulta
avg_processing_secondstempo médio para responder
stats_window_seconds, stats_enableda janela de estatísticas e se as estatísticas são mantidas (0.107.30 e posterior)
upstream_responses, upstream_avg_secondsrespostas e tempo médio de resposta por servidor a montante na janela, como o Top upstreams do painel os mostra (no máximo 8)upstream
upstream_up1 quando o próprio teste do AdGuard Home desse servidor a montante passa; 0 quando falha ou não dá nenhuma resposta dentro de 4 segundos (no máximo 8). A etiqueta é o servidor a montante como o AdGuard Home o escreve nas suas estatísticas (https://dns10.quad9.net:443/dns-query, 192.0.2.1:53); para um servidor a montante que ficou silencioso, a linha como configurada.upstream
filtering_enabled1 quando a filtragem está ativa em Settings → General settings
filters, filters_enabledlistas de bloqueio configuradas, e ativadas
filter_rulesregras carregadas das listas ativadas
filter_rules_count, filter_update_age_secondspor lista ativada (no máximo 32)filter
filter_oldest_update_age_secondsidade da atualização mais antiga entre as listas ativadas
filters_never_updatedlistas ativadas que nunca foram descarregadas
filter_update_interval_hourscom que frequência as listas são atualizadas; 0 desliga as atualizações
update_check_enabled0 quando o AdGuard Home corre com a sua verificação de versão desligada
update_available1 quando a última verificação de versão anunciou uma versão mais recente; ausente quando a verificação está desligadalatest
scrape_errorschamadas secundárias que falharam na última verificação

A verificação de versão está desligada na imagem Docker oficial e na maioria dos pacotes de distribuição, que atualizam o AdGuard Home eles próprios: aí, update_available nunca é escrita e a sua regra fica silenciosa.

As estatísticas de servidores a montante só contam respostas: um servidor a montante que deixa de responder não deixa nenhum rasto nelas. É por isso que o DumbMonit pede ao AdGuard Home para testar cada servidor a montante em cada verificação, o mesmo teste do botão Test upstreams em Settings → DNS settings: uma consulta DNS do AdGuard Home para esse servidor a montante. Um servidor a montante morto deixaria o AdGuard Home à espera durante o dobro do seu tempo limite a montante (20 segundos por predefinição); o DumbMonit para de esperar depois de 4 segundos e reporta-o como em baixo. Desmarque a opção Test upstream servers para desligar isto.

As regras incorporadas que se aplicam: AdGuard Home protection off, AdGuard Home DNS not running, AdGuard Home upstream failing, AdGuard Home filter lists stale, AdGuard Home update available, mais Monitor unreachable.

O painel acima dos gráficos lê o que a verificação guardou; abrir a página nunca liga ao AdGuard Home. Mostra se a proteção e o servidor DNS estão ativos (e quando termina uma pausa), depois as consultas, bloqueios e tempo de resposta ao longo da janela de estatísticas, os servidores a montante com o seu resultado de teste e tempo de resposta, e as listas de filtros com as suas regras e última atualização.

Adicionar um utilizador para o DumbMonit no AdGuard Home

Seção intitulada “Adicionar um utilizador para o DumbMonit no AdGuard Home”
  1. O AdGuard Home não tem conta só de leitura: todo utilizador listado em AdGuardHome.yaml pode alterar toda definição. Dê ao DumbMonit um utilizador próprio, para que possa ser removido sem tocar no seu. Primeiro crie um hash bcrypt de uma senha longa e aleatória (htpasswd vem com o pacote apache2-utils ou httpd-tools):

    htpasswd -B -C 10 -n -b dumbmonit 'LONG-RANDOM-PASSWORD'
  2. Pare o AdGuard Home, abra AdGuardHome.yaml (junto ao binário AdGuardHome, ou na pasta conf do volume Docker) e adicione esta linha sob «users:», à mesma indentação da linha «- name:» já existente. Substitua HASH pelo que o htpasswd imprimiu depois de «dumbmonit:». Inicie o AdGuard Home de novo.

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

    A secção lê-se então:

    users:
    - { name: dumbmonit, password: "$2y$10$…" }
    - name: yourname
    password: $2a$10$…
  3. Verifique a partir do anfitrião do DumbMonit que o utilizador é aceite:

    curl -u dumbmonit http://adguard.lan/control/status
  4. No DumbMonit, introduza o endereço da interface web do AdGuard Home, por exemplo «adguard.lan» (porta 80) ou «http://adguard.lan:3000», depois o utilizador dumbmonit e a sua senha.

  5. O DumbMonit só lê o estado, as estatísticas, as listas de filtros e a última verificação de versão. Nunca lê o registo de consultas. A cada verificação pede ao AdGuard Home para testar cada servidor DNS a montante, como o botão Test upstreams faz; desmarque Test upstream servers abaixo para parar isso.

O AdGuard Home tem de estar parado enquanto edita o ficheiro: reescreve o AdGuardHome.yaml sempre que uma definição muda, e descartaria uma linha adicionada enquanto corre.

CredencialCampos
Nome de utilizador / senhaO utilizador dedicado adicionado ao AdGuardHome.yaml, enviado como autenticação HTTP básica.
Sem autenticaçãoSó para um AdGuard Home sem nenhum utilizador no AdGuardHome.yaml.

Endereço: um nome de anfitrião ou IP (adguard.lan), anfitrião:porta, ou um URL completo com um prefixo de caminho atrás de um proxy inverso (https://dns.lan/adguard); um /control final é ignorado. Opções: protocolo (HTTP por predefinição), porta (80), verificação de certificado, tempo limite do pedido (5 s) e o teste de servidores a montante (ativado).

ChamadaPorquê
GET /control/statusem execução, proteção, versão: a única chamada cuja falha faz a verificação falhar
GET /control/stats, GET /control/stats/configconsultas, bloqueios, respostas a montante, janela de estatísticas
GET /control/filtering/statuslistas de filtros
POST /control/version.json com {"recheck_now": false}o resultado da última verificação de versão, como a interface web a lê em cada carregamento de página; nunca força uma nova verificação
GET /control/dns_info, depois POST /control/test_upstream_dns uma vez por servidor a montanteos servidores a montante e de bootstrap configurados, depois o teste a montante; não altera nenhuma definição