infra: integrate Keycloak monitoring, update alertmanager config, and finalize docs cleanup
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 9m22s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 8m53s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 2m34s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 2m10s
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 9m22s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 8m53s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 2m34s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 2m10s
Added a Prometheus scrape job for Keycloak metrics. Updated Alertmanager to use Mailpit for local testing. Completed documentation consolidation and marked cleanup-related tasks as done in the master roadmap.
This commit is contained in:
parent
9dd6a0faf7
commit
78cda88ae6
|
|
@ -1,26 +1,19 @@
|
||||||
global:
|
global:
|
||||||
resolve_timeout: 5m
|
resolve_timeout: 5m
|
||||||
# FIX: Hier müssen echte Werte stehen, keine Variablen!
|
# Wir nutzen Mailpit für lokale Tests
|
||||||
# Wenn du noch keinen SMTP hast, trag Dummy-Werte ein, damit der Container startet.
|
smtp_smarthost: 'mailpit:1025'
|
||||||
smtp_smarthost: 'smtp.gmail.com:587'
|
smtp_from: 'alertmanager@meldestelle.local'
|
||||||
smtp_from: 'alertmanager@meldestelle.at'
|
smtp_require_tls: false
|
||||||
smtp_auth_username: 'deine-email@gmail.com'
|
|
||||||
smtp_auth_password: 'dein-passwort'
|
|
||||||
smtp_require_tls: true
|
|
||||||
|
|
||||||
route:
|
route:
|
||||||
|
group_by: ['alertname']
|
||||||
|
group_wait: 10s
|
||||||
|
group_interval: 10s
|
||||||
|
repeat_interval: 1h
|
||||||
receiver: 'email-notifications'
|
receiver: 'email-notifications'
|
||||||
# ... (Rest bleibt gleich)
|
|
||||||
|
|
||||||
receivers:
|
receivers:
|
||||||
- name: 'email-notifications'
|
- name: 'email-notifications'
|
||||||
email_configs:
|
email_configs:
|
||||||
- to: 'admin@meldestelle.at'
|
- to: 'admin@meldestelle.local'
|
||||||
send_resolved: true
|
send_resolved: true
|
||||||
|
|
||||||
- name: 'slack-critical'
|
|
||||||
slack_configs:
|
|
||||||
# FIX: Auch hier die echte Webhook URL eintragen oder den Block entfernen, wenn nicht genutzt
|
|
||||||
- api_url: 'https://hooks.slack.com/services/example'
|
|
||||||
channel: '#alerts-critical'
|
|
||||||
# ...
|
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,6 @@ alerting:
|
||||||
alertmanagers:
|
alertmanagers:
|
||||||
- static_configs:
|
- static_configs:
|
||||||
- targets:
|
- targets:
|
||||||
# Da wir Alertmanager noch nicht im Docker Compose haben (kommt noch!),
|
|
||||||
# lassen wir das vorerst auskommentiert oder fügen den Container hinzu.
|
|
||||||
- "alertmanager:9093"
|
- "alertmanager:9093"
|
||||||
|
|
||||||
rule_files:
|
rule_files:
|
||||||
|
|
@ -33,7 +31,13 @@ scrape_configs:
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: [ 'consul:8500' ]
|
- targets: [ 'consul:8500' ]
|
||||||
|
|
||||||
# 3. Spring Boot Services via Consul Discovery.
|
# 3. Keycloak Metrics (statisches Target)
|
||||||
|
- job_name: 'keycloak'
|
||||||
|
metrics_path: '/metrics'
|
||||||
|
static_configs:
|
||||||
|
- targets: [ 'keycloak:8080' ]
|
||||||
|
|
||||||
|
# 4. Spring Boot Services via Consul Discovery.
|
||||||
# Das ist die Magie: Prometheus fragt Consul nach allen Services.
|
# Das ist die Magie: Prometheus fragt Consul nach allen Services.
|
||||||
# Wenn ein Service das Tag 'metrics' oder 'spring-boot' hat (oder einfach alle), wird er scraped.
|
# Wenn ein Service das Tag 'metrics' oder 'spring-boot' hat (oder einfach alle), wird er scraped.
|
||||||
- job_name: 'consul-services'
|
- job_name: 'consul-services'
|
||||||
|
|
@ -62,7 +66,7 @@ scrape_configs:
|
||||||
separator: ':'
|
separator: ':'
|
||||||
target_label: instance
|
target_label: instance
|
||||||
|
|
||||||
# Job 4: Postgres Exporter (Statisch, da kein Consul-Client im Image)
|
# Job 5: Postgres Exporter (Statisch, da kein Consul-Client im Image)
|
||||||
- job_name: 'postgres-exporter'
|
- job_name: 'postgres-exporter'
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: [ 'postgres-exporter:9187' ]
|
- targets: [ 'postgres-exporter:9187' ]
|
||||||
|
|
|
||||||
|
|
@ -15,28 +15,29 @@ Vollständige Migration auf Self-Hosted Infrastruktur (Gitea, Pangolin, Zora) un
|
||||||
* **Networking:** ✅ Pangolin Tunnel ersetzt Cloudflare.
|
* **Networking:** ✅ Pangolin Tunnel ersetzt Cloudflare.
|
||||||
* **CI/CD:** ✅ Gitea Actions mit ARM64-Runner (VM 102) aktiv. Docker-Publish Pipeline grün.
|
* **CI/CD:** ✅ Gitea Actions mit ARM64-Runner (VM 102) aktiv. Docker-Publish Pipeline grün.
|
||||||
* **Code-Basis:** ✅ Backend (Java 25), Frontend (Kotlin/JS) bauen sauber auf ARM64.
|
* **Code-Basis:** ✅ Backend (Java 25), Frontend (Kotlin/JS) bauen sauber auf ARM64.
|
||||||
* **Dokumentation:** ⚠️ Fragmentiert und teilweise veraltet. Muss konsolidiert werden.
|
* **Dokumentation:** ✅ Konsolidiert und aufgeräumt.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. Arbeitsaufträge an die AGENTS (Phasenplan)
|
## 1. Arbeitsaufträge an die AGENTS (Phasenplan)
|
||||||
|
|
||||||
### PHASE 1: Documentation Cleanup (AKTUELL)
|
### PHASE 1: Documentation Cleanup (ABGESCHLOSSEN)
|
||||||
*Ziel: Eine einzige, vertrauenswürdige Quelle der Wahrheit (SSOT) schaffen.*
|
*Ziel: Eine einzige, vertrauenswürdige Quelle der Wahrheit (SSOT) schaffen.*
|
||||||
|
|
||||||
#### 🧹 Agent: Curator
|
#### 🧹 Agent: Curator
|
||||||
* [ ] **Archivierung:** Veraltete Docs (Cloudflare, GitHub-Workflows, alte Roadmaps) nach `docs/_archive/` verschieben.
|
* [x] **Archivierung:** Veraltete Docs (Cloudflare, GitHub-Workflows, alte Roadmaps) nach `docs/_archive/` verschoben.
|
||||||
* [ ] **Konsolidierung:** `Zora_System_Architektur.md` als zentrale Infrastruktur-Doku etablieren.
|
* [x] **Konsolidierung:** `Zora_System_Architektur.md` als zentrale Infrastruktur-Doku etablieren.
|
||||||
* [ ] **Struktur:** `docs/` Ordner aufräumen (unnötige Root-Files in Unterordner).
|
* [x] **Struktur:** `docs/` Ordner aufräumen (unnötige Root-Files in Unterordner).
|
||||||
* [ ] **Index:** `README.md` im Root als Einstiegspunkt aktualisieren.
|
* [x] **Index:** `README.md` im Root als Einstiegspunkt aktualisieren.
|
||||||
|
|
||||||
### PHASE 2: Infrastructure Hardening
|
### PHASE 2: Infrastructure Hardening (ABGESCHLOSSEN)
|
||||||
*Ziel: Stabilisierung der neuen Self-Hosted Umgebung.*
|
*Ziel: Stabilisierung der neuen Self-Hosted Umgebung.*
|
||||||
|
|
||||||
#### 🐧 Agent: DevOps Engineer
|
#### 🐧 Agent: DevOps Engineer
|
||||||
* [ ] **Keycloak Fix:** Verbindungsprobleme innerhalb des Docker-Netzwerks (`meldestelle-host`) beheben.
|
* [x] **Keycloak Fix:** Verbindungsprobleme innerhalb des Docker-Netzwerks (`meldestelle-host`) behoben (Alias `auth.mo-code.at`).
|
||||||
* [ ] **Backup Strategy:** Automatisierte Backups für Gitea & Datenbanken auf Zora einrichten.
|
* [x] **Backup Strategy:** Automatisierte Backups für Gitea & Datenbanken auf Zora eingerichtet (`config/scripts/backup.sh`).
|
||||||
* [ ] **Monitoring:** Prometheus/Grafana Dashboard für Zora (System Stats, Docker Container) finalisieren.
|
* [x] **Monitoring:** Prometheus/Grafana Dashboard für Zora (System Stats, Docker Container) finalisiert (`dc-ops.yaml`).
|
||||||
|
* [x] **Deployment:** Git-basiertes Deployment-Skript (`config/scripts/deploy.sh`) erstellt.
|
||||||
|
|
||||||
### PHASE 3: Feature Development (ON HOLD)
|
### PHASE 3: Feature Development (ON HOLD)
|
||||||
*Ziel: Neuausrichtung der Fachlichkeit.*
|
*Ziel: Neuausrichtung der Fachlichkeit.*
|
||||||
|
|
@ -48,15 +49,19 @@ Vollständige Migration auf Self-Hosted Infrastruktur (Gitea, Pangolin, Zora) un
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 2. Definition of Done (für Phase 1)
|
## 2. Definition of Done (für Phase 1 & 2)
|
||||||
1. [ ] `docs/` Root enthält nur noch essentielle Einstiegspunkte (`README.md`, `MASTER_ROADMAP.md`).
|
1. [x] `docs/` Root enthält nur noch essentielle Einstiegspunkte (`README.md`, `MASTER_ROADMAP.md`).
|
||||||
2. [ ] Alle veralteten Dokumente sind im `_archive` oder gelöscht.
|
2. [x] Alle veralteten Dokumente sind im `_archive` oder gelöscht.
|
||||||
3. [ ] Die `Zora_System_Architektur.md` ist korrekt in `docs/07_Infrastructure/` eingeordnet.
|
3. [x] Die `Zora_System_Architektur.md` ist korrekt in `docs/07_Infrastructure/` eingeordnet.
|
||||||
4. [ ] Ein neuer Entwickler findet sich sofort zurecht.
|
4. [x] Ein neuer Entwickler findet sich sofort zurecht.
|
||||||
|
5. [x] Keycloak ist intern erreichbar.
|
||||||
|
6. [x] Backups laufen automatisch.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3. Wichtige Referenzen
|
## 3. Wichtige Referenzen
|
||||||
* **Infrastruktur:** `docs/07_Infrastructure/Zora_System_Architektur.md` (WIP)
|
* **Infrastruktur:** `docs/07_Infrastructure/Zora_System_Architektur.md`
|
||||||
|
* **Deployment Guide:** `docs/07_Infrastructure/Guides/Setup_Git_Deployment_Zora.md`
|
||||||
|
* **Backup Guide:** `docs/07_Infrastructure/Guides/Setup_Backup_Zora.md`
|
||||||
* **CI/CD:** `.gitea/workflows/docker-publish.yaml`
|
* **CI/CD:** `.gitea/workflows/docker-publish.yaml`
|
||||||
* **Projekt-Protokoll:** `docs/04_Agents/Playbooks/`
|
* **Projekt-Protokoll:** `docs/04_Agents/Playbooks/`
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user