Живий лог показує кожен запит, який проходить через ноду, у реальному часі: хто прийшов, на який домен, що відповів бекенд і скільки це тривало. Це найшвидший спосіб зрозуміти, що відбувається з трафіком просто зараз, — без доступу до бекенду і без розбору файлів.
Лог не записується на диск: нода віддає рядки лише тим, хто в цей момент відкрив сторінку перегляду. Ми не бачимо і не зберігаємо ваш трафік — лог існує лише на вашій ноді.
Як увімкнути#
За замовчуванням лог вимкнено. Він вмикається змінними середовища у файлі /opt/wafclient/.env на ноді.
- Підключіться до ноди по SSH і додайте в
/opt/wafclient/.env:
LOGROUTE=/my-secret-log
LOGUSER=admin
LOGPASS=strong-password- Перезапустіть службу:
systemctl restart privateflare- Відкрийте в браузері адресу логу на будь-якому домені, який обслуговує ця нода:
https://ваш-домен.com/my-secret-logБраузер запитає логін і пароль — введіть значення LOGUSER і LOGPASS.
| Змінна | Опис | За замовчуванням |
|---|---|---|
LOGROUTE | Адреса сторінки логу. Якщо не задана — лог вимкнено | вимкнено |
LOGUSER | Логін | log |
LOGPASS | Пароль | log |
LOGFORMAT | Формат рядків: json або текстовий | текстовий |
Важливо: сторінка логу доступна на будь-якому домені ноди. Задайте власний пароль і неочевидну адресу замість
/log— значення за замовчуванням загальновідомі.
Сторінка перегляду#
На сторінці нові запити з’являються одразу, без оновлення:
- Індикатор ліворуч показує стан з’єднання: зелений — лог надходить. У разі обриву сторінка перепідключається автоматично.
- Фільтр залишає лише рядки із вказаним текстом — наприклад, домен, IP або код відповіді.
- Autoscroll прокручує лог до нових рядків. Вимкніть, щоб спокійно вивчити потрібний фрагмент.
На сторінці зберігаються останні 2000 рядків. Сесія перегляду діє 24 години, після чого сторінку потрібно відкрити заново.
Формат рядків#
Текстовий (за замовчуванням)#
Формат близький до access-логу Nginx:
203.0.113.7 - DE [04/Oct/2026:12:30:15 +0000] "GET https://example.com/landing HTTP/2.0" 200 "https://google.com/" "Mozilla/5.0 ..." rt=0.142 uct=0.118| Поле | Значення |
|---|---|
203.0.113.7 | IP відвідувача |
DE | Країна відвідувача |
[04/Oct/2026:12:30:15 +0000] | Час запиту |
"GET https://example.com/landing HTTP/2.0" | Метод, повна адреса і протокол |
200 | Код відповіді |
"https://google.com/" | Referer |
"Mozilla/5.0 ..." | User-Agent |
rt | Повний час обробки запиту, у секундах |
uct | Час відповіді бекенду, у секундах. -, якщо запит не дійшов до бекенду |
JSON#
Задайте LOGFORMAT=json, якщо лог читає скрипт або зовнішня система:
{"time":"2026-10-04T12:30:15Z","status":200,"duration_ms":142,"backend_ms":118,"ip":"203.0.113.7","geo":"DE","method":"GET","host":"example.com","path":"/landing","ua":"Mozilla/5.0 ...","proto":"HTTP/2.0","tls":true}| Поле | Значення |
|---|---|
time | Час запиту |
status | Код відповіді |
duration_ms | Повний час обробки запиту, у мілісекундах |
backend_ms | Час відповіді бекенду, у мілісекундах. null, якщо запит не дійшов до бекенду |
ip | IP відвідувача |
geo | Країна відвідувача |
method | HTTP-метод |
host | Домен |
path | Шлях запиту |
ua | User-Agent |
proto | Протокол |
tls | true — запит надійшов по HTTPS |
Порівнюючи duration_ms і backend_ms (або rt і uct), легко зрозуміти, де втрачається час: на бекенді чи на шляху до нього.
Що не потрапляє в лог#
- Запити службового бота PrivateFlare (перевірки доступності доменів) — щоб не засмічувати лог.
- Запити, зроблені до відкриття сторінки: лог не зберігає історію.
Як вимкнути#
Видаліть рядок LOGROUTE з /opt/wafclient/.env і перезапустіть службу:
systemctl restart privateflareЛог самої служби#
Повідомлення клієнта про запуск і помилки записуються в системний журнал. Переглянути їх можна командою:
journalctl -u privateflare -f