У кого-нибудь есть формат файла логов для анализатора goaccess, который подходит для логов nginx, создаваемых установкой Discourse в Docker? У меня возникают трудности с его написанием.
Что ж, отвечаю на свой собственный вопрос…
Формат файла логов в контейнере Docker:
log_format log_discourse ‘[$time_local] “$http_host” $remote_addr “$request” “$http_user_agent” “$sent_http_x_discourse_route” $status $bytes_sent “$http_referer” $upstream_response_time $request_time “$upstream_http_x_discourse_username” “$upstream_http_x_discourse_trackview” “$upstream_http_x_discourse_queue_time” “$upstream_http_x_redis_calls” “$upstream_http_x_redis_time” “$upstream_http_x_sql_calls” “$upstream_http_x_sql_time”’;
Существует утилитарный скрипт, который может парсить этот формат и преобразовывать его в формат файла логов .goaccess на GitHub:
Вот результат:
time-format %T
date-format %d/%b/%Y
log_format [%d:%t %^] “%v” %h “%r” “%u” “%^” %s %b “%R” %^ %T “%^” “%^” “%^” “%^” “%^” “%^” “%^”
Написать это самостоятельно довольно сложно. Я подумал, что это может быть полезно другим в будущем.
Программа goaccess — это отличный анализатор файлов логов.