Nginx HTTP server are o facilitate de logare fenomenal, care este foarte personalizabil. În acest articol, vă vom explica cum să vă configurați propriile formate pentru jurnalele de acces și erori pentru Nginx în Linux.
scopul acestui ghid este de a vă ajuta să înțelegeți cum busteni sunt generate, astfel încât să se configura log formate pentru scopuri de depanare, depanare sau de analiză a ceea ce se desfășoară în cadrul server-ul web precum si aplicatii web (cum ar fi urmărirea de cereri).,Citește și: 4 instrumente bune de monitorizare și gestionare a jurnalelor Open Source Pentru Linux acest articol este format din trei secțiuni care vă vor lumina despre configurarea jurnalelor de acces/eroare și cum să activați logarea condiționată în Nginx.
Configurarea Busteni de Acces în Nginx
Sub Nginx, toate solicitările client la server sunt recored în jurnal de acces într-un format specificat, folosind ngx_http_log_module module.
fișierul jurnal implicit este log/access.,log (De obicei / var/log/nginx / access_log pe sistemele Linux) și formatul implicit pentru logare este în mod normal formatul combinat sau principal (acesta poate varia de la o distro la alta).
Directiva access_log (aplicabilă în http, server, locație, dacă este în locație și limită, cu excepția contextului) este utilizată pentru a seta fișierul jurnal, iar Directiva log_format (aplicabilă numai în contextul http) este utilizată pentru a seta formatul jurnalului. Formatul jurnalului este descris de variabile comune și variabile care au generat numai în momentul în care este scris un jurnal.,
sintaxa pentru configurarea unui jurnal format este:
log_format format_name 'set_of_variables_to_define_format';
și sintaxa pentru configurarea jurnal de acces este:
următorul text este un fragment din default Nginx fișierul de configurare /etc/nginx/nginx.conf pe CentOS 7.
acest format jurnal dă următoarea intrare jurnal.următorul este un alt format de logare util pe care îl folosim pentru urmărirea cererilor către aplicațiile noastre web folosind unele dintre variabilele implicite, cel mai important are ID-ul cererii și înregistrează detaliile locației clientului (țară, cod de țară, regiune și oraș).,
puteți să-l utilizați astfel:
access_log /var/log/nginx/access.log custom;
aceasta va produce o intrare de jurnal care apare astfel.
puteți specifica mai multe jurnale folosind directivele access_log la același nivel, aici folosim mai multe fișiere jurnal în contextul http.
următoarele sunt mult mai avansate logare configurații exemple, care sunt utile pentru jurnal formate care conțin compresie legate de variabile și pentru crearea comprimat fișiere jurnal:
access_log /var/log/nginx/custom_log custom buffer 32k;access_log /path/to/log.gz compression gzip flush=5m;
Configurarea Jurnalele de Eroare în Nginx
în cazul În care Nginx experiențe orice erori, se înregistrează informații referitoare la acestea, în jurnalul de erori. Aceste probleme se încadrează în diferite niveluri de severitate: debug, info, notice, warn, error (acesta este nivelul implicit și funcționează la nivel global), crit, alert sau emerg.
fișierul jurnal implicit este log / error.,log, dar este în mod normal localizat în /var/log/nginx/ pe distribuțiile Linux. Directiva error_log este utilizată pentru a specifica fișierul jurnal și poate fi utilizată în contextul principal, http, mail, stream, server, locație (în această ordine).de asemenea, trebuie să rețineți că: configurațiile din contextul principal sunt întotdeauna moștenite de niveluri inferioare în ordinea de mai sus.
puteți configura eroare de logare folosind următoarea sintaxă:
error_log /path/to/log_file log_level;
De exemplu:
error_log /var/log/nginx/error_log warn;
Acesta va instrui Nginx pentru a vă conecta toate mesajele de tip avertiza și mai severe log nivel crit, de alertă, de urgență și mesaje.
în exemplul următor, mesajele de nivel crit, alert și emerg vor fi înregistrate.
error_log /var/www/example1.com/log/error_log crit;
luați în considerare configurația de mai jos, aici, am definit eroare de logare pe diferite niveluri (în contextul http și server)., În cazul unei erori, mesajul este scris într-un singur jurnal de erori, cel mai apropiat de nivelul în care a apărut eroarea.
Dacă utilizați mai multe directive error_log ca în configurația de mai jos (același nivel), mesajele sunt scrise în toate jurnalele specificate.
Configurarea logării condiționate în Nginx
În unele cazuri, este posibil să dorim ca Nginx să efectueze logarea condiționată a mesajelor., Nu orice mesaj trebuie să fie înregistrat de Nginx, prin urmare, putem ignora intrările de jurnal nesemnificative sau mai puțin importante din jurnalele noastre de acces pentru anumite instanțe.
putem folosi modulul ngx_http_map_module care creează variabile ale căror valori depind de valorile altor variabile. Parametrii din interiorul unui bloc de hărți (care ar trebui să existe doar în conținutul http) specifică o mapare între sursă și valorile rezultate.
Pentru acest tip de setare, o cerere nu va fi înregistrat dacă starea se evaluează la "0”
sau un șir gol., Acest exemplu exclude cererile cu codurile de stare HTTP 2XX și 3xx.
http{map $status $condition {~^ 0; default 1;}server{access_log /path/to/access.log custom if=$condition;}}
Iată un alt exemplu util pentru depanarea unei aplicații web într-o fază de dezvoltare. Acest lucru va ignora toate mesajele și numai informațiile de depanare a jurnalului.
puteți afla mai multe informații, inclusiv conectarea la syslog aici.
asta e tot pentru moment! În acest ghid, am explicat cum să configurați formatul de logare personalizat pentru jurnalele de acces și erori în Nginx., Utilizați formularul de feedback de mai jos pentru a pune întrebări sau pentru a vă împărtăși gânduri despre acest articol.