Мониторинг устройств во внутренней сети клиента через LAN-агента
· 7 мин чтения
Облачный мониторинг не достанет до устройств внутренней сети. LAN-агент ePulz.io проверяет их pull-моделью по HTTPS - без 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 разворачивает направление связи. Вместо того чтобы сервер врывался в сеть клиента, к серверу сам обращается простой демон, работающий прямо внутри этой сети. Принцип таков:
- Каждые 30 секунд агент спрашивает: «Какие мониторы мне сейчас проверить?»
- Сервер возвращает список (например: ping
192.168.1.10каждую минуту, TCP192.168.1.50:5432каждые 5 минут). - Агент выполняет локальные проверки (ICMP ping, TCP connect, HTTP GET).
- Агент отправляет результаты обратно по тому же HTTPS-соединению.
- При смене состояния (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, мини-ПК, ВМ в сети):
curl -fsSL https://epulz.io/install-agent.sh | sudo bash -s epulzio_xxxxxxxxxxxx
Скрипт устанавливает агента в /opt/epulzio-agent и регистрирует его как systemd-сервис. После перезагрузки запускается сам.
Для хостов Synology / Unraid / k3s / Docker:
tar xzf epulzio-agent.tar.gz
docker load -i epulzio-agent-image.tar
docker run -d --name epulzio-agent --restart unless-stopped \
--network host \
-e EPULZIO_AGENT_TOKEN=epulzio_xxxxxxxxxxxx \
epulzio-agent:latest
--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: epulzio_…. В БД храним только хеш 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-агент доступен во всех планах, включая пробный период. Установка занимает три минуты:
- Создайте агента в дашборд → LAN-агенты.
- Скопируйте токен (отображается единожды).
- Запустите установщик на машине в сети клиента.
- Добавьте LAN-монитор через «Добавить новый монитор» и выберите тип
lan_ping,lan_tcpилиlan_http.
Попробуйте бесплатно
7 дней полного доступа включая LAN-агентов. Без карты. Без автопродления.
Попробуйте ePulz.io бесплатно - 7 дней без банковской карты.
Создать аккаунт