mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-11 22:14:02 +01:00
133 lines
4.2 KiB
YAML
133 lines
4.2 KiB
YAML
---
|
|
version: "3"
|
|
|
|
volumes:
|
|
akvorado-zookeeper:
|
|
akvorado-kafka:
|
|
akvorado-geoip:
|
|
akvorado-clickhouse:
|
|
akvorado-run:
|
|
akvorado-console-db:
|
|
|
|
services:
|
|
geoip:
|
|
# Put ACCOUNT_ID and LICENSE_KEY here, or provide them on the command-line
|
|
# (env GEOIPUPDATE_ACCOUNT_ID=... GEOIPUPDATE_LICENSE_KEY=... docker-compose ...)
|
|
image: maxmindinc/geoipupdate:v4
|
|
environment:
|
|
- GEOIPUPDATE_ACCOUNT_ID
|
|
- GEOIPUPDATE_LICENSE_KEY
|
|
- GEOIPUPDATE_EDITION_IDS=GeoLite2-ASN GeoLite2-Country
|
|
- GEOIPUPDATE_FREQUENCY=48
|
|
volumes:
|
|
- akvorado-geoip:/usr/share/GeoIP
|
|
|
|
zookeeper:
|
|
image: bitnami/zookeeper:3.6
|
|
environment:
|
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
restart: unless-stopped
|
|
volumes:
|
|
- akvorado-zookeeper:/bitnami/zookeeper
|
|
kafka:
|
|
image: bitnami/kafka:2.8.1
|
|
environment:
|
|
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
|
|
- ALLOW_PLAINTEXT_LISTENER=yes
|
|
- KAFKA_DELETE_TOPIC_ENABLE=true
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- zookeeper
|
|
volumes:
|
|
- akvorado-kafka:/bitnami/kafka
|
|
healthcheck:
|
|
interval: 20s
|
|
timeout: 10s
|
|
retries: 3
|
|
test: ["CMD", "kafka-topics.sh", "--list", "--zookeeper", "zookeeper:2181"]
|
|
|
|
akvorado-orchestrator:
|
|
build: &akvorado-image
|
|
context: .
|
|
restart: unless-stopped
|
|
command: orchestrator /etc/akvorado.yaml
|
|
volumes:
|
|
- ./akvorado.yaml:/etc/akvorado.yaml:ro
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.akvorado-orchestrator.rule=PathPrefix(`/api/v0/orchestrator`)
|
|
- traefik.http.services.akvorado-orchestrator.loadbalancer.server.port=8080
|
|
akvorado-console:
|
|
build: *akvorado-image
|
|
restart: unless-stopped
|
|
command: console http://akvorado-orchestrator:8080
|
|
volumes:
|
|
- akvorado-console-db:/run/akvorado
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.akvorado-console.rule=PathPrefix(`/`)
|
|
- traefik.http.services.akvorado-console.loadbalancer.server.port=8080
|
|
- traefik.http.middlewares.testheader.headers.customrequestheaders.Remote-User=alfred
|
|
- traefik.http.middlewares.testheader.headers.customrequestheaders.Remote-Name=Alfred Pennyworth
|
|
- traefik.http.middlewares.testheader.headers.customrequestheaders.Remote-Email=alfred@example.com
|
|
akvorado-inlet:
|
|
build: *akvorado-image
|
|
ports:
|
|
- 2055:2055/udp
|
|
restart: unless-stopped
|
|
command: inlet http://akvorado-orchestrator:8080
|
|
volumes:
|
|
- akvorado-geoip:/usr/share/GeoIP:ro
|
|
- akvorado-run:/run/akvorado
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.akvorado-inlet.rule=PathPrefix(`/api/v0/inlet`)
|
|
- traefik.http.services.akvorado-inlet.loadbalancer.server.port=8080
|
|
akvorado-exporter0: &exporter
|
|
build: *akvorado-image
|
|
restart: unless-stopped
|
|
command: fake-exporter http://akvorado-orchestrator:8080#0
|
|
akvorado-exporter1:
|
|
<<: *exporter
|
|
command: fake-exporter http://akvorado-orchestrator:8080#1
|
|
akvorado-exporter2:
|
|
<<: *exporter
|
|
command: fake-exporter http://akvorado-orchestrator:8080#2
|
|
akvorado-exporter3:
|
|
<<: *exporter
|
|
command: fake-exporter http://akvorado-orchestrator:8080#3
|
|
|
|
clickhouse:
|
|
image: clickhouse/clickhouse-server:22.3
|
|
volumes:
|
|
- ./orchestrator/clickhouse/data/docker-entrypoint.sh:/docker-entrypoint-initdb.d/init-db.sh:ro
|
|
- akvorado-clickhouse:/var/lib/clickhouse
|
|
environment:
|
|
- CLICKHOUSE_INIT_TIMEOUT=60
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
test: ["CMD", "wget", "-T", "1", "--spider", "--no-proxy", "http://clickhouse:8123"]
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.clickhouse.rule=PathPrefix(`/clickhouse`)
|
|
- traefik.http.services.clickhouse.loadbalancer.server.port=8123
|
|
|
|
traefik:
|
|
image: traefik:2.6
|
|
restart: unless-stopped
|
|
command:
|
|
- --api.insecure=true
|
|
- --providers.docker=true
|
|
- --providers.docker.exposedbydefault=false
|
|
- --entrypoints.web.address=:80
|
|
ports:
|
|
- 80:80/tcp
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
labels:
|
|
- traefik.http.routers.traefik.rule=PathPrefix(`/traefik`)
|
|
- traefik.http.routers.traefik.service=api@internal
|