Objectius de l'Exercici

En aquest exercici, aprendràs a configurar un sistema de monitoratge i retroalimentació per a un pipeline de CI/CD. Això inclou:

  • Configurar eines de monitoratge.
  • Recollir i analitzar dades de rendiment.
  • Configurar alertes i notificacions.
  • Implementar retroalimentació contínua per millorar el pipeline.

Requisits Prèvis

Abans de començar aquest exercici, assegura't de tenir:

  • Un pipeline de CI/CD configurat (pots utilitzar el pipeline bàsic de l'Exercici 1).
  • Accés a una eina de monitoratge com Prometheus, Grafana, o una alternativa similar.
  • Coneixements bàsics sobre la configuració de servidors i serveis.

Passos de l'Exercici

  1. Configuració de l'Eina de Monitoratge

Pas 1.1: Instal·lació de Prometheus

Prometheus és una eina de monitoratge i alerta de codi obert. Per instal·lar-la, segueix aquests passos:

  1. Descarrega i descomprimeix Prometheus:

    wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz
    tar xvfz prometheus-2.31.1.linux-amd64.tar.gz
    cd prometheus-2.31.1.linux-amd64
    
  2. Executa Prometheus:

    ./prometheus --config.file=prometheus.yml
    
  3. Accedeix a la interfície web de Prometheus a http://localhost:9090.

Pas 1.2: Configuració de Grafana

Grafana és una eina de visualització de dades que es pot integrar amb Prometheus.

  1. Descarrega i instal·la Grafana:

    sudo apt-get install -y adduser libfontconfig1
    wget https://dl.grafana.com/oss/release/grafana_8.2.5_amd64.deb
    sudo dpkg -i grafana_8.2.5_amd64.deb
    
  2. Inicia Grafana:

    sudo systemctl start grafana-server
    sudo systemctl enable grafana-server
    
  3. Accedeix a la interfície web de Grafana a http://localhost:3000 i configura Prometheus com a font de dades.

  1. Recollida i Anàlisi de Dades de Rendiment

Pas 2.1: Configuració de Metrics en el Pipeline

Afegeix un endpoint de metrics al teu pipeline per recollir dades. Per exemple, si utilitzes un servidor Node.js, pots utilitzar el paquet prom-client:

  1. Instal·la prom-client:

    npm install prom-client
    
  2. Afegeix el següent codi al teu servidor:

    const client = require('prom-client');
    const express = require('express');
    const app = express();
    
    const collectDefaultMetrics = client.collectDefaultMetrics;
    collectDefaultMetrics({ timeout: 5000 });
    
    app.get('/metrics', (req, res) => {
        res.set('Content-Type', client.register.contentType);
        res.end(client.register.metrics());
    });
    
    app.listen(3000, () => {
        console.log('Server is running on port 3000');
    });
    
  3. Configura Prometheus per recollir les metrics:

    scrape_configs:
      - job_name: 'node_app'
        static_configs:
          - targets: ['localhost:3000']
    

Pas 2.2: Creació de Dashboards en Grafana

  1. A la interfície de Grafana, crea un nou dashboard.
  2. Afegeix panells per visualitzar les dades recollides per Prometheus, com ara ús de CPU, memòria, temps de resposta, etc.

  1. Configuració d'Alertes i Notificacions

Pas 3.1: Configuració d'Alertes en Prometheus

  1. Crea un fitxer alert.rules.yml amb les regles d'alerta:

    groups:
      - name: example
        rules:
          - alert: HighMemoryUsage
            expr: node_memory_Active_bytes / node_memory_MemTotal_bytes * 100 > 80
            for: 5m
            labels:
              severity: warning
            annotations:
              summary: "High memory usage detected"
              description: "Memory usage is above 80% for more than 5 minutes."
    
  2. Afegeix el fitxer de regles a la configuració de Prometheus:

    rule_files:
      - "alert.rules.yml"
    

Pas 3.2: Configuració de Notificacions en Grafana

  1. A la interfície de Grafana, crea un canal de notificació (per exemple, correu electrònic, Slack, etc.).
  2. Configura les alertes per enviar notificacions a través del canal configurat.

  1. Implementació de Retroalimentació Contínua

Pas 4.1: Anàlisi de Dades i Millora del Pipeline

  1. Revisa regularment les dades recollides i les alertes generades.
  2. Identifica colls d'ampolla i àrees de millora en el pipeline.
  3. Implementa canvis per optimitzar el rendiment i la fiabilitat del pipeline.

Solució Proposada

Configuració de Prometheus i Grafana

  • Instal·lació i configuració de Prometheus per recollir metrics.
  • Integració de Grafana per visualitzar les dades recollides.

Recollida de Metrics

  • Implementació d'un endpoint de metrics en el servidor.
  • Configuració de Prometheus per recollir les metrics del servidor.

Creació de Dashboards

  • Creació de dashboards en Grafana per visualitzar l'ús de recursos i altres metrics importants.

Configuració d'Alertes

  • Definició de regles d'alerta en Prometheus.
  • Configuració de notificacions en Grafana per rebre alertes.

Retroalimentació Contínua

  • Anàlisi regular de les dades recollides.
  • Implementació de millores basades en l'anàlisi de dades i alertes.

Conclusió

En aquest exercici, has après a configurar un sistema de monitoratge i retroalimentació per a un pipeline de CI/CD. Aquest sistema t'ajudarà a identificar i resoldre problemes de rendiment, així com a millorar contínuament el teu pipeline. Amb aquestes habilitats, podràs assegurar-te que el teu pipeline de CI/CD sigui eficient, fiable i escalable.

© Copyright 2024. Tots els drets reservats