Живой лог показывает каждый запрос, который проходит через ноду, в реальном времени: кто пришёл, на какой домен, что ответил бекенд и сколько это заняло. Это самый быстрый способ понять, что происходит с трафиком прямо сейчас, — без доступа к бекенду и без разбора файлов.
Лог не записывается на диск: нода отдаёт строки только тем, кто в этот момент открыл страницу просмотра. Мы не видим и не храним ваш трафик — лог живёт только на вашей ноде.
Как включить#
По умолчанию лог выключен. Он включается переменными окружения в файле /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