HTTP server nginx má fenomenální protokolovací zařízení, které je vysoce přizpůsobitelné. V tomto článku vám vysvětlíme, jak nakonfigurovat vlastní formáty pro protokoly přístupu a chyb pro Nginx v Linuxu.
cílem této příručky je pomoci vám pochopit, jak protokoly jsou generovány tak, aby nastavit vlastní formáty protokolu pro účely ladění, řešení problémů nebo analýzu toho, co se odehrává ve vašem webovém serveru, stejně jako webové aplikace (například požadavky na logování).,
Přečtěte si Také: 4 Dobré Open Source Protokol Sledování a Řízení Nástroje pro Linux
Tento článek se skládá ze tří sekcí, které budou informovat vás o konfiguraci přístup/chybové hlášky a jak povolit podmíněný přihlášením Nginx.
Konfigurace Přístup Záznamy v Nginx
Pod Nginx všechny požadavky klienta na server jsou recored v přístupu protokolu v zadaném formátu pomocí ngx_http_log_module modul.
výchozí soubor protokolu je log/access.,log (obvykle /var/log/nginx/access_log na systémech Linux) a výchozí formát pro přihlášení je obvykle kombinované nebo hlavní formát (to se může lišit od jedné distribuce k druhé).
access_log směrnice (platné v http, server, umístění, pokud v místě a omezit s výjimkou kontextu) se používá k nastavení souboru protokolu a log_format směrnice (platné v rámci http kontextu) se používá k nastavení formátu protokolu. Formát protokolu je popsán běžnými proměnnými a proměnnými, které jsou generovány pouze v okamžiku zápisu protokolu.,
syntaxe pro konfiguraci formátu protokolu je:
log_format format_name 'set_of_variables_to_define_format';
a syntaxe pro konfiguraci přístupového protokolu je:
následující je výňatek z výchozí Nginx konfigurační soubor /etc/nginx/nginx.conf na CentOS 7.
tento formát protokolu poskytuje následující záznam protokolu.
následuje další užitečné protokolování formátu, který budeme používat pro sledování žádostí, aby naše webové aplikace pomocí některé standardní proměnné, a co je nejdůležitější má žádost ID a protokoly klienta, detaily umístění (země, kód země, region a město).,
můžete jej použít takto:
access_log /var/log/nginx/access.log custom;
tím se vytvoří záznam protokolu, který se objeví takto.
pomocí směrnic access_log můžete zadat několik protokolů na stejné úrovni, zde používáme více než jeden soubor protokolu v kontextu http.
tyto jsou více rozšířené protokolování konfigurace příklady, které jsou užitečné pro formáty protokolu, které obsahují komprese-související proměnné a pro vytváření komprimované log soubory:
access_log /var/log/nginx/custom_log custom buffer 32k;access_log /path/to/log.gz compression gzip flush=5m;
Konfigurace Protokolů Chyb v Nginx
V případě, že Nginx zkušenosti žádné závady, zaznamenává informace o nich v protokolu chyb. Tyto problémy spadají pod různé úrovně závažnosti: ladění, informace, upozornění, varování, chyba (toto je výchozí úroveň a funguje globálně), crit, alert nebo emerg.
výchozí soubor protokolu je log / error.,log, ale je obvykle umístěn v/var/log/ Nginx / na Linuxových distribucích. Směrnice error_log se používá k určení souboru protokolu a může být použita v hlavním, http, mail, stream, server, kontext umístění (v tomto pořadí).
měli byste také poznamenat, že:
- konfigurace v hlavním kontextu jsou vždy zděděny nižšími úrovněmi v pořadí výše.
- a konfigurace v nižších úrovních přepisují konfigurace zděděné z vyšších úrovní.,
můžete nakonfigurovat protokolování chyb pomocí následující syntaxe:
error_log /path/to/log_file log_level;
například:
error_log /var/log/nginx/error_log warn;
Tento pokyn Nginx protokolovat všechny zprávy typu varovat a přísnější úroveň protokolu crit, alert a tísňová zprávy.
V dalším příkladu budou zaznamenány zprávy úrovní crit, alert a emerg.
error_log /var/www/example1.com/log/error_log crit;
Zvažte konfiguraci níže, zde jsme definovali protokolování chyb na různých úrovních (v http a server kontextu)., V případě chyby je zpráva zapsána pouze do jednoho protokolu chyb, který je nejblíže úrovni, kde se chyba objevila.
Pokud používáte více než jednu směrnici error_log jako v níže uvedené konfiguraci (stejná úroveň), zprávy jsou zapsány do všech zadaných protokolů.
Konfigurace Podmíněné Přihlášení Nginx
V některých případech můžeme chtít Nginx provádět podmíněné protokolování zpráv., Ne každá zpráva musí být zaznamenána společností Nginx, proto můžeme ignorovat nevýznamné nebo méně důležité položky protokolu z našich přístupových protokolů pro konkrétní instance.
můžeme použít modul ngx_http_map_module, který vytváří proměnné, jejichž hodnoty závisí na hodnotách jiných proměnných. Parametry uvnitř mapového bloku (které by měly existovat pouze v obsahu http) určují mapování mezi zdrojovými a výslednými hodnotami.
pro tento druh nastavení nebude žádost zaznamenána, pokud stav vyhodnotí "0”
nebo prázdný řetězec., Tento příklad vylučuje požadavky se stavovými kódy HTTP 2xx a 3xx.
http{map $status $condition {~^ 0; default 1;}server{access_log /path/to/access.log custom if=$condition;}}
Zde je další užitečný příklad pro ladění webové aplikace ve fázi vývoje. To bude ignorovat všechny zprávy a pouze log ladit informace.
Více informací včetně přihlášení do syslogu najdete zde.
to je prozatím vše! V této příručce jsme vysvětlili, jak nakonfigurovat vlastní formát protokolování pro protokoly přístupu a chyb v Nginxu., Pomocí níže uvedeného formuláře zpětné vazby můžete klást otázky nebo sdílet myšlenky o tomto článku.