La monitorització de NGINX és essencial per assegurar que el servidor web funcioni de manera òptima i per detectar i resoldre problemes abans que afectin els usuaris finals. En aquesta secció, aprendrem com monitoritzar NGINX utilitzant diverses eines i tècniques.

Objectius d'Aprenentatge

  • Entendre la importància de la monitorització de NGINX.
  • Aprendre a utilitzar les eines de monitorització integrades de NGINX.
  • Configurar i interpretar els registres d'accés i d'error.
  • Utilitzar eines externes per a la monitorització avançada.

  1. Importància de la Monitorització

Monitoritzar NGINX és crucial per:

  • Detectar problemes de rendiment: Identificar colls d'ampolla i optimitzar el rendiment.
  • Assegurar la disponibilitat: Garantir que el servidor estigui operatiu i accessible.
  • Analitzar el trànsit: Comprendre els patrons de trànsit i ajustar la configuració segons sigui necessari.
  • Seguretat: Detectar intents d'intrusió i altres activitats malicioses.

  1. Eines de Monitorització Integrades

2.1. Registres d'Accés i d'Error

NGINX proporciona dos tipus principals de registres:

  • Registres d'accés: Contenen informació sobre cada sol·licitud HTTP que NGINX processa.
  • Registres d'error: Contenen informació sobre errors que es produeixen durant el funcionament de NGINX.

Configuració dels Registres

Per configurar els registres, edita el fitxer de configuració de NGINX (nginx.conf):

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;
    error_log /var/log/nginx/error.log warn;
}
  • log_format: Defineix el format dels registres d'accés.
  • access_log: Especifica la ubicació del fitxer de registre d'accés.
  • error_log: Especifica la ubicació del fitxer de registre d'error i el nivell de registre (per exemple, warn, error, crit).

2.2. Estat de NGINX

NGINX té un mòdul integrat per mostrar l'estat del servidor en temps real. Per habilitar-lo, afegeix la següent configuració al fitxer nginx.conf:

http {
    server {
        listen 8080;
        server_name localhost;

        location /nginx_status {
            stub_status on;
            allow 127.0.0.1;  # Permet només les sol·licituds des de localhost
            deny all;         # Denega totes les altres sol·licituds
        }
    }
}

Després de reiniciar NGINX, pots accedir a l'estat del servidor visitant http://localhost:8080/nginx_status. La sortida serà similar a:

Active connections: 291
server accepts handled requests
  1042 1042 821
Reading: 0 Writing: 1 Waiting: 290
  • Active connections: Nombre de connexions actives.
  • accepts: Nombre total de connexions acceptades.
  • handled: Nombre total de connexions gestionades.
  • requests: Nombre total de sol·licituds processades.
  • Reading: Nombre de connexions llegint la sol·licitud del client.
  • Writing: Nombre de connexions enviant la resposta al client.
  • Waiting: Nombre de connexions mantenint-se en espera.

  1. Eines de Monitorització Externes

3.1. Grafana i Prometheus

Grafana i Prometheus són eines populars per a la monitorització i visualització de dades. Per utilitzar-les amb NGINX, necessitaràs el mòdul nginx-vts-exporter per exportar les mètriques de NGINX a Prometheus.

Instal·lació de nginx-vts-exporter

  1. Instal·la el mòdul nginx-module-vts:

    sudo apt-get install nginx-module-vts
    
  2. Configura el mòdul en nginx.conf:

    http {
        vhost_traffic_status_zone;
    
        server {
            listen 8080;
            server_name localhost;
    
            location /status {
                vhost_traffic_status_display;
                vhost_traffic_status_display_format html;
            }
        }
    }
    
  3. Instal·la nginx-vts-exporter:

    wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
    tar -xzf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
    ./nginx-vts-exporter
    
  4. Configura Prometheus per recollir les mètriques:

    scrape_configs:
      - job_name: 'nginx'
        static_configs:
          - targets: ['localhost:9913']
    
  5. Configura Grafana per visualitzar les mètriques: Afegeix Prometheus com a font de dades i crea panells per visualitzar les mètriques de NGINX.

3.2. ELK Stack (Elasticsearch, Logstash, Kibana)

L'ELK Stack és una altra solució popular per a la monitorització i anàlisi de registres.

Configuració bàsica de l'ELK Stack

  1. Instal·la Elasticsearch, Logstash i Kibana:

    sudo apt-get install elasticsearch logstash kibana
    
  2. Configura Logstash per processar els registres de NGINX:

    input {
        file {
            path => "/var/log/nginx/access.log"
            start_position => "beginning"
        }
    }
    
    filter {
        grok {
            match => { "message" => "%{COMBINEDAPACHELOG}" }
        }
    }
    
    output {
        elasticsearch {
            hosts => ["localhost:9200"]
        }
    }
    
  3. Inicia Elasticsearch, Logstash i Kibana:

    sudo systemctl start elasticsearch
    sudo systemctl start logstash
    sudo systemctl start kibana
    
  4. Accedeix a Kibana: Visita http://localhost:5601 per començar a visualitzar els registres de NGINX.

  1. Exercicis Pràctics

Exercici 1: Configurar els Registres de NGINX

  1. Edita el fitxer nginx.conf per configurar els registres d'accés i d'error.
  2. Reinicia NGINX i genera algunes sol·licituds HTTP.
  3. Revisa els fitxers de registre per assegurar-te que les sol·licituds es registren correctament.

Exercici 2: Habilitar l'Estat de NGINX

  1. Afegeix la configuració necessària per habilitar l'estat de NGINX.
  2. Accedeix a la pàgina d'estat i interpreta la informació mostrada.

Exercici 3: Configurar Prometheus i Grafana

  1. Instal·la i configura nginx-vts-exporter.
  2. Configura Prometheus per recollir les mètriques de NGINX.
  3. Configura Grafana per visualitzar les mètriques recollides per Prometheus.

  1. Resum

En aquesta secció, hem après la importància de monitoritzar NGINX i hem explorat diverses eines i tècniques per fer-ho. Hem configurat els registres d'accés i d'error, hem habilitat l'estat de NGINX i hem utilitzat eines externes com Prometheus, Grafana i l'ELK Stack per a la monitorització avançada. La monitorització efectiva de NGINX ens permet detectar i resoldre problemes de manera proactiva, assegurant un rendiment òptim i una alta disponibilitat del servidor web.

© Copyright 2024. Tots els drets reservats