Introducció
El monitoratge i el logging són components essencials en qualsevol arquitectura de microserveis. Aquests processos permeten als desenvolupadors i administradors de sistemes comprendre el comportament de les aplicacions, detectar i solucionar problemes, i assegurar-se que els serveis funcionen de manera òptima.
Objectius d'Aprenentatge
Al final d'aquest tema, hauràs de ser capaç de:
- Comprendre la importància del monitoratge i el logging en microserveis.
- Identificar les eines i tecnologies més comunes per al monitoratge i el logging.
- Implementar solucions bàsiques de monitoratge i logging en una aplicació de microserveis.
Conceptes Clau
Importància del Monitoratge i Logging
- Visibilitat: Proporciona una visió clara del comportament dels serveis.
- Detecció de Problemes: Ajuda a identificar i solucionar problemes ràpidament.
- Rendiment: Permet optimitzar el rendiment dels serveis.
- Seguretat: Ajuda a detectar activitats sospitoses i possibles vulnerabilitats.
Eines i Tecnologies Comunes
Monitoratge
- Prometheus: Sistema de monitoratge i alerta de codi obert dissenyat per a la fiabilitat i la facilitat d'ús.
- Grafana: Plataforma de codi obert per a la visualització de mètriques i analítiques.
- ELK Stack (Elasticsearch, Logstash, Kibana): Solució completa per a la recollida, anàlisi i visualització de dades de registre.
Logging
- Logstash: Eina de recollida i processament de registres.
- Fluentd: Eina de registre de dades de codi obert que unifica la recollida i el consum de dades.
- Graylog: Plataforma de gestió de registres que permet la recerca, anàlisi i visualització de dades de registre.
Implementació de Monitoratge i Logging
Configuració de Prometheus i Grafana
-
Instal·lació de Prometheus:
# Descarregar Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz tar xvfz prometheus-*.tar.gz cd prometheus-* # Executar Prometheus ./prometheus --config.file=prometheus.yml
-
Instal·lació de Grafana:
# Descarregar Grafana wget https://dl.grafana.com/oss/release/grafana-7.5.2.linux-amd64.tar.gz tar -zxvf grafana-7.5.2.linux-amd64.tar.gz cd grafana-7.5.2 # Executar Grafana ./bin/grafana-server web
-
Configuració de Prometheus com a font de dades en Grafana:
- Obre Grafana a
http://localhost:3000
i inicia sessió. - Ves a
Configuration
->Data Sources
->Add data source
. - Selecciona
Prometheus
i configura la URL (http://localhost:9090
).
- Obre Grafana a
Configuració de ELK Stack
-
Instal·lació d'Elasticsearch:
# Descarregar i instal·lar Elasticsearch wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz tar -xzf elasticsearch-7.12.0-linux-x86_64.tar.gz cd elasticsearch-7.12.0 # Executar Elasticsearch ./bin/elasticsearch
-
Instal·lació de Logstash:
# Descarregar i instal·lar Logstash wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.0-linux-x86_64.tar.gz tar -xzf logstash-7.12.0-linux-x86_64.tar.gz cd logstash-7.12.0 # Configurar Logstash echo 'input { stdin { } } output { elasticsearch { hosts => ["localhost:9200"] } }' > logstash-simple.conf # Executar Logstash ./bin/logstash -f logstash-simple.conf
-
Instal·lació de Kibana:
# Descarregar i instal·lar Kibana wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz tar -xzf kibana-7.12.0-linux-x86_64.tar.gz cd kibana-7.12.0 # Executar Kibana ./bin/kibana
-
Accedir a Kibana:
- Obre Kibana a
http://localhost:5601
i configura Elasticsearch com a font de dades.
- Obre Kibana a
Exercicis Pràctics
Exercici 1: Configuració de Prometheus i Grafana
- Instal·la Prometheus i Grafana seguint les instruccions anteriors.
- Configura un dashboard bàsic en Grafana per visualitzar les mètriques de Prometheus.
Exercici 2: Configuració de ELK Stack
- Instal·la Elasticsearch, Logstash i Kibana seguint les instruccions anteriors.
- Configura un pipeline bàsic en Logstash per enviar dades a Elasticsearch.
- Crea un dashboard en Kibana per visualitzar les dades de registre.
Solucions dels Exercicis
Solució Exercici 1
- Segueix les instruccions d'instal·lació de Prometheus i Grafana.
- Per configurar un dashboard bàsic en Grafana:
- Afegeix Prometheus com a font de dades.
- Crea un nou dashboard i afegeix un panell amb una consulta PromQL, per exemple,
up
.
Solució Exercici 2
- Segueix les instruccions d'instal·lació d'Elasticsearch, Logstash i Kibana.
- Configura un pipeline bàsic en Logstash:
echo 'input { stdin { } } output { elasticsearch { hosts => ["localhost:9200"] } }' > logstash-simple.conf ./bin/logstash -f logstash-simple.conf
- Per crear un dashboard en Kibana:
- Accedeix a Kibana i configura Elasticsearch com a font de dades.
- Crea un nou dashboard i afegeix visualitzacions basades en les dades de registre.
Errors Comuns i Consells
- Error: Prometheus no recull dades: Assegura't que Prometheus està configurat correctament i que els serveis estan exposant les mètriques.
- Error: Grafana no mostra dades: Verifica que la configuració de la font de dades en Grafana és correcta i que Prometheus està funcionant.
- Error: Logstash no envia dades a Elasticsearch: Revisa la configuració del pipeline de Logstash i assegura't que Elasticsearch està funcionant.
Conclusió
El monitoratge i el logging són components crítics en una arquitectura de microserveis. Utilitzant eines com Prometheus, Grafana, i ELK Stack, pots obtenir una visibilitat completa sobre el comportament dels teus serveis, detectar problemes ràpidament i assegurar-te que els teus serveis funcionen de manera òptima. Amb la pràctica i l'experiència, podràs configurar solucions de monitoratge i logging més avançades per satisfer les necessitats específiques de les teves aplicacions.
Curs de Microserveis
Mòdul 1: Introducció als Microserveis
- Conceptes Bàsics de Microserveis
- Avantatges i Desavantatges dels Microserveis
- Comparació amb Arquitectura Monolítica
Mòdul 2: Disseny de Microserveis
- Principis de Disseny de Microserveis
- Descomposició d'Aplicacions Monolítiques
- Definició de Bounded Contexts