Pular para o conteúdo

Tailscale

Os dispositivos de uma tailnet através da API do Tailscale: servidores que ficaram offline, chaves de nó a expirar em breve, dispositivos à espera de aprovação, e clientes com uma atualização disponível.

O DumbMonit lê GET /api/v2/tailnet/{tailnet}/devices em api.tailscale.com, uma vez por minuto. A credencial recomendada é um cliente OAuth limitado ao âmbito devices:core:read: o DumbMonit troca o seu ID e segredo por um token de uma hora (/api/v2/oauth/token) e mantém-o até expirar. Pode listar os dispositivos e não pode alterar nada. Um token de acesso de API (tskey-api-…) também funciona, mas transporta todos os direitos do utilizador que o criou e expira no máximo após 90 dias.

Esta é uma API da Internet: o endereço do monitor é o da API, não de uma máquina. O DumbMonit precisa de HTTPS de saída para api.tailscale.com; nada na tailnet é contactado.

Todas as métricas têm o prefixo dumbmonit_tailscale_. Um dispositivo é nomeado pela primeira etiqueta do seu nome MagicDNS (nas para nas.tail1234.ts.net). Os dispositivos partilhados na tailnet a partir de outra são contados, não descritos.

MétricaEtiquetasSignificado
device_onlinedevice1 enquanto o dispositivo está ligado ao servidor de coordenação.
device_offline_secondsdevice0 enquanto online, caso contrário o tempo desde que foi visto por último.
device_watcheddevice1 quando o dispositivo tem de ficar online: todo dispositivo etiquetado por predefinição, ou os nomeados na opção abaixo.
device_key_expiry_secondsdeviceAté a chave de nó expirar; ausente quando a expiração de chave está desativada.
device_authorizeddevice0 enquanto o dispositivo espera por aprovação.
device_update_availabledevice1 quando o Tailscale oferece um cliente mais recente.
device_infodevice, os, client_version, tagsValor 1.
devices, devices_online, devices_external, devices_update_available, devices_unauthorized, devices_watched_offlineContagens.

Só os dispositivos monitorizados geram um alerta quando ficam offline: um telefone ou um portátil que dorme não é uma indisponibilidade. Os dispositivos etiquetados são, na prática, os servidores, routers de sub-rede e nós de saída; liste outros na opção Devices to keep online, ou introduza all.

As regras incorporadas que se aplicam:

  • Tailscale device offline: um dispositivo monitorizado desligou-se durante mais de 15 minutos (Advisory).
  • Tailscale node key expiring: menos de 14 dias restantes (Advisory, lembrado diariamente). Quando expira, o dispositivo sai da tailnet até alguém iniciar sessão nele de novo.
  • Tailscale device awaiting approval (Advisory): aprove-o se for esperado, remova-o caso contrário.
  • Tailscale client update: um dispositivo monitorizado tem uma atualização de cliente há seis horas (Info, lembrado semanalmente).

Todo dispositivo da tailnet, monitorizado ou não (exceto os partilhados), é publicado sob a família genérica partilhada por toda integração do DumbMonit que acompanha dispositivos cliente — dumbmonit_client_device_*, prefixada sem tailscale, documentada na íntegra em Dispositivos cliente:

MétricaO quêEtiquetas
last_seen_timestamp_secondsÚltima ligação: «agora» enquanto connectedToControl é verdadeiro, caso contrário lastSeendevice, type (Tagged ou Personal), os, user, kind
stale_secondsPositivo uma vez que um dispositivo passou device_stale_days (3 por predefinição) sem se ligar; alimenta a regra Dispositivo obsoletodevice, type, os, user, kind, signal (sempre connection: o Tailscale não tem nenhuma cópia de segurança a reportar)

Um telefone ou um portátil que viaja pode passar vários dias sem se ligar: isto não está relacionado com a definição Devices to keep online acima, que só gera um alerta para dispositivos monitorizados a ficar offline. Suba Device staleness para uma tailnet com dispositivos que circulam.

O painel Tailnet diz o que está mal numa frase, mostra os dispositivos online, os dispositivos monitorizados offline, as atualizações disponíveis e os dispositivos partilhados, depois lista os dispositivos monitorizados e qualquer dispositivo à espera de aprovação ou cuja chave expira em breve, depois a tabela de todo dispositivo com a sua última ligação.

Criar um cliente OAuth só de leitura para o DumbMonit

Seção intitulada “Criar um cliente OAuth só de leitura para o DumbMonit”
  1. Na consola Tailscale (login.tailscale.com), abra Settings > Trust credentials (anteriormente OAuth clients) e gere um cliente OAuth só com o âmbito devices:core:read. Lista os dispositivos e não pode alterar nada.

  2. Copie o ID do cliente e o segredo do cliente (tskey-client-…), mostrados uma vez. No DumbMonit, introduza api.tailscale.com como endereço e cole-os como Client ID e Client secret. Deixe a opção Tailnet vazia: a tailnet do cliente é lida.

CredencialCampos
Cliente OAuthID e segredo do cliente (tskey-client-…) de um cliente com o âmbito devices:core:read.
Token de acesso de APIUm token tskey-api-…, enviado como token bearer.

Endereço: api.tailscale.com. Opções:

  • Tailnet: vazio para a tailnet das credenciais, ou o nome da tailnet mostrado na consola Tailscale.
  • Devices to keep online: nomes de dispositivo ou etiquetas separados por vírgulas (nas, tag:router), ou all. Vazio: todo dispositivo etiquetado.
  • Timeout per request (15 s).
  • Device staleness (device_stale_days, 3 dias por predefinição).

«Tailscale refused the OAuth client»: o ID ou o segredo está errado, ou o cliente foi eliminado.

«Tailscale refused to list the devices (403)»: o cliente não tem o âmbito devices:core:read.

«Tailscale knows no tailnet …»: deixe a opção Tailnet vazia.