Ir al contenido

Tailscale

Los dispositivos de una tailnet a través de la API de Tailscale: servidores que se desconectaron, claves de nodo a punto de caducar, dispositivos esperando aprobación, y clientes con una actualización disponible.

DumbMonit lee GET /api/v2/tailnet/{tailnet}/devices en api.tailscale.com, una vez por minuto. La credencial recomendada es un cliente OAuth limitado al alcance devices:core:read: DumbMonit intercambia su ID y secreto por un token de una hora (/api/v2/oauth/token) y lo conserva hasta que caduca. Puede listar los dispositivos y no puede cambiar nada. Un token de acceso de API (tskey-api-…) también funciona, pero lleva todos los derechos del usuario que lo creó y caduca a los 90 días como máximo.

Esta es una API de Internet: la dirección del monitor es la de la API, no la de una máquina. DumbMonit necesita HTTPS saliente hacia api.tailscale.com; nada en la tailnet se contacta.

Todas las métricas tienen el prefijo dumbmonit_tailscale_. Un dispositivo se nombra por la primera etiqueta de su nombre MagicDNS (nas para nas.tail1234.ts.net). Los dispositivos compartidos hacia la tailnet desde otra se cuentan, no se describen.

MétricaEtiquetasSignificado
device_onlinedevice1 mientras el dispositivo está conectado al servidor de coordinación.
device_offline_secondsdevice0 mientras está en línea, si no el tiempo desde que se vio por última vez.
device_watcheddevice1 cuando el dispositivo debe permanecer en línea: cada dispositivo etiquetado por defecto, o los nombrados en la opción de abajo.
device_key_expiry_secondsdeviceHasta que caduca la clave de nodo; ausente cuando la caducidad de clave está desactivada.
device_authorizeddevice0 mientras el dispositivo espera aprobación.
device_update_availabledevice1 cuando Tailscale ofrece un cliente más reciente.
device_infodevice, os, client_version, tagsValor 1.
devices, devices_online, devices_external, devices_update_available, devices_unauthorized, devices_watched_offlineRecuentos.

Solo los dispositivos vigilados generan una alerta cuando se desconectan: un teléfono o un portátil que duerme no es una caída. Los dispositivos etiquetados son, en la práctica, los servidores, routers de subred y exit nodes; lista otros en la opción Devices to keep online, o introduce all.

Las reglas integradas que se aplican:

  • Tailscale device offline: un dispositivo vigilado se desconectó durante más de 15 minutos (Advisory).
  • Tailscale node key expiring: menos de 14 días restantes (Advisory, recordado diariamente). Cuando caduca, el dispositivo abandona la tailnet hasta que alguien vuelve a iniciar sesión.
  • Tailscale device awaiting approval (Advisory): apruébalo si es esperado, elimínalo en caso contrario.
  • Tailscale client update: un dispositivo vigilado tiene una actualización de cliente durante seis horas (Info, recordado semanalmente).

Cada dispositivo de la tailnet, vigilado o no (dispositivos compartidos excepto), se publica bajo la familia genérica compartida por toda integración de DumbMonit que rastrea dispositivos cliente — dumbmonit_client_device_*, con prefijo sin tailscale, documentada por completo en Dispositivos cliente:

MétricaQuéEtiquetas
last_seen_timestamp_secondsÚltima conexión: «ahora» mientras connectedToControl es verdadero, si no lastSeendevice, type (Tagged o Personal), os, user, kind
stale_secondsPositivo una vez que un dispositivo ha superado device_stale_days (3 por defecto) sin conectarse; impulsa la regla Client device staledevice, type, os, user, kind, signal (siempre connection: Tailscale no tiene copia de seguridad que reportar)

Un teléfono o un portátil que viaja puede pasar varios días sin reconectarse: esto no tiene relación con el ajuste Devices to keep online de arriba, que solo genera una alerta para dispositivos vigilados que se desconectan. Eleva Device staleness para una tailnet con dispositivos que se desplazan.

El panel Tailnet indica en una frase qué va mal, muestra los dispositivos en línea, los dispositivos vigilados desconectados, las actualizaciones disponibles y los dispositivos compartidos, luego lista los dispositivos vigilados y cualquier dispositivo esperando aprobación o cuya clave caduca pronto, y después la tabla de todos los dispositivos con su última conexión.

Crear un cliente OAuth de solo lectura para DumbMonit

Sección titulada «Crear un cliente OAuth de solo lectura para DumbMonit»
  1. En la consola de Tailscale (login.tailscale.com), abre Settings > Trust credentials (antes OAuth clients) y genera un cliente OAuth solo con el alcance devices:core:read. Lista los dispositivos y no puede cambiar nada.

  2. Copia el ID de cliente y el secreto de cliente (tskey-client-…), mostrados una vez. En DumbMonit, introduce api.tailscale.com como dirección y pégalos como Client ID y Client secret. Deja la opción Tailnet vacía: se lee la tailnet del cliente.

CredencialCampos
Cliente OAuthID de cliente y secreto de cliente (tskey-client-…) de un cliente con el alcance devices:core:read.
Token de acceso de APIUn token tskey-api-…, enviado como token bearer.

Dirección: api.tailscale.com. Opciones:

  • Tailnet: vacío para la tailnet de las credenciales, o el nombre de tailnet mostrado en la consola de Tailscale.
  • Devices to keep online: nombres de dispositivo o etiquetas separados por comas (nas, tag:router), o all. Vacío: cada dispositivo etiquetado.
  • Timeout per request (15 s).
  • Device staleness (device_stale_days, 3 días por defecto).

«Tailscale refused the OAuth client»: el ID o el secreto son incorrectos, o el cliente fue eliminado.

«Tailscale refused to list the devices (403)»: al cliente le falta el alcance devices:core:read.

«Tailscale knows no tailnet …»: deja la opción Tailnet vacía.