Grundlegendes zum Zugriffsprotokoll von Apache


134

Was bedeuten die einzelnen Elemente in dieser Zeile aus meinem Zugriffsprotokoll?

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, wie) Gecko) Chrome / 18.0.1025.5 Safari / 535.19 "

Antworten:


237

Sie scheinen das kombinierte Protokollformat zu verwenden .

LogFormat "% h% l% u% t"% r "%> s% b"% {Referer} i "% {User-Agent} i" kombiniert

  • % h ist der Remote-Host (dh die Client-IP)
  • % l ist die durch identd bestimmte Identität des Benutzers (wird normalerweise nicht verwendet, da sie nicht zuverlässig ist).
  • % u ist der durch die HTTP-Authentifizierung bestimmte Benutzername
  • % t ist die Zeit, zu der die Anfrage empfangen wurde.
  • % r ist die Anforderungszeile vom Client. ("GET / HTTP / 1.0")
  • %> s ist der Statuscode, der vom Server an den Client gesendet wird (200, 404 usw.)
  • % b ist die Größe der Antwort an den Client (in Bytes)
  • Referer ist der Referer-Header der HTTP-Anforderung (der die URL der Seite enthält, von der aus diese Anforderung initiiert wurde), falls vorhanden, und "-"ansonsten.
  • User-Agent ist die Browser-Identifikationszeichenfolge.

Die vollständige (?) Liste der Formatierer finden Sie hier . Im selben Abschnitt der Dokumentation werden auch andere gängige Protokollformate aufgeführt. Leser, deren Protokolle nicht so aussehen, finden möglicherweise das dort aufgeführte Muster, das ihre Apache-Konfiguration verwendet.


Ich frage mich, was die Nummer (19) auf der letzten nach dem Benutzeragenten sein könnte.
ivanceras

2
@ivanceras 535.19ist die verwendete Webkit-Version, daher ist sie Teil der Zeichenfolge des Benutzeragenten (und wird auch in die Anführungszeichen des Benutzeragenten eingefügt)
Joachim Isaksson,

4
Ich habe 4 zusätzliche Felder nach dem Benutzeragenten, wie folgt: ... "Mozilla / 5.0 (Windows NT 5.1; rv: 16.0) Gecko / 20100101 Firefox / 16.0" 369 74500 - 567 Was geben sie an?
mein account_ram

9

Ich verstehe auch nicht, was das "-" nach dem Abschnitt 200 140 des Protokolls bedeutet

Dieser Wert entspricht dem von Joachim beschriebenen Referer. Wenn Sie jedoch einen Bindestrich sehen, bedeutet dies, dass zunächst kein Referer-Wert vorhanden war (z. B. ging der Benutzer direkt zu einem bestimmten Ziel, z. B. wenn er eine URL in seinen Browser eingegeben hat).


7

Und was bedeutet " Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 535.19 (KHTML, wie Gecko) Chrome / 18.0.1025.5 Safari / 535.19 "?

Dies ist der Wert von User-Agent, der Browser-Identifikationszeichenfolge.

Aus diesem Grund verwenden die meisten Webbrowser einen User-Agent-Zeichenfolgenwert wie folgt:

Mozilla / [Version] ([System- und Browserinformationen]) [Plattform] ([Plattformdetails]) [Erweiterungen]. Beispielsweise hat Safari auf dem iPad Folgendes verwendet:

Mozilla / 5.0 (iPad; U; CPU OS 3_2_1 wie Mac OS X; en-us) AppleWebKit / 531.21.10 (KHTML wie Gecko) Mobile / 7B405 Die Komponenten dieser Zeichenfolge lauten wie folgt:

Mozilla / 5.0: Wird früher verwendet, um die Kompatibilität mit der Mozilla-Rendering-Engine anzuzeigen. (iPad; U; CPU OS 3_2_1 wie Mac OS X; en-us): Details des Systems, auf dem der Browser ausgeführt wird. AppleWebKit / 531.21.10: Die vom Browser verwendete Plattform. (KHTML, wie Gecko): Details zur Browserplattform. Mobile / 7B405: Dies wird vom Browser verwendet, um bestimmte Verbesserungen anzuzeigen, die direkt im Browser oder über Dritte verfügbar sind. Ein Beispiel hierfür ist Microsoft Live Meeting, bei dem eine Erweiterung registriert wird, damit der Live Meeting-Dienst weiß, ob die Software bereits installiert ist. Dies bedeutet, dass die Teilnahme an Besprechungen optimiert werden kann.

Dieser Wert wird verwendet, um zu identifizieren, welcher Browser vom Endbenutzer verwendet wird.

Verweisen


In meiner Umgebung mit Lastenausgleich, in der 4 Serving-Knoten hinter einem Apache-Load-Balancer-Server versteckt sind. In letzter Zeit habe ich Probleme mit der Nichtverfügbarkeit. Während des Debuggens habe ich auf meinem Load Balancer Access-Protokolle mit dem Status 504 gefunden. das sieht so aus. {IP-Adresse} - - [Datum] "POST-URL http / 1.1" 504 247 "-" "-" Jetzt vermute ich, dass einer meiner 4 Anwendungsserverknoten häufiger Zeitüberschreitungen aufweist als die anderen. Diese Protokolle geben jedoch keinen Hinweis darauf, an welchen Server die Anforderung weitergeleitet wurde, und führten zu einer Zeitüberschreitung. Wie kann ich die IP des Knotens protokollieren, an den eine Anfrage weitergeleitet wird?
PROFESSOR

Ich werde die folgenden Optionen vorschlagen: a) Aktivieren und Überprüfen von Load-Balancer-Protokollen b) Überprüfen Sie die Speicherauslastung, CPU und E / A für jede Ihrer VMs und prüfen Sie, ob sie alle gleich sind. c) Zählen Sie die Anzahl der Anforderungen für jede VM an einem bestimmten Tag. Sie sollten ungefähr gleich sein. Wenn nicht, stellt Load Balancer möglicherweise fest, dass der Server nicht auf Pings reagiert, und sendet daher die Anforderungen nicht.
Vsingh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.