123 lines
3.2 KiB
YAML
123 lines
3.2 KiB
YAML
# One-time permissions (run on host):
|
|
# sudo chown -R 65534:65534 /srv/homelab/data/monitoring/prometheus
|
|
# sudo chown -R 10001:10001 /srv/homelab/data/monitoring/loki
|
|
# sudo chown -R 472:472 /srv/homelab/data/monitoring/grafana
|
|
# sudo chown -R 10001:10001 /srv/homelab/data/monitoring/alloy
|
|
#
|
|
networks:
|
|
default:
|
|
name: monitoring
|
|
|
|
services:
|
|
cadvisor:
|
|
image: gcr.io/cadvisor/cadvisor:latest
|
|
container_name: cadvisor
|
|
ports:
|
|
- "8088:8080"
|
|
volumes:
|
|
- /:/rootfs:ro
|
|
- /var/run:/var/run:ro
|
|
- /sys:/sys:ro
|
|
- /var/lib/docker:/var/lib/docker:ro
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
|
|
prometheus:
|
|
image: prom/prometheus:latest
|
|
container_name: prometheus
|
|
extra_hosts:
|
|
- "metrics.home:192.168.1.70"
|
|
ports:
|
|
- "9094:9090"
|
|
volumes:
|
|
- /srv/homelab/config/monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|
- /srv/homelab/data/monitoring/prometheus:/prometheus
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
|
|
node_exporter:
|
|
image: quay.io/prometheus/node-exporter:latest
|
|
container_name: node_exporter
|
|
command:
|
|
- '--path.rootfs=/host'
|
|
network_mode: host
|
|
pid: host
|
|
restart: unless-stopped
|
|
volumes:
|
|
- '/:/host:ro,rslave'
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
container_name: grafana
|
|
user: "472:65534"
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
environment:
|
|
- GF_FEATURE_TOGGLES_KUBERNETESDASHBOARDS=false
|
|
depends_on:
|
|
- loki
|
|
- prometheus
|
|
ports:
|
|
- "3034:3000"
|
|
volumes:
|
|
- /srv/homelab/data/monitoring/grafana:/var/lib/grafana
|
|
- /srv/homelab/config/monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
|
|
loki:
|
|
image: grafana/loki:3.6.0
|
|
container_name: loki
|
|
ports:
|
|
- "3100:3100"
|
|
command: -config.file=/etc/loki/config.yaml
|
|
volumes:
|
|
- /srv/homelab/config/monitoring/loki-config.yaml:/etc/loki/config.yaml:ro
|
|
- /srv/homelab/data/monitoring/loki:/loki
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
|
|
alloy:
|
|
image: grafana/alloy:latest
|
|
container_name: alloy
|
|
command: run --storage.path=/var/lib/alloy /etc/alloy/config.alloy
|
|
depends_on:
|
|
- loki
|
|
ports:
|
|
- "12345:12345"
|
|
volumes:
|
|
- /srv/homelab/config/monitoring/alloy.alloy:/etc/alloy/config.alloy:ro
|
|
- /srv/homelab/data/monitoring/alloy:/var/lib/alloy
|
|
- /var/log:/var/log:ro
|
|
- /etc/machine-id:/etc/machine-id:ro
|
|
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
- /run/log/journal:/run/log/journal:ro
|
|
- /var/log/journal:/var/log/journal:ro
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|