Живий лог показує кожен запит, який проходить через ноду, у реальному часі: хто прийшов, на який домен, що відповів бекенд і скільки це тривало. Це найшвидший спосіб зрозуміти, що відбувається з трафіком просто зараз, — без доступу до бекенду і без розбору файлів.

Лог не записується на диск: нода віддає рядки лише тим, хто в цей момент відкрив сторінку перегляду. Ми не бачимо і не зберігаємо ваш трафік — лог існує лише на вашій ноді.

Як увімкнути#

За замовчуванням лог вимкнено. Він вмикається змінними середовища у файлі /opt/wafclient/.env на ноді.

  1. Підключіться до ноди по SSH і додайте в /opt/wafclient/.env:
LOGROUTE=/my-secret-log
LOGUSER=admin
LOGPASS=strong-password
  1. Перезапустіть службу:
systemctl restart privateflare
  1. Відкрийте в браузері адресу логу на будь-якому домені, який обслуговує ця нода:
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.7IP відвідувача
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, якщо запит не дійшов до бекенду
ipIP відвідувача
geoКраїна відвідувача
methodHTTP-метод
hostДомен
pathШлях запиту
uaUser-Agent
protoПротокол
tlstrue — запит надійшов по HTTPS

Порівнюючи duration_ms і backend_ms (або rt і uct), легко зрозуміти, де втрачається час: на бекенді чи на шляху до нього.

Що не потрапляє в лог#

  • Запити службового бота PrivateFlare (перевірки доступності доменів) — щоб не засмічувати лог.
  • Запити, зроблені до відкриття сторінки: лог не зберігає історію.

Як вимкнути#

Видаліть рядок LOGROUTE з /opt/wafclient/.env і перезапустіть службу:

systemctl restart privateflare

Лог самої служби#

Повідомлення клієнта про запуск і помилки записуються в системний журнал. Переглянути їх можна командою:

journalctl -u privateflare -f