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.
- 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.
- 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:
Després, instal·lem Elasticsearch amb els valors personalitzats:
- 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:
- 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:
Després, instal·lem Kibana amb els valors personalitzats:
- 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
- Desplega Elasticsearch, Fluentd i Kibana utilitzant els Helm charts proporcionats.
- Configura Fluentd per enviar logs a Elasticsearch.
- Exposa Kibana i accedeix a la interfície gràfica.
- Verifica que els logs de les aplicacions es mostren correctament a Kibana.
Solució
-
Desplega Elasticsearch:
helm install elasticsearch elastic/elasticsearch
-
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
-
Desplega Kibana i exposa'l:
# fitxer values.yaml service: type: LoadBalancer
helm install kibana -f values.yaml elastic/kibana
-
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
- Què és Kubernetes?
- Arquitectura de Kubernetes
- Conceptes i Terminologia Clau
- Configuració d'un Clúster de Kubernetes
- CLI de Kubernetes (kubectl)
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
- Monitorització amb Prometheus
- Registre amb Elasticsearch, Fluentd i Kibana (EFK)
- Controls de Salut i Probes
- Servidor de Mètriques
Mòdul 8: Seguretat en Kubernetes
- Control d'Accés Basat en Rols (RBAC)
- Polítiques de Seguretat de Pods
- Seguretat de Xarxa
- Seguretat d'Imatges
Mòdul 9: Escalabilitat i Rendiment
- Autoscalat Horitzontal de Pods
- Autoscalat Vertical de Pods
- Autoscalat de Clúster
- Optimització del Rendiment
Mòdul 10: Ecosistema i Eines de Kubernetes
Mòdul 11: Estudis de Cas i Aplicacions del Món Real
- Desplegament d'una Aplicació Web
- CI/CD amb Kubernetes
- Execució d'Aplicacions Stateful
- Gestió Multi-Clúster