Журналы HTTP-доступа

HTTP Access Logs - это информация об обработанных запросах встроенным в Astra HTTP-сервером.

Конфигурация

По умолчанию журнал HTTP-доступа отключен, включить его можно в разделе Настройки -> Общие, задав полный путь к файлу журнала в поле "Журнал HTTP-доступа". Например: /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

Ротация журнала

Для экономии дискового пространства и сохранения журналов в хорошем состоянии используйте ротацию журналов

Logrotate - это системная утилита, управляющая автоматической ротацией и сжатием файлов журналов. Для ее использования создайте новый конфигурационный файл по адресу /etc/logrotate.d/astra:

/var/log/astra-access.log {
    daily
    rotate 10
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        systemctl reload astra || true
    endscript
}
  • /var/log/astra-access.log - полный путь к файлу журнала. Можно задать несколько файлов, разделенных пробелами
  • daily - ежедневная ротация. Каждый файл архива журнала будет содержать записи за один день
  • rotate 10 - сохраняются только 10 последних файлов архива журнала. При ежедневной ротации это соответствует 10 дням архивов
  • missingok - игнорировать ошибку, если определенный файл журнала не найден
  • notifempty - Журнал не будет вращаться, если он пуст
  • compress - сжимать файлы архива журнала с помощью gzip
  • delaycompress - новый файл архива журналов будет сжат на следующий день. Поскольку Astra продолжает записывать журналы в новый файл архива журналов до тех пор, пока не наступит момент postrotate При выполнении скрипта эта опция необходима для предотвращения потери последних сообщений
  • sharedscripts - выполнить postrotate сценарий один раз для всех файлов журнала
  • postrotate - Команда выполняется после поворота файла журнала. Astra получает сигнал о начале записи в новый пустой файл