Files
homelab/stacks/monitoring/grafana.yaml
2026-02-25 00:22:44 +03:00

115 lines
3.0 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
#
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:2.9.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"
promtail:
image: grafana/promtail:2.9.0
container_name: promtail
command: -config.file=/etc/promtail/config.yaml
depends_on:
- loki
volumes:
- /srv/homelab/config/monitoring/promtail-config.yaml:/etc/promtail/config.yaml:ro
- /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"