Nginx, awstats и время запроса

Как настроить nginx для записи времени запроса в журналы, чтобы awstats мог показывать время, затраченное на каждый запрос?

Кроме того, как я могу увидеть запросы по времени, принятые в awstats?

Это текущий формат

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

2 ответа

Решение

Как упомянул @Vladimir, для регистрации времени логов отредактируйте log_format Директива, как показано ниже:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'
                      ' $request_time';

и установите соответствующие переменные для LogFormat в awstats конфигурационный файл:

LogFormat="%host %other %host_r %time1 %methodurl %code %bytesd %refererquot %uaquot %other %extra1"

Вот extra1 пример раздела:

ExtraSectionName1="Time to serve requests (seconds)"
ExtraSectionCodeFilter1=""
ExtraSectionFirstColumnTitle1="Number of seconds to serve the request"
ExtraSectionFirstColumnValues1="extra1,(.*)"
ExtraSectionStatTypes1="H"

Строительный отчет:

awstats.pl -config=model -output -staticlinks > awstats.localhost.html

введите описание изображения здесь

Вы можете использовать переменную $request_time, как указано здесь, например:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent $request_time "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';

Изменить: Упс, пропустил ваш второй вопрос. Вы можете заставить AWStats анализировать новый формат, используя директиву LogFormat с переменной extraN, а затем использовать ExtraSection для отображения результатов.

Другие вопросы по тегам