Heim > Betrieb und Instandhaltung > Nginx > So verwenden Sie Nginx zur Protokollierung und Analyse von HTTP-Anfragen

So verwenden Sie Nginx zur Protokollierung und Analyse von HTTP-Anfragen

WBOY
Freigeben: 2023-08-02 08:32:13
Original
3049 Leute haben es durchsucht

So verwenden Sie Nginx zum Protokollieren und Analysieren von HTTP-Anfragen

Einführung:
In der täglichen Webentwicklung müssen wir häufig HTTP-Anfragen protokollieren und analysieren, um den Website-Zugriff zu überwachen, Probleme zu beheben und die Leistung zu optimieren. Als leistungsstarker HTTP-Server und Reverse-Proxy-Server bietet Nginx umfangreiche Protokollierungsfunktionen und ist leistungsstärker als andere Server. In diesem Artikel wird erläutert, wie Sie Nginx für die Protokollierung und Analyse von HTTP-Anfragen konfigurieren und verwenden.

1. Nginx-Protokollierungsformat konfigurieren

Um detailliertere Informationen aufzuzeichnen, können wir das Nginx-Protokollierungsformat anpassen. Suchen Sie in der Nginx-Konfigurationsdatei den „http“-Kontext und fügen Sie den folgenden Inhalt hinzu:

http {
    log_format my_log_format '$remote_addr - $remote_user [$time_local] "$request" '
                             '$status $body_bytes_sent "$http_referer" "$http_user_agent" '
                             '"$gzip_ratio"';

    access_log /var/log/nginx/access.log my_log_format;
}
Nach dem Login kopieren

Hier definieren wir ein Protokollierungsformat namens „my_log_format“, einschließlich Remote-Adresse, Remote-Benutzer, Zugriffszeit, Anforderungsinhalt, Statuscode, Anzahl der gesendeten Bytes, Quell-URL, User-Agent, Gzip-Verhältnis und andere Informationen. Dieses Format wird dann auf die Zugriffsprotokolldateien von Nginx angewendet.

2. Konfigurieren Sie Nginx für die Protokollaufteilung.

Mit zunehmender Anzahl der Website-Besuche werden die Protokolldateien tendenziell sehr groß. Um die Protokollverwaltung und -analyse zu erleichtern, können wir Nginx so konfigurieren, dass Protokolle aufgeteilt werden. Fügen Sie der Nginx-Konfigurationsdatei den folgenden Inhalt hinzu:

http {
    access_log /var/log/nginx/access.log my_log_format;
    error_log /var/log/nginx/error.log;

    logrotate daily;
    rotate 7;
    size 10M;
    missingok;
    notifempty;
    compress;
    delaycompress;
}
Nach dem Login kopieren

Hier konfigurieren wir Nginx so, dass Protokolle jeden Tag aufgeteilt werden und die Protokolldateien der letzten 7 Tage aufbewahrt werden. Jede Datei hat eine maximale Größe von 10 MB. Sobald die Obergrenze erreicht ist, wird sie komprimiert und eine neue Protokolldatei erstellt. Darüber hinaus wird die Protokollierung fortgesetzt, wenn die Datei nicht vorhanden ist, und leere Dateien lösen keine Protokollaufteilung aus.

3. Verwenden Sie ELK Stack für die Protokollanalyse

ELK Stack ist eine Open-Source-Protokollanalyselösung, die aus drei Tools besteht: Elasticsearch, Logstash und Kibana. Wir können ELK Stack verwenden, um Nginx-Protokolle zu analysieren und zu visualisieren. Im Folgenden sind die Konfigurationsschritte aufgeführt:

1. Elasticsearch installieren

Zuerst müssen Sie Elasticsearch als Datenbank für die Protokollspeicherung und -indizierung installieren und konfigurieren. Spezifische Installationsschritte finden Sie in der offiziellen Elasticsearch-Dokumentation: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

2 Installieren und konfigurieren Sie Logstash als Datenerfassungs- und Verarbeitungstool. Spezifische Installationsschritte finden Sie in der offiziellen Logstash-Dokumentation: https://www.elastic.co/guide/en/logstash/current/index.html

3 Schreiben Sie die Logstash-Konfigurationsdatei

Erstellen Sie eine neue Konfigurationsdatei (z. B. nginx. conf) und fügen Sie Folgendes hinzu:

input {
    file {
        path => "/var/log/nginx/access.log"
        start_position => "beginning"
    }
}

filter {
    grok {
        match => { "message" => "%{IPORHOST:clientip} %{HTTPDUSER:ident} %{USER:auth} [%{HTTPDATE:timestamp}] "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} %{NUMBER:bytes} "%{URI:referrer}" "%{DATA:useragent}" "%{DATA:gzipratio}"" }
    }
}

output {
    elasticsearch {
        hosts => "localhost"
        index => "nginx-logs-%{+YYYY.MM.dd}"
    }
}
Nach dem Login kopieren

Hier geben wir den Pfad zur Protokolldatei, das Protokollformat und die Adresse von Elasticsearch an und speichern die Protokolle in einem Index mit einem Datumssuffix.

4. Starten Sie Logstash

Starten Sie Logstash und laden Sie die Konfigurationsdatei:

$ bin/logstash -f nginx.conf
Nach dem Login kopieren

5. Installieren und konfigurieren Sie abschließend Kibana als Tool zur Protokollvisualisierung. Spezifische Installationsschritte finden Sie in der offiziellen Dokumentation von Kibana: https://www.elastic.co/guide/en/kibana/current/index.html

Öffnen Sie nach Abschluss der Konfiguration die Weboberfläche von Kibana und suchen und filtern Sie Echtzeit. Nginx-Zugriffsprotokolle anzeigen und analysieren.

Fazit:

Durch die Konfiguration von Nginx zur Protokollierung und Analyse von HTTP-Anfragen können wir den Website-Zugriff überwachen, Probleme beheben und die Leistung optimieren. Gleichzeitig kann in Kombination mit ELK Stack eine zentrale Speicherung, Analyse und Visualisierung von Protokollen erreicht werden, wodurch die Betriebs- und Wartungseffizienz sowie die Genauigkeit der Website-Leistungsanalyse verbessert werden. Ich hoffe, dass dieser Artikel für alle hilfreich sein kann.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Nginx zur Protokollierung und Analyse von HTTP-Anfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage