Перейти к содержимому

HTTP Access Log в Astra

HTTP Access Log фиксирует каждый запрос к встроенному HTTP-серверу Astra. Используйте их, чтобы отслеживать, кто обращается к вашим потокам, диагностировать проблемы с воспроизведением или контролировать трафик. По умолчанию access log отключён.

Включите access log в НастройкиОбщиеHTTP-сервер:

HTTP Access Log: Полный путь, где сохраняются логи, например /var/log/astra-access.log

192.168.88.100 - - [11/Aug/2023:07:03:07 +0000] "GET / HTTP/1.1" 200 0
192.168.88.100 - admin [11/Aug/2023:07:03:07 +0000] "POST /control/ HTTP/1.1" 200 0
198.51.100.1 - - [11/Aug/2023:07:03:08 +0000] "GET /play/a0g2/71545838.m3u8 HTTP/1.1" 200 0
198.51.100.1 - - [11/Aug/2023:07:03:08 +0000] "GET /play/a0g2/113900585_92b9.ts HTTP/1.1" 200 0

Каждая строка соответствует стандартному формату HTTP-сервера:

remote_addr - remote_user [time] "request" status bytes_sent
  • remote_addr: IP-адрес клиента, который сделал запрос
  • remote_user: Имя пользователя, если использовалась аутентификация, иначе отображается как -
  • time: Время получения запроса
  • request: HTTP-метод, запрошенный URL и версия протокола
  • status: Код ответа HTTP (200 — успешно, 404 — не найдено и т.д.)
  • bytes_sent: Количество данных, отправленных в ответе

Access log со временем увеличивается и может заполнить диск. Используйте ротацию логов, чтобы автоматически архивировать старые записи и освобождать место. В Linux для этого используется logrotate.

Создайте конфигурационный файл по пути /etc/logrotate.d/astra-access-log:

/var/log/astra-access.log {
daily
rotate 10
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
systemctl reload astra || true
endscript
}

Описание параметров:

  • daily: Ротировать логи каждый день
  • rotate 10: Хранить 10 последних архивных файлов
  • missingok: Не выводить ошибку, если файл лога отсутствует
  • notifempty: Пропускать ротацию, если файл лога пустой
  • compress: Сжимать старые логи с помощью gzip для экономии места
  • delaycompress: Откладывать сжатие на один цикл, чтобы не потерять свежие сообщения
  • sharedscripts: Выполнять postrotate-скрипт только один раз, даже если файлов несколько
  • postrotate: Команда, выполняемая после ротации. Перезапускает Astra, чтобы она начала писать в новый лог-файл