Skip to main content

Monitorització

monitoring és la màquina d'observabilitat: Prometheus per a les mètriques, Loki per als logs, Tempo per a les traces, Grafana per explorar-ho tot, Traefik publicant-ho per HTTPS i cAdvisor informant dels mateixos contenidors.

Una VM, sis contenidors, cadascun en el seu propi projecte de Docker Compose.

Que cada servei sigui un projecte separat no és casualitat: amb un de sol, una imatge que no es pot descarregar fa caure els sis contenidors. Així, un tag erroni només afecta el seu servei.

Desplegament​

La plantilla Monitoring es desplega en tres fases:

FaseQuè fa
1Crea la VM amb el seu disc de dades
2Instal·la Docker, crea la xarxa ingress i prepara el que comparteixen els serveis
3Desplega els sis serveis en paral·lel, un treball per servei

Si alguna cosa falla, el treball fallit indica exactament quin servei ha estat.

RecursRecomanatMínim
vCPU42
Memòria8 GiB4 GiB
Disc arrel32 GiB32 GiB
Disc de dades50 GiB32 GiB

La retenció és de 15 dies per a les tres senyals. Són dades de vida curta i reproduïbles, així que no tenen còpia de seguretat.

info

Loki triga uns tres minuts a estar llest. El seu check de Nagios fa servir una plantilla lenta perquè un reinici no generi alertes.

Noms i certificats​

Cada servei respon en un nom escollit entre els àlies del registre DNS de la màquina a Horizon, així que cal crear-los abans de desplegar:

NomServeiAccés
grafana.<domini>GrafanaLogin propi de Grafana (i Keycloak)
prometheus.<domini>PrometheusAutenticació bàsica
loki.<domini>LokiAutenticació bàsica
tempo.<domini>Tempo (OTLP per HTTP)Autenticació bàsica

Traefik obté un únic certificat de Let's Encrypt per a tots mitjançant el repte DNS-01, així que els noms només cal que resolguin dins de la xarxa, però el domini ha d'existir públicament.

Les credencials d'ingesta són les sortides ingest_username i ingest_password del treball traefik. Són les que fa servir FluxCD per enviar la telemetria del clúster. Si ingest_password es deixa buit al primer desplegament, es genera.

Recollida de dades​

  • VMs: Prometheus recull el Node Exporter (9100) de cada VM. Els targets dels stacks els escriu Horizon des de la seva pàgina de Prometheus.
  • Kubernetes: el clúster envia mètriques, logs i traces als tres endpoints. La màquina de monitorització no necessita accés al clúster ni cap credencial seva, i continua funcionant quan es reconstrueix el clúster.
  • Autocontrol: Prometheus recull els seus propis serveis i avisa si algun deixa de respondre.

Canvis​

No hi ha accions: tot ajust és una variable del seu treball, i editar-la torna a executar únicament aquell treball.

PerEditar
Actualitzar un serveiimage_version al seu treball
Canviar una retenciósettings a Prometheus, Loki o Tempo
Afegir un dashboard o una alerta de baseEls fitxers de services/grafana/ i tornar a desplegar el treball grafana
Rotar la credencial d'ingestaingest_password al treball traefik

Les versions són exactes (mai latest), de manera que actualitzar és un canvi deliberat i tornar enrere és posar el tag anterior.

La contrasenya d'administrador de Grafana, l'inici de sessió amb Keycloak i el correu no són d'aquest stack: els gestiona Horizon des d'Admin › Grafana. Si l'SSO falla i ningú no hi pot entrar, la contrasenya es pot restablir a la màquina:

printf '%s' "$password" | sudo docker exec -i grafana \
grafana-cli --homepath /usr/share/grafana admin reset-admin-password --password-from-stdin

Documentació​