You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zeus/docker/monitoring/docker-compose.yaml

132 lines
3.6 KiB
YAML

version: "3"
networks:
monitoring:
services:
cadvisor:
image: google/cadvisor:v0.33.0
container_name: monitoring-cadvisor
restart: unless-stopped
command: --docker_only=true --store_container_labels=false
ports: ["4100:8080"]
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk/:/dev/disk:ro
networks: [monitoring]
privileged: true
grafana:
image: grafana/grafana:7.3.6
container_name: monitoring-grafana
restart: unless-stopped
ports: ["4101:3000"]
volumes:
- ./datasource.yaml:/etc/grafana/provisioning/datasources/monitoring.yaml
- ./dashboards:/etc/grafana/provisioning/dashboards
- ./data/grafana:/var/lib/grafana
networks: [monitoring]
user: "1000:1000"
jaeger:
image: jaegertracing/all-in-one:1.21.0
container_name: monitoring-jaeger
restart: unless-stopped
ports: ["6831:6831/udp", "6832:6832/udp", "14250:14250", "14269:14269", "4102:16686"]
volumes:
- ./data/jaeger:/badger
networks: [monitoring]
mem_limit: 512m
environment:
- SPAN_STORAGE_TYPE=badger
- BADGER_EPHEMERAL=false
- BADGER_DIRECTORY_KEY=/badger/key
- BADGER_DIRECTORY_VALUE=/badger/data
- BADGER_SPAN_STORE_TTL=168h0m0s
user: "1000:1000"
prometheus:
image: prom/prometheus:v2.24.1
container_name: monitoring-prometheus
restart: unless-stopped
command: --config.file=/etc/prometheus/prometheus.yaml --web.route-prefix=/ --storage.tsdb.path=/prometheus --storage.tsdb.retention.time=30d --web.enable-lifecycle --web.enable-admin-api
ports: ["4103:9090"]
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yaml
- ./data/prometheus:/prometheus
networks: [monitoring]
user: "1000:1000"
mem_limit: 512m
loki:
image: grafana/loki:2.1.0
container_name: monitoring-loki
restart: unless-stopped
ports: ["3100:3100"]
volumes:
- ./loki.yaml:/etc/loki/local-config.yaml
- /var/log:/var/log:ro
- ./data/loki:/loki
networks: [monitoring]
user: "1000:1000"
opentelemetry-collector:
image: otel/opentelemetry-collector:0.18.0
container_name: monitoring-opentelemetry-collector
restart: unless-stopped
command: --config=/conf/otel-collector.config.yaml
ports: ["9464:9464", "55680:55680", "55681:55681"]
volumes:
- ./otel-collector.yaml:/conf/otel-collector.config.yaml
networks: [monitoring]
vector:
image: timberio/vector:0.11.1-alpine
container_name: monitoring-vector
restart: unless-stopped
ports: ["8383:8383", "8686:8686", "9160:9160", "4545:4545/udp"]
volumes:
- ./vector.toml:/etc/vector/vector.toml
- /var/run/docker.sock:/var/run/docker.sock:ro
networks: [monitoring]
depends_on: [loki, prometheus]
mem_limit: 100m
apollo:
image: nobodyiam/apollo-quick-start
container_name: monitoring-apollo
depends_on:
- apollo-db
ports:
- "4104:8080"
- "4105:8090"
- "4106:8070"
networks: [monitoring]
links:
- apollo-db
apollo-db:
image: mysql:5.7
container_name: monitoring-apollo-db
environment:
TZ: Asia/Shanghai
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
networks: [monitoring]
depends_on:
- apollo-dbdata
ports:
- "4107:3306"
volumes:
- ./sql:/docker-entrypoint-initdb.d
volumes_from:
- apollo-dbdata
apollo-dbdata:
image: alpine:latest
container_name: monitoring-apollo-dbdata
networks: [monitoring]
volumes:
- /var/lib/mysql