Heim Backend-Entwicklung PHP-Tutorial Spielen Sie mit Nginx-Protokollen rein manuell

Spielen Sie mit Nginx-Protokollen rein manuell

Aug 08, 2016 am 09:22 AM
access buffer log quot request

Nginx-Protokolle sind für die meisten Menschen ein unentdeckter Schatz. Ich möchte meine bisherigen Erfahrungen beim Aufbau eines Protokollanalysesystems zusammenfassen und Ihnen die rein manuelle Analysemethode von Nginx-Protokollen vorstellen. Es gibt zwei Orte für die Nginx-Protokoll-bezogene Konfiguration: access_log und log_format. Standardformat:
access_log <span>/</span>data<span>/</span>logs<span>/</span>nginx<span>-</span>access<span>.</span><span>log</span><span>;</span>log_format old <span><em>'$remote_addr [$time_local] $status $request_time $body_bytes_sent '</em></span><span><em>'"$request" "$http_referer" "$http_user_agent"'</em></span><span>;</span>
Nach dem Login kopieren
Ich glaube, dass die meisten Leute, die Nginx verwendet haben, mit der Standardkonfiguration des Nginx-Protokollformats und dem Inhalt des Protokolls vertraut sind. Die Standardkonfiguration und das Standardformat sind zwar lesbar, aber schwer zu berechnen. Nginx-Log-Flush-bezogene Strategien können konfiguriert werden: Stellen Sie beispielsweise den Puffer ein und leeren Sie die Festplatte nur, wenn der Puffer 32 KB voll ist. Wenn der Puffer weniger als 5 Sekunden beträgt, ist die Konfiguration erforderlich für erzwungenes Flush lautet wie folgt:
access_log <span>/</span>data<span>/</span>logs<span>/</span>nginx<span>-</span>access<span>.</span><span>log</span> buffer<span>=</span><span><em>32k</em></span> flush<span>=</span><span><em>5s</em></span><span>;</span>
Nach dem Login kopieren
Dies bestimmt, ob das Protokoll in Echtzeit angezeigt werden kann und welche Auswirkungen das Protokoll auf Festplatten-E/A hat. Es gibt viele Variablen, die Nginx-Protokolle aufzeichnen können, die in der Standardkonfiguration nicht angezeigt werden: Zum Beispiel: Datengröße anfordern: $request_length
Daten zurückgeben Größe: $ bytes_sent
Anfragezeit: $request_time
Verwendete Seriennummer der Verbindung: $connection
Anzahl der Anfragen für die aktuelle Verbindung: $connection_requestsDas Standardformat von Nginx ist nicht berechenbar, und Sie müssen eine Möglichkeit finden, es in ein berechenbares Format umzuwandeln. Verwenden Sie beispielsweise das Steuerzeichen ^A (Strg+v Strg+a zur Eingabe auf dem Mac), um die einzelnen Felder zu trennen. Das Format von log_format kann wie folgt aussehen:
log_format new <span><em>'$remote_addr^A$http_x_forwarded_for^A$host^A$time_local^A$status^A'</em></span><span><em>'$request_time^A$request_length^A$bytes_sent^A$http_referer^A$request^A$http_user_agent'</em></span><span>;</span>
Nach dem Login kopieren
Danach kann es mit gängigen Linux-Befehlszeilentools analysiert werden:
  • Finden Sie die meisten Häufig aufgerufene URL und Zeiten:

    cat access.log |. awk -F ‘^A’ ‘{print $10}’ |.

    cat access.log |. awk -F ‘^A’ ‘{if($5 == 500) print $0}’
  • Ermitteln Sie die Anzahl der 500 Fehler in der aktuellen Protokolldatei:

    cat access.log |. awk -F '^A' '{if($5 == 500) print $0}' |. wc -l
  • Finde 500 fehlerhafte Zugriffe innerhalb einer bestimmten Minutenmenge :

    cat access.log |. awk -F '^A' '{if($5 == 500) print $0}' | Langsame Anfrage länger als 1 Sekunde:
  • tail -f access.log |. awk -F ‘^A’ ‘{if($6>1) print $0}’
  • Wenn Sie nur bestimmte Teile anzeigen möchten:
  • tail -f access.log |. awk -F '^A' '{if($6>1) print $3″|“$4}'
  • Suchen Sie die URLs mit den meisten 502 Fehler:
  • cat access.log |. awk -F ‘^A’ ‘{if($5==502) print $11}’ |. 200 leere Seiten finden
  • cat access.log |. awk -F '^A' '{if($5==200 && $8 < 100) print $3″|“$4″|“$11″|“$6}'

  • Echtzeit-Protokolldatenstrom anzeigen
  • tail -f access.log |. cat -e

    oder
  • tail -f access.log |'

  • Zusammenfassung

    Nach dieser Idee können viele andere Analysen durchgeführt werden, z. B. die Analyse der am häufigsten aufgerufenen UA; An.

    Dies ist der Prototyp eines groß angelegten Web-Log-Analysesystems. Dieses Format eignet sich auch sehr gut für nachfolgende groß angelegte Batch- und Streaming-Berechnungen.

    Das Obige ist eine Einführung in das manuelle Spielen mit Nginx-Protokollen, einschließlich verschiedener Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

  • Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Was sind die Vorteile von Multithreading in C#? Was sind die Vorteile von Multithreading in C#? Apr 03, 2025 pm 02:51 PM

    Der Vorteil des Multithreading besteht darin, dass es die Leistung und die Ressourcenauslastung verbessern kann, insbesondere für die Verarbeitung großer Datenmengen oder die Durchführung zeitaufwändiger Vorgänge. Es ermöglicht es, mehrere Aufgaben gleichzeitig auszuführen, wodurch die Effizienz verbessert wird. Zu viele Threads können jedoch zu einer Leistungsverschlechterung führen. Sie müssen daher sorgfältig die Anzahl der Threads basierend auf der Anzahl der CPU -Kerne und Aufgabenmerkmale auswählen. Darüber hinaus beinhaltet die Multi-Thread-Programmierung Herausforderungen wie Deadlock- und Rassenbedingungen, die unter Verwendung von Synchronisationsmechanismen gelöst werden müssen, und erfordern solide Kenntnisse über die gleichzeitige Programmierung, das Abwägen der Vor- und Nachteile und die Verwendung mit Vorsicht.

    Ich kann mich nicht als Stamm bei MySQL anmelden Ich kann mich nicht als Stamm bei MySQL anmelden Apr 08, 2025 pm 04:54 PM

    Die Hauptgründe, warum Sie sich bei MySQL nicht als Root anmelden können, sind Berechtigungsprobleme, Konfigurationsdateifehler, Kennwort inkonsistent, Socket -Dateiprobleme oder Firewall -Interception. Die Lösung umfasst: Überprüfen Sie, ob der Parameter Bind-Address in der Konfigurationsdatei korrekt konfiguriert ist. Überprüfen Sie, ob die Root -Benutzerberechtigungen geändert oder gelöscht und zurückgesetzt wurden. Stellen Sie sicher, dass das Passwort korrekt ist, einschließlich Fall- und Sonderzeichen. Überprüfen Sie die Einstellungen und Pfade der Socket -Dateiberechtigte. Überprüfen Sie, ob die Firewall Verbindungen zum MySQL -Server blockiert.

    So verwenden Sie SQL if Anweisung So verwenden Sie SQL if Anweisung Apr 09, 2025 pm 06:12 PM

    SQL Wenn Anweisungen verwendet werden, um SQL -Anweisungen mit der Syntax als: if (Bedingung) auszuführen, dann {Anweisung} else {Anweisung} Ende if; Die Bedingung kann ein gültiger SQL -Ausdruck sein, und wenn die Bedingung wahr ist, führen Sie die damalige Klausel aus. Wenn die Bedingung falsch ist, führen Sie die else -Klausel aus. Wenn Aussagen verschachtelt werden können, ermöglichen es komplexere bedingte Überprüfungen.

    Wie vermeiden Sie Schnittstellen von Drittanbietern, die 403 Fehler in der Knotenumgebung zurückgeben? Wie vermeiden Sie Schnittstellen von Drittanbietern, die 403 Fehler in der Knotenumgebung zurückgeben? Apr 01, 2025 pm 02:03 PM

    So vermeiden Sie die Schnittstelle von Drittanbietern, die 403 Fehler in der Knotenumgebung zurückgibt. Wenn Sie die Website von Drittanbietern mithilfe von node.js aufrufen, stoßen Sie manchmal auf das Problem der Rückgabe von 403-Fehler. � ...

    So lösen Sie den 'Netzwerkfehler', der von Vue Axios über Domänen hinweg verursacht wird So lösen Sie den 'Netzwerkfehler', der von Vue Axios über Domänen hinweg verursacht wird Apr 07, 2025 pm 10:27 PM

    Methoden zur Lösung des Cross-Domain-Problems von Vue Axios umfassen: Konfigurieren des CORS-Headers auf der Serverseite mithilfe des AXIOS-Proxy verwenden JSONP mithilfe von WebSocket mithilfe des CORS-Plug-Ins

    Wie kann ich in EasyWechat 5.5 component_verify_ticket effizient erhalten? Wie kann ich in EasyWechat 5.5 component_verify_ticket effizient erhalten? Apr 01, 2025 pm 12:42 PM

    Komponentverify in EasyWechat5.5 ...

    So verwenden Sie Debian Apache -Protokolle, um die Website der Website zu verbessern So verwenden Sie Debian Apache -Protokolle, um die Website der Website zu verbessern Apr 12, 2025 pm 11:36 PM

    In diesem Artikel wird erläutert, wie die Leistung der Website verbessert wird, indem Apache -Protokolle im Debian -System analysiert werden. 1. Log -Analyse -Basics Apache Protokoll Datensätze Die detaillierten Informationen aller HTTP -Anforderungen, einschließlich IP -Adresse, Zeitstempel, URL, HTTP -Methode und Antwortcode. In Debian -Systemen befinden sich diese Protokolle normalerweise in /var/log/apache2/access.log und /var/log/apache2/error.log verzeichnis. Das Verständnis der Protokollstruktur ist der erste Schritt in der effektiven Analyse. 2. Tool mit Protokollanalyse Mit einer Vielzahl von Tools können Apache -Protokolle analysiert: Befehlszeilen -Tools: GREP, AWK, SED und andere Befehlszeilen -Tools.

    So konfigurieren Sie Zend für Apache So konfigurieren Sie Zend für Apache Apr 13, 2025 pm 12:57 PM

    Wie konfigurieren Sie Zend in Apache? Die Schritte zur Konfiguration von Zend Framework in einem Apache -Webserver sind wie folgt: Installieren Sie Zend Framework und extrahieren Sie es in das Webserververzeichnis. Erstellen Sie eine .htaccess -Datei. Erstellen Sie das Zend -Anwendungsverzeichnis und fügen Sie die Index.php -Datei hinzu. Konfigurieren Sie die Zend -Anwendung (application.ini). Starten Sie den Apache -Webserver neu.

    See all articles