Преминете към основното съдържание

Мониторинг — Преглед

Dictaro използва централизиран мониторинг стек на базата на Prometheus + Grafana + Loki, работещ на Azure VM (dictaro-vm). Достъпът е осигурен чрез Cloudflare Tunnels, а автентикацията — чрез Azure AD OAuth.

Архитектура

Компоненти на стека

КомпонентОписаниеПорт
PrometheusTime-series метрики, scraping9090
GrafanaВизуализация и dashboards3000
LokiLog aggregation3100
Promtail (local)Docker log collector → Loki9080
Promtail (remote)Docker log collector → Loki via tunnel9080
node-exporter (x2)Системни метрики (CPU, RAM, disk)9100
dcgm-exporterNVIDIA GPU метрики9400

Docker Compose услуги

Всички мониторинг услуги са дефинирани в licensing-go/docker-compose.yml:

Persistent volumes

VolumeКонтейнерОписание
prometheus-dataprometheusTime-series данни
grafana-datagrafanaDashboards, preferences, alerting state
loki-datalokiLog chunks и индекси

Мрежова свързаност

Ключово решение: Вместо VPN или SSH tunnels, Cloudflare Tunnels свързват GPU сървъра (on-premises) с Azure VM. Това позволява:

  • Prometheus да scrape-ва метрики от DGX Spark чрез HTTPS
  • Promtail на DGX Spark да push-ва логове към Loki
  • Grafana да е достъпна публично на monitoring.dictaro.ai

Автентикация

Grafana е конфигурирана с Azure AD OAuth за автентикация:

ПараметърСтойност
ProviderAzure AD
Tenant ID9348f3ce-96ad-48a8-87bd-7825eb7ea7e6
Auto logintrue
Scopesopenid email profile
Anonymous accessЗабранен

Deployment

Мониторинг стекът се деплойва ръчно (НЕ чрез CI/CD):

# На dictaro-vm
cd /opt/dictaro/licensing-go
docker compose up -d

Или чрез Azure CLI:

az vm run-command invoke \
--resource-group dictaro-rg \
--name dictaro-vm \
--command-id RunShellScript \
--scripts "cd /opt/dictaro/licensing-go && docker compose up -d"

Необходими environment variables

VariableОписание
GRAFANA_PASSWORDAdmin парола за Grafana (fallback: admin)
GRAFANA_ROOT_URLPublic URL на Grafana (default: http://localhost:3000/)
GRAFANA_AZUREAD_CLIENT_IDAzure AD App Registration client ID
GRAFANA_AZUREAD_CLIENT_SECRETAzure AD App Registration secret
CLOUDFLARE_TUNNEL_TOKEN_MONITORINGToken за monitoring tunnel
CLOUDFLARE_TUNNEL_TOKEN_LOKIToken за loki tunnel