Files
loki3-vector/docker-compose.yaml
2026-04-06 21:36:15 +07:00

160 lines
3.8 KiB
YAML

services:
# --- MinIO ---
minio:
container_name: loki-minio
image: minio/minio:latest
entrypoint:
- sh
- -euc
- |
mkdir -p /data/loki-chunks && \
minio server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: loki
MINIO_ROOT_PASSWORD: supersecret
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio-data:/data
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 5s
timeout: 5s
retries: 10
networks:
loki-net:
ipv4_address: 192.168.97.10
# --- Loki Write ---
loki-write:
container_name: loki-write
image: grafana/loki:3.4.2
hostname: loki-write
command: -config.file=/etc/loki/loki-config.yaml -config.expand-env=true -target=write
volumes:
- ./loki-config.yaml:/etc/loki/loki-config.yaml:ro
- loki-write-data:/loki
depends_on:
minio:
condition: service_healthy
networks:
loki-net:
ipv4_address: 192.168.97.11
# --- Loki Read ---
loki-read:
container_name: loki-read
image: grafana/loki:3.4.2
hostname: loki-read
command: -config.file=/etc/loki/loki-config.yaml -config.expand-env=true -target=read
volumes:
- ./loki-config.yaml:/etc/loki/loki-config.yaml:ro
- loki-read-data:/loki
depends_on:
minio:
condition: service_healthy
networks:
loki-net:
ipv4_address: 192.168.97.12
# --- Loki Backend ---
loki-backend:
container_name: loki-backend
image: grafana/loki:3.4.2
hostname: loki-backend
command: -config.file=/etc/loki/loki-config.yaml -config.expand-env=true -target=backend
volumes:
- ./loki-config.yaml:/etc/loki/loki-config.yaml:ro
- loki-backend-data:/loki
depends_on:
minio:
condition: service_healthy
networks:
loki-net:
ipv4_address: 192.168.97.13
# --- Gateway (nginx) ---
gateway:
container_name: loki-gateway
image: nginx:1.27-alpine
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
ports:
- "3100:3100"
- "3000:3000"
depends_on:
- loki-write
- loki-read
- loki-backend
- grafana
healthcheck:
test: ["CMD-SHELL", "wget --quiet --tries=1 --output-document=- http://192.168.97.14:3100/ready | grep -q 'ready'"]
interval: 10s
timeout: 5s
retries: 15
networks:
loki-net:
ipv4_address: 192.168.97.14
# --- Vector ---
vector:
container_name: loki-vector
image: timberio/vector:0.44.0-alpine
volumes:
- ./vector.yaml:/etc/vector/vector.yaml:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
gateway:
condition: service_healthy
networks:
loki-net:
ipv4_address: 192.168.97.15
# --- Grafana ---
grafana:
container_name: loki-grafana
image: grafana/grafana:12.4
environment:
GF_SECURITY_ADMIN_USER: admin
GF_SECURITY_ADMIN_PASSWORD: admin
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_ROLE: Admin
volumes:
- ./provisioning:/etc/grafana/provisioning:ro
- grafana-data:/var/lib/grafana
depends_on:
loki-read:
condition: service_started
networks:
loki-net:
ipv4_address: 192.168.97.16
# --- Log Generator ---
log-generator:
container_name: loki-log-generator
image: mingrammer/flog:0.4.3
command: -f json -d 2s -l
labels:
vector.collect: "true"
depends_on:
- vector
networks:
loki-net:
ipv4_address: 192.168.97.17
networks:
loki-net:
driver: bridge
ipam:
config:
- subnet: 192.168.97.0/24
gateway: 192.168.97.1
volumes:
minio-data:
loki-write-data:
loki-read-data:
loki-backend-data:
grafana-data: