Я запускаю 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, но безуспешно.