Android

Pag-configure ng error nginx at pag-access log

Hello Counselor - Hyun A, Changmin and Lee Hyeon! (2014.08.18)

Hello Counselor - Hyun A, Changmin and Lee Hyeon! (2014.08.18)

Talaan ng mga Nilalaman:

Anonim

Ang Nginx ay isang bukas na mapagkukunan, mataas na pagganap na HTTP at reverse proxy server na responsable sa paghawak ng pag-load ng ilan sa mga pinakamalaking site sa Internet. Kapag namamahala ng mga web server NGINX, ang isa sa mga madalas na gawain na gagawin mo ay ang pagsuri sa mga file ng log.

Ang pag-alam kung paano i-configure at basahin ang mga log ay lubhang kapaki-pakinabang kapag ang pag-aayos ng server o mga isyu sa aplikasyon habang nagbibigay sila ng detalyadong impormasyon sa pag-debug.

Sinusulat ni Nginx ang mga talaan ng mga kaganapan nito sa dalawang uri ng mga log: pag-access ng mga log at error log. Ang mga access log ay sumulat ng impormasyon tungkol sa mga kahilingan ng kliyente, at ang mga error sa pag-log ay sumulat ng impormasyon tungkol sa mga isyu sa server at aplikasyon.

Binalangkas ng artikulong ito kung paano i-configure at basahin ang pag-access ng Nginx at mga error sa error.

Pag-configure ng Access Log

Tuwing naproseso ang isang kahilingan sa kliyente, ang Nginx ay bumubuo ng isang bagong kaganapan sa pag-access log. Ang bawat tala ng kaganapan ay naglalaman ng isang timestamp at may kasamang iba't ibang impormasyon tungkol sa kliyente at hiniling na mapagkukunan. Maaaring maipakita sa iyo ng pag-access ng mga tala ang lokasyon ng mga bisita, ang pahinang binisita nila, kung gaano karaming oras ang ginugol nila sa pahina, at marami pa.

Pinapayagan ka ng log_format na tukuyin ang format ng mga naka-log na mensahe. Ang pag- access_log nagbibigay-daan at nagtatakda ng lokasyon ng log file at ang ginamit na format.

Ang pinaka pangunahing syntax ng access_log direktiba ay ang mga sumusunod:

access_log log_file log_format;

Kung saan ang log_file ay ang buong landas sa file ng log, at ang log_format ay ang format na ginamit ng log file.

Ang pag-access log ay maaaring paganahin ang alinman sa http , server , o bloke ng direktiba ng location .

Bilang default, ang pag-access log ay pinahusay sa buong mundo sa http direktoryo sa loob ng pangunahing file ng pagsasaayos ng Nginx.

/etc/nginx/nginx.conf

http {… access_log /var/log/nginx/access.log;… }

Para sa mas mahusay na pagpapanatili, inirerekumenda na magtakda ng isang hiwalay na pag-access ng file ng log para sa bawat block ng server. Ang access_log ng pag- server direktoryo ng server nagpapatuloy sa isang hanay sa http ng http (mas mataas na antas).

/etc/nginx/conf.d/domain.com.conf

http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }

Kung walang tinukoy na format ng log ay gumagamit ng paunang natukoy na pinagsama na format na katulad nito:

log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';

Upang baguhin ang format ng pag-log alinman mapalampas ang default na setting o tukuyin ang bago. Halimbawa upang tukuyin ang isang bagong format ng pag-log na pinangalanan na pangunahing magpapalawak sa pinagsamang format kasama ang halaga na nagpapakita ng X-Forwarded-For header idagdag ang sumusunod na kahulugan sa http o direktiba ng server :

log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

Upang magamit ang bagong format, tukuyin ang pangalan nito pagkatapos ng log file tulad ng ipinakita sa ibaba:

access_log /var/log/nginx/access.log custom;

Habang ang pag-access log ay nagbibigay ng napaka kapaki-pakinabang na impormasyon. tumatagal ito ng puwang sa disk at maaaring makaapekto sa pagganap ng server. Kung ang iyong server ay mababa sa mga mapagkukunan at mayroon kang isang abalang website, maaaring gusto mong huwag paganahin ang pag-access log. Upang gawin iyon, itakda ang halaga ng access_log ng access_log :

access_log off;

Pag-configure ng Error Log

Nagsusulat si Nginx ng mga mensahe tungkol sa application at pangkalahatang mga error sa server sa error log file. Kung nakakaranas ka ng mga error sa iyong web application, ang error log ay ang unang lugar upang magsimula para sa pag-aayos ng mga isyu.

Ang error_log direktoryo ay nagbibigay-daan at nagtatakda ng lokasyon at ang kalubhaan ng error log. Kinakailangan ang sumusunod na form at maaaring itakda sa loob ng isang http , server , o bloke ng location :

error_log log_file log_level

Ang parameter ng log_level nagtatakda ng antas ng pag-log. Nasa ibaba ang mga antas na nakalista sa kanilang kalubhaan (mula mababa hanggang mataas):

  • debug - Pag-debug ng mga mensahe. info - Mga info -impormasyon. notice - Mga Paunawa. warn - Mga Babala. error - Mga Mali habang pinoproseso ang isang kahilingan. crit - Kritikal na isyu. Nangangailangan ng isang agarang pagkilos. alert - Mga Alerto. Ang pagkilos ay dapat gawin agad. emerg - Pang-emergency na sitwasyon. Ang sistema ay nasa isang hindi magagamit na estado.

Ang bawat antas ng log ay may kasamang mas mataas na antas. Halimbawa, kung itinakda mo ang antas ng log upang warn , mai-log din ng Nginx ang mga error , crit , alert , at mga emerg mensahe.

Kapag hindi tinukoy ang parameter na log_level , ito ay log_level sa error .

Bilang default, ang error_log direktiba ay tinukoy sa direktiba ng http loob ng pangunahing file nginx.conf:

/etc/nginx/nginx.conf

http {… error_log /var/log/nginx/error.log;… }

Parehong tulad ng sa pag-access ng mga log, inirerekumenda na magtakda ng isang hiwalay na file ng log ng error para sa bawat bloke ng server, na kung saan ay overrides ang setting na minana mula sa mas mataas na antas.

Halimbawa, upang itakda ang log ng error sa domain.com upang warn ang gagamitin mo:

http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }

Tuwing baguhin mo ang file ng pagsasaayos, kailangan mong i-restart ang serbisyo ng Nginx para sa bisa ng mga pagbabago.

Kinaroroonan ng mga File Fil

Bilang default sa karamihan sa mga pamamahagi ng Linux, tulad ng Ubuntu, CentOS, at Debian, ang pag-access at error log ay matatagpuan sa direktoryo ng /var/log/nginx .

Pagbasa at Pag-unawa sa Nginx Log Files

Maaari mong buksan at i-parse ang mga file ng log gamit ang mga karaniwang utos tulad ng cat , less , grep , cut , awk , at iba pa.

Narito ang isang halimbawa ng tala mula sa pag-access sa file ng pag-access na gumagamit ng default na pagsamahin ang format ng log ng Nginx:

192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Ibagsak natin ang ibig sabihin ng bawat larangan ng talaan:

  • $remote_addr - 192.168.33.1 - Ang IP address ng client na gumagawa ng kahilingan. $remote_user - - - $remote_user HTTP. Kapag hindi nakatakda ang pangalan ng gumagamit, ipinapakita ang patlang na ito - . - - Oras ng Lokal na server. "$request" - "GET / - Ang uri ng kahilingan, landas at protocol. $status - 200 - Ang code ng tugon ng server. $body_bytes_sent - 396 - Ang laki ng tugon ng server sa mga bait. "$http_referer" - "-" - Ang URL ng referral. "$http_user_agent" - Mozilla/5.0… - Ang ahente ng gumagamit ng kliyente (web browser).

Gamitin ang utos ng tail upang mapanood ang log file sa real-time:

tail -f access.log

Konklusyon

Nagbibigay sa iyo ang mga file ng log na may kapaki-pakinabang na impormasyon tungkol sa mga isyu sa server at kung paano nakikipag-ugnay ang mga bisita sa iyong website.

Pinapayagan ka ng Nginx na i-configure ang pag-access at mga error sa alak ayon sa iyong mga pangangailangan.

nginx