116 lines
3.1 KiB
YAML
116 lines
3.1 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# ------------------------------------------------------------------
|
|
# Core Services
|
|
# ------------------------------------------------------------------
|
|
|
|
postgres:
|
|
image: postgres:15
|
|
container_name: camel_ops_db
|
|
environment:
|
|
POSTGRES_USER: camel_user
|
|
POSTGRES_PASSWORD: camel_password
|
|
POSTGRES_DB: camel_ops_db
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- pg_data:/var/lib/postgresql/data
|
|
restart: unless-stopped
|
|
networks:
|
|
- appliance-network
|
|
|
|
# ------------------------------------------------------------------
|
|
# Appliance Hub: Persistence, Telemetry & Alerting
|
|
# ------------------------------------------------------------------
|
|
|
|
# Time Series Database
|
|
victoriametrics:
|
|
image: victoriametrics/victoria-metrics:v1.93.3
|
|
ports:
|
|
- "8428:8428"
|
|
command:
|
|
- "--retentionPeriod=1y" # From my original commit
|
|
- "--storageDataPath=/vmetrics-data"
|
|
- "--httpListenAddr=:8428"
|
|
volumes:
|
|
- vmetrics-data:/vmetrics-data
|
|
restart: unless-stopped
|
|
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
|
|
restart: unless-stopped
|
|
|
|
# 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
|
|
restart: unless-stopped
|
|
|
|
# Log Aggregation (VictoriaLogs instead of Loki)
|
|
victorialogs:
|
|
image: victoriametrics/victorialogs:v0.40.0 # Using a recent version, replace v2.9.1 Loki with VictoriaLogs
|
|
ports:
|
|
- "9428:9428" # Default VictoriaLogs port
|
|
command:
|
|
- "-storageDataPath=/victorialogs-data"
|
|
- "-httpListenAddr=:9428"
|
|
volumes:
|
|
- victorialogs-data:/victorialogs-data
|
|
networks:
|
|
- appliance-network
|
|
restart: unless-stopped
|
|
|
|
# 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
|
|
- victorialogs # Depend on victorialogs now
|
|
networks:
|
|
- appliance-network
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
pg_data:
|
|
vmetrics-data:
|
|
alertmanager-data:
|
|
victorialogs-data: # New volume for VictoriaLogs
|
|
|
|
networks:
|
|
appliance-network:
|
|
driver: bridge
|