Monitorování
Metriky Prometheus, upozornění a dashboardy
Verze dokumentu: 1.0.0
Poslední aktualizace: 2026-02-10
1. Endpointy metrik
| Komponenta |
Endpoint |
Formát |
| API Server |
/metrics (port 8080) |
Prometheus |
| OCSP Responder |
/metrics (port 8081) |
Prometheus |
2. Klíčové metriky
Metriky API Serveru
| Metrika |
Typ |
Popis |
http_requests_total |
Counter |
Celkový počet HTTP požadavků (štítky: method, path, status) |
http_request_duration_seconds |
Histogram |
Doba trvání požadavku (štítky: method, path) |
http_requests_in_flight |
Gauge |
Aktuálně zpracovávané požadavky |
mazevault_secrets_total |
Gauge |
Celkový počet tajemství |
mazevault_certificates_total |
Gauge |
Celkový počet certifikátů |
mazevault_certificates_expiring |
Gauge |
Certifikáty s expirací do 30 dnů |
mazevault_agents_online |
Gauge |
Aktuálně online agenti |
mazevault_sync_operations_total |
Counter |
Synchronizační operace (štítky: status) |
mazevault_rotation_operations_total |
Counter |
Rotační operace (štítky: status) |
mazevault_auth_attempts_total |
Counter |
Pokusy o autentizaci (štítky: method, result) |
mazevault_license_days_remaining |
Gauge |
Dny do vypršení licence |
Metriky OCSP Responderu
| Metrika |
Typ |
Popis |
ocsp_requests_total |
Counter |
Celkový počet OCSP požadavků (štítky: status) |
ocsp_request_duration_seconds |
Histogram |
Doba odezvy OCSP |
ocsp_cache_hits_total |
Counter |
Zásahy cache odpovědí |
ocsp_cache_misses_total |
Counter |
Minutí cache odpovědí |
Metriky databáze
| Metrika |
Typ |
Popis |
db_connections_active |
Gauge |
Aktivní připojení k databázi |
db_connections_idle |
Gauge |
Nečinná připojení k databázi |
db_query_duration_seconds |
Histogram |
Latence databázových dotazů |
3. Prahy upozornění
Doporučená pravidla upozornění
| Upozornění |
Podmínka |
Závažnost |
Akce |
| API Server nedostupný |
up{job="mazevault-backend"} == 0 po dobu 5 min |
Kritická |
Okamžité prošetření |
| Vysoká chybovost |
rate(http_requests_total{status=~"5.."}[5m]) > 0.1 po dobu 10 min |
Varování |
Prošetřit chybové logy |
| Vysoká latence API |
http_request_duration_seconds{quantile="0.95"} > 2 po dobu 5 min |
Varování |
Zkontrolovat DB a Redis |
| Kritická latence API |
http_request_duration_seconds{quantile="0.95"} > 5 po dobu 5 min |
Kritická |
Okamžité prošetření |
| Certifikát brzy vyprší |
mazevault_certificates_expiring > 0 |
Varování |
Obnovit certifikáty |
| Licence brzy vyprší (60 dní) |
mazevault_license_days_remaining < 60 |
Varování |
Kontaktujte MazeVault pro obnovení |
| Licence brzy vyprší (14 dní) |
mazevault_license_days_remaining < 14 |
Kritická |
Nutné urgentní obnovení |
| OCSP nedostupný |
up{job="mazevault-ocsp"} == 0 po dobu 5 min |
Kritická |
Restartovat OCSP responder |
| Vysoký počet DB připojení |
db_connections_active > 80 |
Varování |
Zkontrolovat nastavení connection poolu |
| Vysoké využití disku |
node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.2 |
Varování |
Vyčistit nebo rozšířit úložiště |
| Kritické využití disku |
node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.05 |
Kritická |
Okamžité rozšíření úložiště |
Pravidla upozornění Prometheus
groups:
- name: mazevault
rules:
- alert: MazeVaultBackendDown
expr: up{job="mazevault-backend"} == 0
for: 5m
labels:
severity: critical
annotations:
summary: "MazeVault API Server is down"
description: "API Server has been unreachable for 5 minutes"
- alert: MazeVaultHighErrorRate
expr: |
rate(http_requests_total{job="mazevault-backend", status=~"5.."}[5m])
/ rate(http_requests_total{job="mazevault-backend"}[5m]) > 0.05
for: 10m
labels:
severity: warning
annotations:
summary: "High error rate on MazeVault API"
description: "Error rate exceeds 5% for 10 minutes"
- alert: MazeVaultLicenseExpiring
expr: mazevault_license_days_remaining < 60
labels:
severity: warning
annotations:
summary: "MazeVault license expiring soon"
description: "License expires in {{ $value }} days"
- alert: MazeVaultCertificateExpiring
expr: mazevault_certificates_expiring > 0
labels:
severity: warning
annotations:
summary: "Certificates expiring within 30 days"
description: "{{ $value }} certificates are expiring soon"
4. Grafana Dashboard
Doporučené panely
| Panel |
Vizualizace |
Dotaz |
| Rychlost API požadavků |
Časová řada |
rate(http_requests_total[5m]) |
| Chybovost API |
Časová řada |
rate(http_requests_total{status=~"5.."}[5m]) |
| Latence API (p95) |
Časová řada |
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m])) |
| Aktivní tajemství |
Statistika |
mazevault_secrets_total |
| Aktivní certifikáty |
Statistika |
mazevault_certificates_total |
| Certifikáty s blížící se expirací |
Statistika (červená) |
mazevault_certificates_expiring |
| Online agenti |
Statistika |
mazevault_agents_online |
| Zbývající dny licence |
Gauge |
mazevault_license_days_remaining |
| Rychlost OCSP požadavků |
Časová řada |
rate(ocsp_requests_total[5m]) |
| Poměr zásahů OCSP cache |
Gauge |
rate(ocsp_cache_hits_total[5m]) / (rate(ocsp_cache_hits_total[5m]) + rate(ocsp_cache_misses_total[5m])) |
| DB připojení |
Časová řada |
db_connections_active |
| Neúspěšné autentizace |
Časová řada |
rate(mazevault_auth_attempts_total{result="failure"}[5m]) |
5. Agregace logů
Strukturované logování
Všechny komponenty MazeVault produkují strukturované JSON logy:
{
"time": "2026-02-10T14:30:00.000Z",
"level": "info",
"msg": "Request completed",
"method": "GET",
"path": "/api/v1/secrets",
"status": 200,
"duration_ms": 12,
"request_id": "req_abc123",
"user_id": "usr_def456"
}
Úrovně logování
| Úroveň |
Popis |
Kdy použít |
error |
Operace selhala |
Okamžité prošetření |
warn |
Neočekávané, ale obnovitelné |
Sledovat trendy |
info |
Běžný provoz |
Audit a ladění |
debug |
Podrobná diagnostika |
Vývoj / dočasné řešení problémů |
Doporučený sběr logů
| Platforma |
Doporučený nástroj |
| Kubernetes |
Fluentd / Fluent Bit → Elasticsearch / Loki |
| On-Premise |
Filebeat → Elasticsearch / Splunk |
| Azure |
Azure Monitor / Log Analytics |
Související