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.

  1. 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:

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

  1. 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

  1. 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ó:

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

  1. 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.

© Copyright 2024. Tots els drets reservats