Назад | Перейти на главную страницу

Расширенные журналы доступа Nginx Amplify и виртуальные хосты GoAccess

Я запускаю Nginx с установленным Nginx Amplify. Чтобы получить лучшие показатели, я расширил формат журнала доступа на:

log_format  main_ext  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" '
                      '"$host" sn="$server_name" '
                      'rt=$request_time '
                      'ua="$upstream_addr" us="$upstream_status" '
                      'ut="$upstream_response_time" ul="$upstream_response_length" '
                      'cs=$upstream_cache_status' ;

Вышеуказанный формат взят из официальной документации Amplify.

Все работает нормально, расширенные метрики включены в веб-панель Amplify.

Для облегчения доступа к журналу я также установил пакет GoAccess. Когда я запускаю GoAccess с КОМБИНИРОВАННЫМ форматом журнала, он работает. Но я настроил несколько виртуальных хостов (которые пока не отображаются на странице отчета GoAccess), поэтому я должен использовать формат VCOMBINED, но он выдает ошибку:

Token '+0100]' doesn't match specifier '%h'

Чтобы это сработало, я изменил команду на:

sudo goaccess /var/log/nginx/access.log \
        --log-format=VCOMBINED \
        --date-format=%d/%b/%Y --time-format=%T \
        -o /var/www/stats/report.html \
        --real-time-html

но появляется такая же ошибка. Я понятия не имею, как создать действительный шаблон журнала для работы с ampify и GoAccess с поддержкой виртуальных хостов. Я пробовал трюки с awk, но безуспешно.