init
This commit is contained in:
159
docker-compose.yaml
Normal file
159
docker-compose.yaml
Normal file
@@ -0,0 +1,159 @@
|
||||
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:
|
||||
Reference in New Issue
Block a user