Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan Nginx untuk pengelogan dan analisis permintaan HTTP

Cara menggunakan Nginx untuk pengelogan dan analisis permintaan HTTP

WBOY
WBOYasal
2023-08-02 08:32:132903semak imbas

Cara menggunakan Nginx untuk log dan menganalisis permintaan HTTP

Pengenalan:
Dalam pembangunan web harian, kita selalunya perlu log dan menganalisis permintaan HTTP untuk memantau akses tapak web, menyelesaikan masalah dan mengoptimumkan prestasi. Sebagai pelayan HTTP yang berkuasa dan pelayan proksi terbalik, Nginx menyediakan fungsi pengelogan yang kaya, dan prestasinya lebih baik daripada pelayan lain. Artikel ini akan memperkenalkan cara mengkonfigurasi dan menggunakan Nginx untuk pengelogan dan analisis permintaan HTTP.

1. Konfigurasikan format pengelogan Nginx

Untuk merekodkan maklumat yang lebih terperinci, kami boleh menyesuaikan format pengelogan Nginx. Dalam fail konfigurasi Nginx, cari konteks "http" dan tambah kandungan berikut:

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;
}

Di sini kami mentakrifkan format pengelogan bernama "my_log_format", termasuk alamat jauh, pengguna jauh, masa akses, permintaan Kandungan, kod status, bilangan bait dihantar, URL sumber, Ejen Pengguna, nisbah Gzip dan maklumat lain. Format ini kemudiannya digunakan pada fail log akses Nginx.

2. Konfigurasikan Nginx untuk pemisahan log

Apabila bilangan lawatan tapak web meningkat, fail log cenderung menjadi sangat besar. Untuk memudahkan pengurusan dan analisis log, kami boleh mengkonfigurasi Nginx untuk memisahkan log. Tambahkan kandungan berikut pada fail konfigurasi Nginx:

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;
}

Di sini kami mengkonfigurasi Nginx untuk memisahkan log setiap hari dan mengekalkan fail log selama 7 hari yang lalu. Setiap fail mempunyai saiz maksimum 10MB Setelah had atas dicapai, ia akan dimampatkan dan fail log baharu akan dijana. Selain itu, pengelogan akan diteruskan jika fail tidak wujud, dan fail kosong tidak akan mencetuskan pemisahan log.

3. Gunakan ELK Stack untuk analisis log

ELK Stack ialah penyelesaian analisis log sumber terbuka yang terdiri daripada tiga alatan: Elasticsearch, Logstash dan Kibana. Kita boleh menggunakan ELK Stack untuk menganalisis dan menggambarkan log Nginx. Berikut ialah langkah konfigurasi:

1 Pasang Elasticsearch

Mula-mula, anda perlu memasang dan mengkonfigurasi Elasticsearch sebagai pangkalan data untuk penyimpanan log dan pengindeksan. Untuk langkah pemasangan khusus, sila rujuk dokumentasi rasmi Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

2. Pasang Logstash

Kedua, pasang dan konfigurasikan Logstash sebagai alat pengumpulan dan Pemprosesan data. Untuk langkah pemasangan khusus, sila rujuk dokumentasi Logstash rasmi: https://www.elastic.co/guide/en/logstash/current/index.html

3 Tulis fail konfigurasi Logstash

Buat fail konfigurasi baharu (seperti nginx. conf) dan tambahkan yang berikut:

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}"
    }
}

Di sini kami menentukan laluan ke fail log, format log dan alamat Elasticsearch, dan menyimpan log dalam indeks dengan akhiran tarikh.

4. Mulakan Logstash

Mulakan Logstash dan muatkan fail konfigurasi:

$ bin/logstash -f nginx.conf

5. Pasang Kibana

Akhir sekali, pasang dan konfigurasikan Kibana sebagai alat untuk visualisasi log. Untuk langkah pemasangan khusus, sila rujuk dokumentasi rasmi Kibana: https://www.elastic.co/guide/en/kibana/current/index.html

Selepas konfigurasi selesai, buka antara muka web Kibana dan cari serta tapis dalam masa nyata. Lihat dan analisis log akses Nginx.

Kesimpulan:
Dengan mengkonfigurasi Nginx untuk log dan menganalisis permintaan HTTP, kami boleh memantau akses tapak web, menyelesaikan masalah dan mengoptimumkan prestasi. Pada masa yang sama, digabungkan dengan ELK Stack, penyimpanan berpusat, analisis dan visualisasi log boleh dicapai, meningkatkan kecekapan operasi dan penyelenggaraan serta ketepatan analisis prestasi laman web. Saya harap artikel ini dapat membantu semua orang.

Atas ialah kandungan terperinci Cara menggunakan Nginx untuk pengelogan dan analisis permintaan HTTP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn