Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Pemahaman mendalam tentang alat analisis log Nginx dan teknik pengendalian ralat

Pemahaman mendalam tentang alat analisis log Nginx dan teknik pengendalian ralat

PHPz
PHPzasal
2023-08-07 22:49:432249semak imbas

Pemahaman mendalam tentang alat analisis log Nginx dan teknik pengendalian ralat

Pemahaman mendalam tentang alat analisis log Nginx dan teknik pengendalian ralat

Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik, digunakan secara meluas dalam medan Internet. Semasa operasi, penyelenggaraan dan proses pembangunan, kami sering perlu menganalisis log Nginx untuk memahami status berjalan dan prestasi pelayan. Artikel ini akan menyelidiki alat analisis log Nginx dan teknik pengendalian ralat biasa, dan memberikan contoh kod yang berkaitan.

1. Alat analisis log Nginx
1.1. Log akses Nginx
Log akses Nginx merekodkan maklumat terperinci setiap permintaan, termasuk masa akses, alamat IP pelanggan, laluan URL yang diminta, kod status HTTP, dsb. Kami boleh memahami tingkah laku akses pengguna dan prestasi akses dengan menganalisis log akses. Alat analisis log Nginx yang biasa digunakan termasuk GoAccess, Awstats dan ELK.

1.2. GoAccess
GoAccess ialah alat analisis log web masa nyata berdasarkan baris arahan, yang boleh memaparkan maklumat log Nginx dalam cara visual. Ia boleh menjana laporan dalam format HTML dan JSON serta menyokong pelbagai kaedah statistik dan syarat penapisan. Berikut ialah contoh penggunaan GoAccess untuk menganalisis log akses Nginx:

$ goaccess -f /path/to/nginx/access.log -a

Arahan ini akan menganalisis dan memaparkan log akses Nginx dalam masa nyata. Dengan mengakses http://localhost:7890 dalam penyemak imbas, anda boleh melihat laporan akses masa nyata.

1.3 Awstats
Awstats ialah alat analisis log yang berkuasa yang boleh menjana laporan dan carta akses terperinci. Ia menyokong pelbagai format log, termasuk format log akses Nginx. Berikut ialah contoh menggunakan Awstats untuk menganalisis log akses Nginx:

$ awstats.pl -config=nginx -LogFile=/path/to/nginx/access.log

Perintah ini akan menjana laporan HTML terperinci yang menunjukkan statistik akses Nginx.

1.4. ELK
ELK merujuk kepada gabungan tiga alatan sumber terbuka, Elasticsearch, Logstash dan Kibana, digunakan untuk analisis masa nyata dan visualisasi data log. Elasticsearch ialah enjin carian dan analisis yang diedarkan, Logstash ialah alat untuk mengumpul, memproses dan menghantar data log, dan Kibana ialah alat untuk memaparkan dan menggambarkan data log.

Dengan mengimport log Nginx ke dalam ELK, kami boleh menggunakan Kibana untuk menjana papan pemuka dan carta yang kaya untuk menemui dan menyelesaikan masalah dengan cepat. Berikut ialah contoh penggunaan ELK untuk menganalisis log akses Nginx:

Mula-mula, import log Nginx ke dalam Elasticsearch melalui Logstash, fail konfigurasi adalah seperti berikut:

input {
  file {
    path => "/path/to/nginx/access.log"
    sincedb_path => "/dev/null"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "nginx-access-%{+YYYY.MM.dd}"
  }
}

Kemudian, buat papan pemuka visual melalui Kibana, pilih jenis carta yang berbeza sebagai diperlukan dan indeks.

2. Kemahiran pengendalian ralat Nginx
2.1 Log ralat
Log ralat Nginx merekodkan status berjalan dan maklumat ralat pelayan, yang sangat membantu untuk menyelesaikan masalah dan pengoptimuman prestasi. Lokasi dan format log ralat boleh ditentukan dalam fail konfigurasi Nginx. Berikut ialah contoh konfigurasi log ralat biasa:

error_log /var/log/nginx/error.log;

2.2 Halaman ralat tersuai
Nginx boleh menyesuaikan halaman ralat supaya pengguna dapat melihat gesaan mesra apabila menghadapi ralat. Secara amnya, kita boleh menentukan halaman ralat biasa seperti 404 dan 500. Berikut ialah contoh konfigurasi halaman ralat 404 tersuai:

error_page 404 /404.html;

location = /404.html {
  root /path/to/error/pages;
  internal;
}

di mana arahan error_page指令指定了出现404错误时返回的页面,location menentukan lokasi halaman ralat.

2.3. Kod status HTTP
Nginx menggunakan kod status HTTP untuk menunjukkan hasil pemprosesan permintaan ialah 200, 301, 404, 500, dsb. Untuk kod status yang berbeza, anda boleh mengendalikannya dengan sewajarnya melalui fail konfigurasi Nginx. Berikut ialah contoh konfigurasi untuk mengubah hala kod status 301:

location /old-path {
  return 301 /new-path;
}

Konfigurasi ini akan mengubah hala semua permintaan untuk /old-path ke /new-path.

2.4. Pemprosesan tamat masa proksi songsang
Dalam mod proksi terbalik, Nginx bertindak sebagai pelayan proksi bahagian hadapan, memproksi permintaan pengguna dan memajukannya ke pelayan sebenar di bahagian belakang. Nginx boleh menyebabkan ralat tamat masa apabila pelayan bahagian belakang mengambil masa terlalu lama untuk memproses permintaan. Untuk menyelesaikan masalah ini, kami boleh melaraskan tamat masa dengan mengubah suai fail konfigurasi Nginx. Berikut ialah konfigurasi contoh untuk pengendalian tamat masa proksi terbalik:

location / {
  proxy_pass http://backend;
  proxy_connect_timeout 5s;
  proxy_send_timeout 10s;
  proxy_read_timeout 20s;
}

Konfigurasi ini akan memajukan permintaan ke pelayan hujung belakang dan menetapkan sambungan, menghantar dan membaca tamat masa.

Ringkasan
Artikel ini memperkenalkan alat analisis log Nginx dan teknik pengendalian ralat, serta menyediakan contoh kod yang berkaitan. Dengan pemahaman yang mendalam tentang alat analisis log Nginx dan teknik pengendalian ralat, kami boleh memantau dan mengekalkan status berjalan pelayan Nginx dengan lebih baik dan meningkatkan kebolehpercayaan dan prestasi sistem. Pada masa yang sama, artikel ini juga berharap dapat membantu pembaca dalam operasi dan proses pembangunan mereka.

Atas ialah kandungan terperinci Pemahaman mendalam tentang alat analisis log Nginx dan teknik pengendalian ralat. 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