Tailscale
Устройства tailnet через API Tailscale: серверы, ушедшие не в сеть, ключи узлов, скоро истекающие, устройства, ожидающие одобрения, и клиенты с доступным обновлением.
DumbMonit читает GET /api/v2/tailnet/{tailnet}/devices на
api.tailscale.com, раз в минуту. Рекомендуемые учётные данные — клиент
OAuth, ограниченный областью devices:core:read: DumbMonit обменивает его ID
и секрет на часовой токен (/api/v2/oauth/token) и хранит его до истечения.
Токен доступа API (tskey-api-…) тоже работает, но несёт все права
пользователя, который его создал, и истекает не позднее чем через 90 дней.
Это интернет-API: адрес монитора — это адрес API, а не машины. DumbMonit
нужен исходящий HTTPS к api.tailscale.com; ничто внутри tailnet не
контактируется.
Что отслеживается
Заголовок раздела «Что отслеживается»Все метрики с префиксом dumbmonit_tailscale_. Устройство называется по
первой части своего имени MagicDNS (nas для nas.tail1234.ts.net).
Устройства, разделённые в tailnet из другого, учитываются, но не описываются.
| Метрика | Метки | Значение |
|---|---|---|
device_online | device | 1, пока устройство подключено к серверу координации. |
device_offline_seconds | device | 0, пока в сети, иначе время с момента, когда его видели последний раз. |
device_watched | device | 1, когда устройство должно оставаться в сети: каждое помеченное тегом устройство по умолчанию, либо перечисленные в опции ниже. |
device_key_expiry_seconds | device | До истечения ключа узла; отсутствует, когда истечение ключей отключено. |
device_authorized | device | 0, пока устройство ожидает одобрения. |
device_update_available | device | 1, когда Tailscale предлагает более новый клиент. |
device_info | device, os, client_version, tags | Значение 1. |
devices, devices_online, devices_external, devices_update_available, devices_unauthorized, devices_watched_offline | Счётчики. |
Оповещение при уходе не в сеть вызывают только отслеживаемые устройства:
телефон или ноутбук, который спит, — это не отказ. Устройства, помеченные
тегом, на практике — это серверы, маршрутизаторы подсетей и exit-узлы;
перечислите остальные в опции Devices to keep online, либо введите
all.
Применяемые встроенные правила:
- Устройство Tailscale не в сети: отслеживаемое устройство отключено более 15 минут (Advisory).
- Истекает ключ узла Tailscale: осталось менее 14 дней (Advisory, напоминание ежедневно). При истечении устройство покидает tailnet, пока кто-нибудь снова не войдёт.
- Устройство Tailscale ожидает одобрения (Advisory): одобрите его, если это ожидалось, иначе удалите.
- Доступно обновление клиента Tailscale: у отслеживаемого устройства есть обновление клиента уже шесть часов (Info, напоминание еженедельно).
Устройства
Заголовок раздела «Устройства»Каждое устройство tailnet, отслеживаемое или нет (кроме разделённых),
публикуется в общем семействе, разделяемом каждой интеграцией DumbMonit,
отслеживающей клиентские устройства — dumbmonit_client_device_*, с
префиксом без tailscale, полностью описанным в разделе
Клиентские устройства:
| Метрика | Что | Метки |
|---|---|---|
last_seen_timestamp_seconds | Последнее подключение: «сейчас», пока connectedToControl истинно, иначе lastSeen | device, type (Tagged или Personal), os, user, kind |
stale_seconds | Положительно, когда устройство превысило device_stale_days (по умолчанию 3) без подключения; управляет правилом Клиентское устройство устарело | device, type, os, user, kind, signal (всегда connection: у Tailscale нет резервной копии для сообщения) |
Телефон или ноутбук в разъезде может несколько дней не переподключаться: это не связано с настройкой Devices to keep online выше, которая вызывает оповещение только для отслеживаемых устройств, ушедших не в сеть. Поднимите Device staleness для tailnet с устройствами, которые кочуют.
Страница монитора
Заголовок раздела «Страница монитора»Панель Tailnet сообщает, что не так, в одном предложении, показывает устройства в сети, отслеживаемые устройства не в сети, доступные обновления и разделённые устройства, затем перечисляет отслеживаемые устройства и любое устройство, ожидающее одобрения или с скоро истекающим ключом, затем — таблицу каждого устройства с его последним подключением.
Создание клиента OAuth только для чтения для DumbMonit
Заголовок раздела «Создание клиента OAuth только для чтения для DumbMonit»-
В консоли Tailscale (login.tailscale.com) откройте Settings > Trust credentials (ранее OAuth clients) и сгенерируйте клиент OAuth только с областью devices:core:read. Он перечисляет устройства и не может ничего изменить.
-
Скопируйте ID клиента и секрет клиента (tskey-client-…), показанные один раз. В DumbMonit введите api.tailscale.com как адрес и вставьте их как Client ID и Client secret. Оставьте опцию Tailnet пустой: читается tailnet самого клиента.
Учётные данные
Заголовок раздела «Учётные данные»| Учётные данные | Поля |
|---|---|
| Клиент OAuth | ID клиента и секрет клиента (tskey-client-…) клиента с областью devices:core:read. |
| Токен доступа API | Токен tskey-api-…, отправляется как bearer-токен. |
Адрес: api.tailscale.com. Опции:
- Tailnet: пусто для tailnet учётных данных, либо имя tailnet, показанное в консоли Tailscale.
- Devices to keep online: имена устройств или теги через запятую
(
nas, tag:router), либоall. Пусто: каждое помеченное тегом устройство. - Timeout per request (15 с).
- Device staleness (
device_stale_days, по умолчанию 3 дня).
Диагностика
Заголовок раздела «Диагностика»«Tailscale refused the OAuth client»: ID или секрет неверны, либо клиент был удалён.
«Tailscale refused to list the devices (403)»: у клиента нет области
devices:core:read.
«Tailscale knows no tailnet …»: оставьте опцию Tailnet пустой.