Назад в блог

Мониторинг устройств во внутренней сети клиента через LAN-агента

· 7 мин чтения

Кратко Облачный мониторинг не достигает устройств во внутренней сети клиента - NAS, камеры, локальные серверы, принтеры. LAN-агент ePulz.io решает это pull-моделью: крошечный демон в вашей сети звонит ePulz.io через обычный HTTPS, получает список IP для проверки, локально пингует их и отправляет результаты обратно. Никакого проброса портов, никакого VPN, никаких открытых портов снаружи.

Проблема: облако не видит вовнутрь

Классический uptime-мониторинг работает в дата-центре. Для публично доступных сайтов это отлично работает - HTTP-запрос из Франкфурта на ваш хостинг и обратно. Проблема начинается в момент, когда вы хотите мониторить что-то, что не видно снаружи:

  • NAS с резервными копиями (192.168.1.10)
  • Внутренние Grafana / Prometheus / Jira на 10.0.0.50:3000
  • IP-камеры в магазине, IoT-шлюзы, сетевые принтеры
  • Маршрутизатор или коммутатор, об отказе которого вы хотите знать
  • VPN-шлюз, RADIUS-сервер, локальный DNS

Распространённые решения сопряжены с неприятными компромиссами:

  • Проброс портов - вы открываете публичный порт на маршрутизаторе, мониторинг подключается через публичный IP. Кошмар безопасности, часто против корпоративной политики.
  • VPN-туннель между мониторингом и сетью клиента - работает, но требует настройки со стороны IT, статической конфигурации пира и постоянного обслуживания.
  • Cron на сервере клиента, пингующий мониторинг - heartbeat. Работает, но говорит лишь о том, что агент жив, а не о том, доступна ли конкретная цель в сети.

Решение: агент в pull-модели

LAN-агент ePulz.io разворачивает направление связи. Вместо того чтобы сервер врывался в сеть клиента, простой демон в сети клиента сам обращается к серверу. Принцип:

  1. Каждые 30 секунд агент спрашивает: «Какие мониторы мне сейчас проверить?»
  2. Сервер возвращает список (например: ping 192.168.1.10 каждую минуту, TCP 192.168.1.50:5432 каждые 5 минут).
  3. Агент выполняет локальные проверки (ICMP ping, TCP connect, HTTP GET).
  4. Агент отправляет результаты обратно по тому же HTTPS-соединению.
  5. При смене состояния (UP → DOWN или обратно) ePulz.io запускает стандартное уведомление - email, Telegram или webhook.

Вся связь идёт через исходящий HTTPS на порту 443. Тот самый порт, который ваш маршрутизатор держит открытым для браузера. Никаких пробросов, никакого входящего трафика, никакого VPN.

Три типа LAN-проверок

Тип Цель Применение
lan_ping 192.168.1.10 Устройство в сети активно (ICMP echo). Самая дешёвая проверка, видит RTT с субмиллисекундной точностью.
lan_tcp 10.0.0.50:5432 Конкретный порт отвечает (DB, SSH, SMTP, RDP). Обнаруживает, когда процесс лежит, даже если хост работает.
lan_http http://nas.local Веб-интерфейс работает (HTTP 2xx/3xx). GUI NAS, внутренний дашборд, локальный API.

Установка: два варианта

Для Linux-сервера с root-доступом (Raspberry Pi, мини-ПК, ВМ в сети):

sudo bash <(curl -s https://epulz.io/install-agent.sh) plzag_xxx

Скрипт устанавливает агента в /opt/epulzio-agent и регистрирует его как systemd-сервис. После перезагрузки запускается сам.

Для хостов Synology / Unraid / k3s / Docker:

docker run -d --name epulzio-agent --restart unless-stopped \
  --network host \
  -e EPULZIO_AGENT_TOKEN=plzag_xxx \
  epulzio/agent

--network host важен - агенту нужен доступ к локальной сети хоста.

Что происходит, когда агент замолкает

Это часто забываемый сценарий в самодельных установках: агент перестаёт работать (сеть, отключение электричества, kernel panic), монитор навсегда остаётся в «last_status: up» и никто этого не замечает. ePulz.io решает это отдельной heartbeat-логикой:

  • Каждый успешный запрос агента обновляет last_seen.
  • Планировщик проверяет активных агентов каждую минуту. Если last_seen старше 5 минут, уходит email и Telegram-сообщение: «LAN-агент X offline».
  • Когда агент возвращается, вы получаете уведомление back-online.

Благодаря этому вы никогда не окажетесь в состоянии «всё выглядит зелёным, потому что ничего не измеряется».

Безопасность

  • Аутентификация по токену: агент аутентифицируется через X-Agent-Token: plzag_…. В БД храним только хеш SHA-256; чистый токен видите один раз при создании.
  • Отзыв в любое время из дашборда. После отзыва агент получает HTTP 401 и перестаёт принимать задачи.
  • Per-агент rate limit: 120 запросов в минуту. Защищает сервер от зацикленных или сбойных агентов.
  • Без credentials прямо в скрипте: токен лежит в /opt/epulzio-agent/agent.env с правами 0600.

Когда LAN-агент не нужен

Если вы мониторите только публичные сайты, API и SSL-сертификаты, классических облачных пробов ePulz.io вам достаточно. LAN-агент имеет смысл, когда:

  • Вы управляете несколькими клиентами и хотите предложить мониторинг их внутренних систем.
  • У вас гибридная архитектура (часть в облаке, часть on-prem) и хотите единый status board.
  • Вам нужны субмиллисекундные измерения RTT в LAN, которых через интернет не получить.

Начать

LAN-агент доступен во всех планах, включая пробный период. Установка занимает три минуты:

  1. Создайте агента в дашборд → LAN-агенты.
  2. Скопируйте токен (отображается единожды).
  3. Запустите установщик на машине в сети клиента.
  4. Добавьте LAN-монитор через «Добавить новый монитор» и выберите тип lan_ping, lan_tcp или lan_http.

Попробуйте бесплатно

7 дней полного доступа включая LAN-агентов. Без карты. Без автопродления.

Создать аккаунт →


Попробуйте ePulz.io бесплатно - 7 дней без банковской карты.

Создать аккаунт