Понимание журнала доступа Apache

134

Что означают все элементы в этой строке из моего журнала доступа?

127.0.0.1 - - [05 / Feb / 2012: 17: 11: 55 +0000] "GET / HTTP / 1.1" 200 140 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 535.19 (KHTML, например Gecko) Chrome / 18.0.1025.5 Safari / 535.19 "

Boardy
источник

Ответы:

237

Вы, кажется, используете комбинированный формат журнала .

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" вместе

  • % h - удаленный хост (т.е. IP-адрес клиента)
  • % l - это личность пользователя, определенная при идентификации (обычно не используется, так как ненадежна)
  • % u - имя пользователя, определенное HTTP-аутентификацией
  • % t - время получения запроса.
  • % r - это строка запроса от клиента. («GET / HTTP / 1.0»)
  • %> s - это код состояния, отправленный с сервера клиенту (200, 404 и т. д.)
  • % b - размер ответа клиенту (в байтах)
  • Referer - это заголовок Referer HTTP-запроса (содержащий URL-адрес страницы, с которой был инициирован этот запрос), если таковой имеется, и в "-"противном случае.
  • User-agent - это строка идентификации браузера.

Полный (?) Список форматеров можно найти здесь . В этом же разделе документации также перечислены другие распространенные форматы журналов; читатели, чьи журналы выглядят не совсем так, могут найти шаблон, который использует их конфигурация Apache, в списке.

Иоахим Исакссон
источник
Мне интересно, что может быть цифрой цифра (19) на последнем, после пользовательского агента.
ivanceras
2
@ivanceras 535.19- это используемая версия webkit, поэтому она является частью строки пользовательского агента (и также помещена в кавычки, содержащие пользовательский агент)
Йоахим Исакссон
4
У меня есть 4 дополнительных поля после агента пользователя, например: ... "Mozilla / 5.0 (Windows NT 5.1; rv: 16.0) Gecko / 20100101 Firefox / 16.0" 369 74500 - 567 что они указывают?
мой account_ram
9

Я также не понимаю, что означает "-" после 200 140 разделов журнала

Это значение соответствует рефереру, как описано Иоахимом. Однако, если вы видите тире, это означает, что для начала не было никакого значения referer (например, пользователь перешел прямо к определенному месту назначения, например, если он / она набрал URL в своем браузере)

georaldc
источник
7

А что означает « Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 535.19 (KHTML, как Gecko) Chrome / 18.0.1025.5 Safari / 535.19 »?

Это значение User-Agent, идентификационной строки браузера.

По этой причине большинство веб-браузеров используют строковое значение User-Agent следующим образом:

Mozilla / [версия] ([информация о системе и браузере]) [платформа] ([сведения о платформе]) [расширения]. Например, Safari на iPad использовал следующее:

Mozilla / 5.0 (iPad; U; CPU OS 3_2_1, как Mac OS X; ru-ru) AppleWebKit / 531.21.10 (KHTML, как Gecko) Mobile / 7B405 Компоненты этой строки следующие:

Mozilla / 5.0: Ранее использовался для указания совместимости с движком рендеринга Mozilla. (iPad; U; CPU OS 3_2_1, как Mac OS X; ru-ru): сведения о системе, в которой работает браузер. AppleWebKit / 531.21.10: платформа, которую использует браузер. (KHTML, как Gecko): сведения о платформе браузера. Mobile / 7B405: используется браузером для указания конкретных улучшений, доступных непосредственно в браузере или через третьих лиц. Примером этого является Microsoft Live Meeting, которая регистрирует расширение, чтобы служба Live Meeting знала, установлено ли уже программное обеспечение, что означает, что оно может упростить присоединение к собраниям.

Это значение будет использоваться для определения того, какой браузер используется конечным пользователем.

обращаться

vsingh
источник
В моей среде с балансировкой нагрузки, которая имеет 4 обслуживающих узла, спрятанных за сервером балансировки нагрузки Apache. В последнее время у меня возникают проблемы с недоступностью. Во время отладки я обнаружил журналы Access на моем балансировщике нагрузки со статусом 504. который выглядит так {Ip Address} - - [date] "POST url http / 1.1" 504 247 "-" "-" Теперь я подозреваю, что один из моих 4 узлов сервера приложений дает тайм-ауты чаще, чем другие. Но эти журналы не дают подсказки, на какой сервер запрос был переадресован и привел к превышению времени ожидания. Как я могу записать IP-адрес узла, на который направляется запрос.
ПРОФЕССОР
Я предложу следующие варианты: а) включить и просмотреть журналы балансировки нагрузки; б) проверить использование памяти, ЦП, ввод-вывод для каждого из ваших виртуальных машин и посмотреть, все ли они одинаковые. c) Подсчитайте количество запросов для каждого vm в данный день. Они должны быть примерно такими же. В противном случае балансировщик нагрузки может обнаружить, что сервер не отвечает на эхо-запросы и поэтому не отправляет запросы.
всингх