En aquest tema, aprendrem a configurar un sistema de registre centralitzat utilitzant Elasticsearch, Fluentd i Kibana (EFK) en un clúster de Kubernetes. Aquest sistema ens permetrà recopilar, emmagatzemar i visualitzar els logs de les nostres aplicacions i serveis de manera eficient.

Objectius

  • Entendre la importància del registre centralitzat.
  • Configurar Elasticsearch per emmagatzemar logs.
  • Configurar Fluentd per recopilar i enviar logs a Elasticsearch.
  • Configurar Kibana per visualitzar els logs emmagatzemats a Elasticsearch.

  1. Introducció al Sistema EFK

Què és EFK?

EFK és un conjunt d'eines que treballen conjuntament per proporcionar una solució completa de registre:

  • Elasticsearch: Un motor de cerca i anàlisi distribuït que emmagatzema els logs.
  • Fluentd: Un agregador de logs que recopila, processa i envia els logs a Elasticsearch.
  • Kibana: Una interfície gràfica que permet visualitzar i analitzar els logs emmagatzemats a Elasticsearch.

Per què utilitzar EFK?

  • Centralització: Tots els logs es recopilen en un únic lloc, facilitant la seva gestió i anàlisi.
  • Escalabilitat: Elasticsearch pot gestionar grans volums de dades de manera eficient.
  • Visualització: Kibana proporciona eines potents per visualitzar i analitzar els logs.

  1. Configuració d'Elasticsearch

Desplegament d'Elasticsearch

Per desplegar Elasticsearch en un clúster de Kubernetes, podem utilitzar un Helm chart. Helm és un gestor de paquets per Kubernetes que facilita la instal·lació i gestió d'aplicacions.

# Afegeix el repositori de Helm per Elasticsearch
helm repo add elastic https://helm.elastic.co

# Actualitza els repositoris de Helm
helm repo update

# Instal·la Elasticsearch
helm install elasticsearch elastic/elasticsearch

Configuració de Recursos

Podem ajustar la configuració de recursos per Elasticsearch editant els valors del Helm chart:

# fitxer values.yaml
resources:
  requests:
    cpu: "1"
    memory: "2Gi"
  limits:
    cpu: "2"
    memory: "4Gi"

Després, instal·lem Elasticsearch amb els valors personalitzats:

helm install elasticsearch -f values.yaml elastic/elasticsearch

  1. Configuració de Fluentd

Desplegament de Fluentd

Fluentd es pot desplegar utilitzant un Helm chart similar a Elasticsearch.

# Afegeix el repositori de Helm per Fluentd
helm repo add fluent https://fluent.github.io/helm-charts

# Actualitza els repositoris de Helm
helm repo update

# Instal·la Fluentd
helm install fluentd fluent/fluentd

Configuració de Fluentd

Podem configurar Fluentd per enviar logs a Elasticsearch editant el fitxer de configuració:

# fitxer values.yaml
fluentd:
  config:
    outputs:
      - type: elasticsearch
        host: "elasticsearch.default.svc.cluster.local"
        port: 9200

Després, instal·lem Fluentd amb els valors personalitzats:

helm install fluentd -f values.yaml fluent/fluentd

  1. Configuració de Kibana

Desplegament de Kibana

Kibana també es pot desplegar utilitzant un Helm chart.

# Afegeix el repositori de Helm per Kibana
helm repo add elastic https://helm.elastic.co

# Actualitza els repositoris de Helm
helm repo update

# Instal·la Kibana
helm install kibana elastic/kibana

Accés a Kibana

Podem exposar Kibana utilitzant un servei de tipus LoadBalancer o Ingress. Aquí teniu un exemple de configuració d'un servei LoadBalancer:

# fitxer values.yaml
service:
  type: LoadBalancer

Després, instal·lem Kibana amb els valors personalitzats:

helm install kibana -f values.yaml elastic/kibana

  1. Exercici Pràctic

Objectiu

Configurar un sistema EFK complet en un clúster de Kubernetes i verificar que els logs de les aplicacions es recopilen i es poden visualitzar a Kibana.

Passos

  1. Desplega Elasticsearch, Fluentd i Kibana utilitzant els Helm charts proporcionats.
  2. Configura Fluentd per enviar logs a Elasticsearch.
  3. Exposa Kibana i accedeix a la interfície gràfica.
  4. Verifica que els logs de les aplicacions es mostren correctament a Kibana.

Solució

  1. Desplega Elasticsearch:

    helm install elasticsearch elastic/elasticsearch
    
  2. Desplega Fluentd amb la configuració per enviar logs a Elasticsearch:

    # fitxer values.yaml
    fluentd:
      config:
        outputs:
          - type: elasticsearch
            host: "elasticsearch.default.svc.cluster.local"
            port: 9200
    
    helm install fluentd -f values.yaml fluent/fluentd
    
  3. Desplega Kibana i exposa'l:

    # fitxer values.yaml
    service:
      type: LoadBalancer
    
    helm install kibana -f values.yaml elastic/kibana
    
  4. Accedeix a Kibana a través de l'adreça IP del LoadBalancer i verifica els logs.

Conclusió

En aquest tema, hem après a configurar un sistema de registre centralitzat utilitzant Elasticsearch, Fluentd i Kibana (EFK) en un clúster de Kubernetes. Aquest sistema ens permet recopilar, emmagatzemar i visualitzar els logs de les nostres aplicacions de manera eficient, facilitant la gestió i anàlisi dels logs. Hem vist com desplegar cadascuna de les eines utilitzant Helm i com configurar-les per treballar conjuntament.

Curs de Kubernetes

Mòdul 1: Introducció a Kubernetes

Mòdul 2: Components Bàsics de Kubernetes

Mòdul 3: Gestió de Configuració i Secrets

Mòdul 4: Xarxes en Kubernetes

Mòdul 5: Emmagatzematge en Kubernetes

Mòdul 6: Conceptes Avançats de Kubernetes

Mòdul 7: Monitorització i Registre

Mòdul 8: Seguretat en Kubernetes

Mòdul 9: Escalabilitat i Rendiment

Mòdul 10: Ecosistema i Eines de Kubernetes

Mòdul 11: Estudis de Cas i Aplicacions del Món Real

Mòdul 12: Preparació per a la Certificació de Kubernetes

© Copyright 2024. Tots els drets reservats