Files
camel-ops-platform/infra/docker-compose.yml

85 lines
2.1 KiB
YAML

version: '3.8'
services:
# ------------------------------------------------------------------
# Appliance Hub: Persistence, Telemetry & Alerting
# ------------------------------------------------------------------
# Time Series Database
victoriametrics:
image: victoriametrics/victoria-metrics:v1.93.3
ports:
- "8428:8428"
command:
- "--storageDataPath=/vmetrics-data"
- "--httpListenAddr=:8428"
volumes:
- vmetrics-data:/vmetrics-data
networks:
- appliance-network
# Alert Evaluation Engine
vmalert:
image: victoriametrics/vmalert:v1.93.3
ports:
- "8880:8880"
command:
- "-rule=/etc/alerts/alerts.yml"
- "-datasource.url=http://victoriametrics:8428"
- "-notifier.url=http://alertmanager:9093"
- "-remoteWrite.url=http://victoriametrics:8428"
- "-remoteRead.url=http://victoriametrics:8428"
volumes:
- ./alerts:/etc/alerts
depends_on:
- victoriametrics
- alertmanager
networks:
- appliance-network
# Alert Routing, Grouping, Deduplication
alertmanager:
image: prom/alertmanager:v0.26.0
ports:
- "9093:9093"
command:
- "--config.file=/etc/alertmanager/config.yml"
- "--storage.path=/alertmanager"
volumes:
- ./alertmanager-config.yml:/etc/alertmanager/config.yml
- alertmanager-data:/alertmanager
networks:
- appliance-network
# Log Aggregation
loki:
image: grafana/loki:2.9.1
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
networks:
- appliance-network
# OpenTelemetry Collector (receives from Worker nodes)
otel-collector:
image: otel/opentelemetry-collector-contrib:0.87.0
ports:
- "4317:4317" # OTLP gRPC
- "4318:4318" # OTLP HTTP
command: ["--config=/etc/otelcol/config.yaml"]
volumes:
- ./otel-config.yaml:/etc/otelcol/config.yaml
depends_on:
- victoriametrics
- loki
networks:
- appliance-network
volumes:
vmetrics-data:
alertmanager-data:
networks:
appliance-network:
driver: bridge