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 для отображения результатов.