Назад до блогу

Моніторинг пристроїв у внутрішній мережі клієнта через 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 щоп'ять хвилин).
  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 днів без банківської картки.

Створити акаунт