En aquest tema, aprendrem com NGINX gestiona els registres (logs) i com podem personalitzar els formats de registre per adaptar-los a les nostres necessitats. Els registres són essencials per monitoritzar el rendiment del servidor, detectar errors i analitzar el tràfic.
- Tipus de registres en NGINX
NGINX utilitza principalment dos tipus de registres:
- Registres d'accés (Access Logs): Contenen informació sobre les peticions que arriben al servidor.
- Registres d'error (Error Logs): Contenen informació sobre errors que es produeixen durant el funcionament del servidor.
1.1 Registres d'accés
Els registres d'accés proporcionen informació detallada sobre cada petició HTTP que rep el servidor. Per defecte, NGINX utilitza un format de registre anomenat combined
.
Exemple de configuració de registre d'accés:
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; }
1.2 Registres d'error
Els registres d'error contenen informació sobre problemes que es produeixen durant el funcionament del servidor. Els nivells de registre d'error inclouen debug
, info
, notice
, warn
, error
, crit
, alert
, i emerg
.
Exemple de configuració de registre d'error:
- Personalització dels formats de registre
NGINX permet personalitzar els formats de registre per incloure informació específica que pugui ser útil per a l'administrador del sistema.
2.1 Definint un format de registre personalitzat
Podem definir un format de registre personalitzat utilitzant la directiva log_format
.
Exemple de format de registre personalitzat:
http { log_format custom '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' '$request_time $upstream_response_time'; access_log /var/log/nginx/custom_access.log custom; }
En aquest exemple, hem afegit $request_time
i $upstream_response_time
al format de registre per obtenir informació sobre el temps de resposta de les peticions.
2.2 Variables de registre
NGINX proporciona una àmplia gamma de variables que es poden utilitzar en els formats de registre. Algunes de les més comunes són:
Variable | Descripció |
---|---|
$remote_addr |
Adreça IP del client |
$remote_user |
Nom d'usuari autenticat |
$time_local |
Hora local en el moment de la petició |
$request |
Línia de petició completa |
$status |
Codi d'estat de la resposta |
$body_bytes_sent |
Nombre de bytes enviats al client, excloent la capçalera de resposta HTTP |
$http_referer |
Capçalera "Referer" de la petició |
$http_user_agent |
Capçalera "User-Agent" de la petició |
$http_x_forwarded_for |
Capçalera "X-Forwarded-For" de la petició |
$request_time |
Temps total de processament de la petició |
$upstream_response_time |
Temps de resposta del servidor upstream |
- Exercicis pràctics
Exercici 1: Configurar un registre d'accés personalitzat
Objectiu: Configurar un registre d'accés personalitzat que inclogui la informació següent: adreça IP del client, hora local, línia de petició, codi d'estat, nombre de bytes enviats, referer, user-agent, temps de processament de la petició.
Solució:
http { log_format my_custom_format '$remote_addr - $time_local "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $request_time'; access_log /var/log/nginx/my_custom_access.log my_custom_format; }
Exercici 2: Configurar un registre d'error amb nivell error
Objectiu: Configurar un registre d'error que només registri missatges amb nivell error
o superior.
Solució:
- Resum
En aquesta secció, hem après sobre els diferents tipus de registres en NGINX, com configurar-los i com personalitzar els formats de registre per obtenir informació específica. Els registres són una eina poderosa per monitoritzar i diagnosticar el rendiment del servidor, així com per detectar i solucionar problemes.
En el proper tema, explorarem com NGINX pot servir contingut estàtic de manera eficient.
Curs de NGINX
Mòdul 1: Introducció a NGINX
Mòdul 2: NGINX com a servidor web
- Servint contingut estàtic
- Llistats de directoris
- Pàgines d'error personalitzades
- Registre i formats de registre