120 lines
3.0 KiB
YAML
120 lines
3.0 KiB
YAML
version: "3.8"
|
|
|
|
services:
|
|
# =========================
|
|
# Prometheus
|
|
# =========================
|
|
prometheus:
|
|
image: prom/prometheus:latest
|
|
container_name: prometheus
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|
- ./prometheus/alert.rules.yml:/etc/prometheus/alert.rules.yml:ro
|
|
- prometheus_data:/prometheus
|
|
command:
|
|
- "--config.file=/etc/prometheus/prometheus.yml"
|
|
- "--storage.tsdb.path=/prometheus"
|
|
- "--storage.tsdb.retention.time=15d"
|
|
- "--web.enable-lifecycle"
|
|
ports:
|
|
- "9090:9090"
|
|
networks:
|
|
- monitoring
|
|
|
|
# =========================
|
|
# Grafana
|
|
# =========================
|
|
grafana:
|
|
image: grafana/grafana-oss:latest
|
|
container_name: grafana
|
|
restart: unless-stopped
|
|
environment:
|
|
- GF_SECURITY_ADMIN_USER=admin
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
- GF_SERVER_DOMAIN=localhost
|
|
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/
|
|
volumes:
|
|
- grafana_data:/var/lib/grafana
|
|
ports:
|
|
- "3000:3000"
|
|
networks:
|
|
- monitoring
|
|
depends_on:
|
|
- prometheus
|
|
- loki
|
|
|
|
# =========================
|
|
# Alertmanager
|
|
# =========================
|
|
alertmanager:
|
|
image: prom/alertmanager:latest
|
|
container_name: alertmanager
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
|
|
command:
|
|
- "--config.file=/etc/alertmanager/alertmanager.yml"
|
|
ports:
|
|
- "9093:9093"
|
|
networks:
|
|
- monitoring
|
|
|
|
# =========================
|
|
# Blackbox exporter
|
|
# =========================
|
|
blackbox-exporter:
|
|
image: prom/blackbox-exporter:latest
|
|
container_name: blackbox-exporter
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./blackbox/blackbox.yml:/etc/blackbox_exporter/config.yml:ro
|
|
command:
|
|
- "--config.file=/etc/blackbox_exporter/config.yml"
|
|
ports:
|
|
- "9115:9115"
|
|
networks:
|
|
- monitoring
|
|
|
|
# =========================
|
|
# Loki (logs backend)
|
|
# =========================
|
|
loki:
|
|
image: grafana/loki:latest
|
|
container_name: loki
|
|
restart: unless-stopped
|
|
command: -config.file=/etc/loki/local-config.yml
|
|
volumes:
|
|
- ./loki/loki-config.yml:/etc/loki/local-config.yml:ro
|
|
- loki_data:/loki
|
|
ports:
|
|
- "3100:3100"
|
|
networks:
|
|
- monitoring
|
|
|
|
# =========================
|
|
# Promtail (log shipper from this host)
|
|
# =========================
|
|
promtail:
|
|
image: grafana/promtail:latest
|
|
container_name: promtail
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./promtail/promtail-config.yml:/etc/promtail/config.yml:ro
|
|
- /var/log:/var/log:ro
|
|
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
- /etc/machine-id:/etc/machine-id:ro
|
|
command: -config.file=/etc/promtail/config.yml
|
|
networks:
|
|
- monitoring
|
|
depends_on:
|
|
- loki
|
|
|
|
networks:
|
|
monitoring:
|
|
|
|
volumes:
|
|
prometheus_data:
|
|
grafana_data:
|
|
loki_data:
|