Моніторинг пристроїв у внутрішній мережі клієнта через 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 розвертає напрямок комунікації. Замість того, щоб сервер вривався в мережу клієнта, простий демон у мережі клієнта сам контактує сервер. Принцип:
- Кожні 30 секунд агент питає: «Які монітори мені зараз перевірити?»
- Сервер повертає список (наприклад: ping
192.168.1.10щохвилини, TCP192.168.1.50:5432щоп'ять хвилин). - Агент виконує локальні перевірки (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, міні-ПК, ВМ у мережі):
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-агент доступний в усіх планах включно з пробним періодом. Встановлення триває три хвилини:
- Створіть агента в дашборд → LAN-агенти.
- Скопіюйте токен (відображається лише один раз).
- Запустіть інсталятор на машині в мережі клієнта.
- Додайте LAN-монітор через «Додати новий монітор» і виберіть тип
lan_ping,lan_tcpабоlan_http.
Спробуйте безкоштовно
7 днів повного доступу включно з LAN-агентами. Без картки. Без автопродовження.
Спробуйте ePulz.io безкоштовно - 7 днів без банківської картки.
Створити акаунт