feat: prepare minio and traefik
commit
05c4bc5400
|
@ -0,0 +1,213 @@
|
||||||
|
services:
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ./data/grafana:/var/lib/grafana
|
||||||
|
environment:
|
||||||
|
- GF_SECURITY_ADMIN_PASSWORD=ZTWTWXeZhFs4wg6vMr7M
|
||||||
|
- GF_USERS_ALLOW_SIGN_UP=false
|
||||||
|
- GF_SERVER_DOMAIN=old.grafana.eigen.co.id
|
||||||
|
- GF_SERVER_ROOT_URL=https://old.grafana.eigen.co.id
|
||||||
|
- GF_INSTALL_PLUGINS=grafana-pyroscope-app
|
||||||
|
- GF_FEATURE_TOGGLES_ENABLE=traceToProfiles tracesEmbeddedFlameGraph
|
||||||
|
- GF_SMTP_ENABLED=false
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
|
||||||
|
pyroscope:
|
||||||
|
image: grafana/pyroscope:latest
|
||||||
|
environment:
|
||||||
|
JAEGER_AGENT_HOST: distributor
|
||||||
|
JAEGER_SAMPLER_TYPE: const
|
||||||
|
JAEGER_SAMPLER_PARAM: 1
|
||||||
|
command: ["-config.file=/etc/pyroscope.yml"]
|
||||||
|
ports:
|
||||||
|
- "4040:4040"
|
||||||
|
volumes:
|
||||||
|
- ./config/pyroscope.yml:/etc/pyroscope.yml
|
||||||
|
|
||||||
|
memcached:
|
||||||
|
image: bitnami/memcached:latest
|
||||||
|
container_name: memcached
|
||||||
|
ports:
|
||||||
|
- "11211:11211"
|
||||||
|
environment:
|
||||||
|
- MEMCACHED_CACHE_SIZE=128
|
||||||
|
- MEMCACHED_THREADS=4
|
||||||
|
|
||||||
|
init-tempo:
|
||||||
|
image: &tempoImage grafana/tempo:latest
|
||||||
|
user: root
|
||||||
|
entrypoint:
|
||||||
|
- "chown"
|
||||||
|
- "10001:10001"
|
||||||
|
- "/var/tempo"
|
||||||
|
volumes:
|
||||||
|
- ./data/tempo:/var/tempo
|
||||||
|
|
||||||
|
tempo:
|
||||||
|
image: *tempoImage
|
||||||
|
command: [ "-config.file=/etc/tempo.yaml" ]
|
||||||
|
volumes:
|
||||||
|
- ./config/tempo-standalone.yaml:/etc/tempo.yaml
|
||||||
|
- ./data/tempo:/var/tempo
|
||||||
|
ports:
|
||||||
|
- "14268:14268" # jaeger ingest
|
||||||
|
- "3200:3200" # tempo
|
||||||
|
- "9095:9095" # tempo grpc
|
||||||
|
- "9411:9411" # zipkin
|
||||||
|
depends_on:
|
||||||
|
- init-tempo
|
||||||
|
- memcached
|
||||||
|
|
||||||
|
alloy:
|
||||||
|
image: grafana/alloy:latest
|
||||||
|
restart: on-failure
|
||||||
|
volumes:
|
||||||
|
- ./config/config.alloy:/etc/alloy/config.alloy
|
||||||
|
environment:
|
||||||
|
REMOTE_WRITE_HOST: 172.10.10.6:30291
|
||||||
|
LOKI_HOST: 172.10.10.6:30501
|
||||||
|
TEMPO_HOST: 172.10.10.6:30641
|
||||||
|
PYROSCOPE_HOST: pyroscope:4040
|
||||||
|
depends_on:
|
||||||
|
# - thanos-receiver
|
||||||
|
# - loki
|
||||||
|
# - tempo
|
||||||
|
- pyroscope
|
||||||
|
command:
|
||||||
|
- run
|
||||||
|
- /etc/alloy/config.alloy
|
||||||
|
- --storage.path=/var/lib/alloy/data
|
||||||
|
- --server.http.listen-addr=0.0.0.0:12345
|
||||||
|
- --stability.level=experimental
|
||||||
|
ports:
|
||||||
|
- "12345:12345"
|
||||||
|
- "4319:4319"
|
||||||
|
- "4017:4017"
|
||||||
|
- "4018:4018"
|
||||||
|
|
||||||
|
loki:
|
||||||
|
image: grafana/loki:3.0.0
|
||||||
|
container_name: loki
|
||||||
|
volumes:
|
||||||
|
- ./config/loki:/mnt/config
|
||||||
|
ports:
|
||||||
|
- "3100:3100"
|
||||||
|
command: -config.file=/mnt/config/loki-config.yaml
|
||||||
|
|
||||||
|
promtail:
|
||||||
|
image: grafana/promtail:3.0.0
|
||||||
|
container_name: promtail
|
||||||
|
volumes:
|
||||||
|
- ./config/loki:/mnt/config
|
||||||
|
- /var/log:/var/log
|
||||||
|
depends_on:
|
||||||
|
- loki
|
||||||
|
command: -config.file=/mnt/config/promtail-config.yaml
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
user: root
|
||||||
|
volumes:
|
||||||
|
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
|
||||||
|
- ./data/prometheus:/prometheus
|
||||||
|
# Credentials
|
||||||
|
- ./credentials/kubernetes-eigen-core:/credentials/kubernetes-eigen-core
|
||||||
|
- ./credentials/kubernetes-eigen-internal:/credentials/kubernetes-eigen-internal
|
||||||
|
- ./credentials/kubernetes-eigen-external:/credentials/kubernetes-eigen-external
|
||||||
|
- ./credentials/kubernetes-pmps-local:/credentials/kubernetes-pmps-local
|
||||||
|
- ./credentials/kubernetes-ifgf-jakarta:/credentials/kubernetes-ifgf-jakarta
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
- '--storage.tsdb.retention.time=60d'
|
||||||
|
- '--storage.tsdb.min-block-duration=2h'
|
||||||
|
- '--storage.tsdb.max-block-duration=2h'
|
||||||
|
- '--storage.tsdb.path=/prometheus'
|
||||||
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||||
|
- '--web.console.templates=/etc/prometheus/consoles'
|
||||||
|
- '--web.enable-lifecycle'
|
||||||
|
- '--web.enable-admin-api'
|
||||||
|
- '--web.enable-remote-write-receiver'
|
||||||
|
- '--enable-feature=native-histograms'
|
||||||
|
ports:
|
||||||
|
- "9090:9090"
|
||||||
|
#depends_on:
|
||||||
|
# - thanos-receiver
|
||||||
|
|
||||||
|
thanos-query:
|
||||||
|
image: thanosio/thanos:v0.36.1
|
||||||
|
user: root
|
||||||
|
command:
|
||||||
|
- query
|
||||||
|
- --http-address=:19192
|
||||||
|
- --grpc-address=:19092
|
||||||
|
- --endpoint=thanos-store:19090
|
||||||
|
- --endpoint=thanos-receiver:10907
|
||||||
|
#- --query.auto-downsampling
|
||||||
|
#- --query.max-concurrent-select=10
|
||||||
|
#- --query.max-concurrent=50
|
||||||
|
#- --query.timeout=1440m
|
||||||
|
#- --query.partial-response
|
||||||
|
|
||||||
|
thanos-store:
|
||||||
|
image: thanosio/thanos:v0.36.1
|
||||||
|
user: root
|
||||||
|
command:
|
||||||
|
- store
|
||||||
|
- --data-dir=/data
|
||||||
|
- --objstore.config-file=/etc/thanos/bucket.yaml
|
||||||
|
- --http-address=:19191
|
||||||
|
- --grpc-address=:19090
|
||||||
|
volumes:
|
||||||
|
- ./data/thanos/store:/data
|
||||||
|
- ./config/bucket.yaml:/etc/thanos/bucket.yaml
|
||||||
|
|
||||||
|
thanos-compactor:
|
||||||
|
image: thanosio/thanos:v0.36.1
|
||||||
|
user: root
|
||||||
|
command:
|
||||||
|
- compact
|
||||||
|
- --data-dir=/data
|
||||||
|
- --objstore.config-file=/etc/thanos/bucket.yaml
|
||||||
|
- --wait
|
||||||
|
- --wait-interval=5m
|
||||||
|
volumes:
|
||||||
|
- ./data/thanos/compactor:/data
|
||||||
|
- ./config/bucket.yaml:/etc/thanos/bucket.yaml
|
||||||
|
|
||||||
|
thanos-receiver:
|
||||||
|
image: thanosio/thanos:v0.36.1
|
||||||
|
user: root
|
||||||
|
command:
|
||||||
|
- receive
|
||||||
|
- --grpc-address=:10907
|
||||||
|
- --http-address=:10909
|
||||||
|
- --tsdb.path=/data
|
||||||
|
- --receive.local-endpoint=127.0.0.1:10907
|
||||||
|
- --objstore.config-file=/etc/thanos/bucket.yaml
|
||||||
|
- --label=receive_instance_id="thanos-receiver-1"
|
||||||
|
- --remote-write.address=:10908
|
||||||
|
ports:
|
||||||
|
- "10908:10908"
|
||||||
|
volumes:
|
||||||
|
- ./data/thanos/receiver:/data/default-tenant
|
||||||
|
- ./config/bucket.yaml:/etc/thanos/bucket.yaml
|
||||||
|
|
||||||
|
cadvisor:
|
||||||
|
image: "gcr.io/cadvisor/cadvisor:v0.49.1"
|
||||||
|
container_name: cadvisor
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- "/dev/kmsg:/dev/kmsg"
|
||||||
|
volumes:
|
||||||
|
- "/:/rootfs:ro"
|
||||||
|
- "/var/run:/var/run:ro"
|
||||||
|
- "/sys:/sys:ro"
|
||||||
|
- "/var/lib/docker/:/var/lib/docker:ro"
|
||||||
|
- "/dev/disk/:/dev/disk:ro"
|
||||||
|
ports:
|
||||||
|
- "9070:8080"
|
||||||
|
restart: always
|
|
@ -0,0 +1,35 @@
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: eigen-monitoring
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
minio:
|
||||||
|
image: quay.io/minio/minio:RELEASE.2024-09-13T20-26-02Z
|
||||||
|
container_name: minio
|
||||||
|
restart: always
|
||||||
|
command: server /data --console-address ":9001"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
# Console
|
||||||
|
- "traefik.http.services.minio-console.loadbalancer.server.port=9001"
|
||||||
|
- "traefik.http.routers.minio-console.rule=Host(`console.eigen.research`)"
|
||||||
|
- "traefik.http.routers.minio-console.tls=true"
|
||||||
|
- "traefik.http.routers.minio-console.service=minio-console"
|
||||||
|
- "traefik.http.routers.minio-console.entryPoints=web,websecure"
|
||||||
|
# API
|
||||||
|
- "traefik.http.services.minio-api.loadbalancer.server.port=9000"
|
||||||
|
- "traefik.http.routers.minio-api.rule=Host(`minio.eigen.research`)"
|
||||||
|
- "traefik.http.routers.minio-api.tls=true"
|
||||||
|
- "traefik.http.routers.minio-api.service=minio-api"
|
||||||
|
- "traefik.http.routers.minio-api.entryPoints=web,websecure"
|
||||||
|
volumes:
|
||||||
|
- "./.data:/data"
|
||||||
|
environment:
|
||||||
|
MINIO_ROOT_USER: eigen
|
||||||
|
MINIO_ROOT_PASSWORD: Eigen3m!
|
||||||
|
MINIO_SERVER_URL: http://minio:9000
|
||||||
|
MINIO_BROWSER_REDIRECT_URL: http://console.eigen.research
|
||||||
|
MINIO_SITE_REGION: ap-indonesia-1
|
||||||
|
MINIO_SITE_NAME: instance-1
|
||||||
|
MINIO_PROMETHEUS_AUTH_TYPE: public
|
|
@ -0,0 +1,16 @@
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: eigen-monitoring
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
traefik:
|
||||||
|
image: "traefik:v3"
|
||||||
|
container_name: traefik
|
||||||
|
restart: "always"
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
- ./config:/etc/traefik
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
@ -0,0 +1,5 @@
|
||||||
|
[http.routers]
|
||||||
|
[http.routers.api]
|
||||||
|
rule = "Host(`traefik.eigen.research`)"
|
||||||
|
entrypoints = ["web"]
|
||||||
|
service = "api@internal"
|
|
@ -0,0 +1,24 @@
|
||||||
|
[providers.docker]
|
||||||
|
watch = true
|
||||||
|
exposedByDefault = false
|
||||||
|
|
||||||
|
[entryPoints]
|
||||||
|
[entryPoints.web]
|
||||||
|
address = ":80"
|
||||||
|
[entryPoints.web.forwardedHeaders]
|
||||||
|
insecure = true
|
||||||
|
|
||||||
|
[entryPoints.websecure]
|
||||||
|
address = ":443"
|
||||||
|
|
||||||
|
[api]
|
||||||
|
dashboard = true
|
||||||
|
insecure = true
|
||||||
|
|
||||||
|
[providers.file]
|
||||||
|
directory = "/etc/traefik"
|
||||||
|
filename = "dynamic.toml"
|
||||||
|
watch = true
|
||||||
|
|
||||||
|
[serversTransport]
|
||||||
|
insecureSkipVerify = true
|
Loading…
Reference in New Issue