Zrozumienie dziennika dostępu Apache

134

Co oznacza każda z rzeczy w tym wierszu z mojego dziennika dostępu?

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, na przykład Gecko) Chrome / 18.0.1025.5 Safari / 535.19 "

Boardy
źródło

Odpowiedzi:

237

Wygląda na to, że używasz połączonego formatu dziennika .

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" łącznie

  • % h to zdalny host (tj. adres IP klienta)
  • % l to tożsamość użytkownika określona przez identd (zwykle nie używana, ponieważ nie jest wiarygodna)
  • % u to nazwa użytkownika określona przez uwierzytelnianie HTTP
  • % t to czas, w którym żądanie zostało odebrane.
  • % r to wiersz żądania od klienta. („GET / HTTP / 1.0”)
  • %> s to kod statusu wysłany z serwera do klienta (200, 404 itd.)
  • % b to rozmiar odpowiedzi do klienta (w bajtach)
  • Referer to nagłówek Referer żądania HTTP (zawierający adres URL strony, z której to żądanie zostało zainicjowane), jeśli istnieje, lub "-"poza tym.
  • User-agent to ciąg identyfikacyjny przeglądarki.

Pełną (?) Listę elementów formatujących można znaleźć tutaj . Ta sama sekcja dokumentacji zawiera również listę innych popularnych formatów dziennika; czytelnicy, których dzienniki nie wyglądają tak, jak ten, mogą tam znaleźć wzorzec, którego używa ich konfiguracja Apache.

Joachim Isaksson
źródło
Zastanawiam się, jaka może być cyfra (19) na ostatnim, po kliencie użytkownika.
ivanceras
2
@ivanceras 535.19jest używaną wersją zestawu webkit, więc jest częścią ciągu agenta użytkownika (i jest również umieszczony w cudzysłowach zawierających klienta użytkownika)
Joachim Isaksson
4
Po agencie użytkownika mam 4 dodatkowe pola, takie jak to: ... "Mozilla / 5.0 (Windows NT 5.1; rv: 16.0) Gecko / 20100101 Firefox / 16.0" 369 74500 - 567 co one oznaczają?
my account_ram
9

Nie rozumiem też, co oznacza „-” po sekcji dziennika 200 140

Wartość ta odpowiada sędziemu opisanemu przez Joachima. Jeśli jednak widzisz myślnik, oznacza to, że nie było wartości odniesienia, od której można by zacząć (np. Użytkownik udał się prosto do określonego miejsca docelowego, na przykład jeśli wpisał adres URL w przeglądarce)

georaldc
źródło
7

A co oznacza „ Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 535.19 (KHTML, jak Gecko) Chrome / 18.0.1025.5 Safari / 535.19 ”?

To jest wartość User-Agent, ciąg znaków identyfikacyjnych przeglądarki.

Z tego powodu większość przeglądarek internetowych używa następujących wartości ciągu User-Agent:

Mozilla / [wersja] ([informacje o systemie i przeglądarce]) [platforma] ([szczegóły platformy]) [rozszerzenia]. Na przykład Safari na iPadzie wykorzystało następujące elementy:

Mozilla / 5.0 (iPad; U; CPU OS 3_2_1 jak Mac OS X; en-us) AppleWebKit / 531.21.10 (KHTML, jak Gecko) Mobile / 7B405 Składniki tego ciągu są następujące:

Mozilla / 5.0: Wcześniej używane do wskazania zgodności z silnikiem renderującym Mozilli. (iPad; U; CPU OS 3_2_1 jak Mac OS X; en-us): Szczegóły systemu, w którym działa przeglądarka. AppleWebKit / 531.21.10: Platforma używana przez przeglądarkę. (KHTML, jak Gecko): szczegóły platformy przeglądarki. Mobile / 7B405: jest używany przez przeglądarkę w celu wskazania określonych ulepszeń, które są dostępne bezpośrednio w przeglądarce lub za pośrednictwem stron trzecich. Przykładem tego jest Microsoft Live Meeting, który rejestruje rozszerzenie, aby usługa Live Meeting wiedziała, czy oprogramowanie jest już zainstalowane, co oznacza, że ​​może usprawnić dołączanie do spotkań.

Ta wartość będzie używana do identyfikacji przeglądarki używanej przez użytkownika końcowego.

Odnosić się

vsingh
źródło
W moim środowisku ze zrównoważonym obciążeniem, które ma 4 węzły obsługujące ukryte za serwerem równoważenia obciążenia Apache. Ostatnio dostaję problemy z niedostępnością. Podczas debugowania znalazłem dzienniki Access na moim module równoważenia obciążenia ze stanem 504. który wygląda tak. {Adres IP} - - [data] "POST url http / 1.1" 504 247 "-" "-" Teraz podejrzewam, że jeden z moich 4 węzłów serwera aplikacji częściej niż inne podaje limity czasu. Ale te dzienniki nie dają wskazówki, do którego serwera żądanie zostało przekazane i spowodowało przekroczenie limitu czasu. Jak mogę zarejestrować adres IP węzła, do którego żądanie jest przekazywane.
PROFESOR
Zasugeruję następujące opcje a) Włącz i przyjrzyj się logom równoważenia obciążenia b) sprawdź wykorzystanie pamięci, procesor, IO dla każdego z maszyn wirtualnych i zobacz, czy wszystkie są takie same. c) Policz liczbę żądań dla każdej maszyny wirtualnej w danym dniu. Powinny być mniej więcej takie same. Jeśli nie, Load Balancer może stwierdzić, że serwer nie odpowiada na pingi i dlatego nie wysyła żądań.
vsingh