Initial commit: Project setup and switch to VictoriaLogs for observability, with updated tech stack requirements.
This commit is contained in:
84
infra/docker-compose.yml
Normal file
84
infra/docker-compose.yml
Normal file
@@ -0,0 +1,84 @@
|
||||
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
|
||||
Reference in New Issue
Block a user