From c384e502850d06b1edced37f741cad2f49244fd0 Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Wed, 9 Apr 2025 18:43:16 +0100 Subject: [PATCH] initial commit --- docker-compose.yml | 71 +++++++++++++++++++++++++++++++++++++++++++ prometheus-config.yml | 15 +++++++++ promtail-config.yml | 17 +++++++++++ 3 files changed, 103 insertions(+) create mode 100644 docker-compose.yml create mode 100644 prometheus-config.yml create mode 100644 promtail-config.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..2026ade --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,71 @@ +services: + prometheus: + image: prom/prometheus:latest + container_name: prometheus + volumes: + - ./prometheus-config.yml:/etc/prometheus/prometheus.yml + - prometheus_data:/prometheus + restart: unless-stopped + + node-exporter: + image: prom/node-exporter:latest + container_name: node-exporter + volumes: + - /proc:/host/proc:ro + - /sys:/host/sys:ro + - /:/rootfs:ro + command: + - "--path.procfs=/host/proc" + - "--path.rootfs=/rootfs" + - "--path.sysfs=/host/sys" + restart: unless-stopped + + loki: + image: grafana/loki:latest + container_name: loki + volumes: + - loki_data:/loki + restart: unless-stopped + + promtail: + image: grafana/promtail:latest + container_name: promtail + volumes: + - ./promtail-config.yml:/etc/promtail/config.yml + - /var/log:/var/log + restart: unless-stopped + + cadvisor: + image: gcr.io/cadvisor/cadvisor:latest + container_name: cadvisor + volumes: + - /:/rootfs:ro + - /var/run:/var/run:ro + - /sys:/sys:ro + - /var/lib/docker/:/var/lib/docker:ro + - /dev/disk/:/dev/disk:ro + restart: unless-stopped + + grafana: + image: grafana/grafana:latest + container_name: grafana + volumes: + - data:/var/lib/grafana + environment: + - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD} + - GF_USERS_ALLOW_SIGN_UP=false + - GF_AUTH_MULTI_FACTOR_AUTHENTICATION_ENABLED=true + - GF_AUTH_MULTI_FACTOR_WEBAUTHN_ENABLED=true + ports: + - "8000:3000" + networks: + - default + restart: unless-stopped + +volumes: + data: + prometheus_data: + loki_data: + +networks: + default: diff --git a/prometheus-config.yml b/prometheus-config.yml new file mode 100644 index 0000000..0366c8f --- /dev/null +++ b/prometheus-config.yml @@ -0,0 +1,15 @@ +global: + scrape_interval: 15s + +scrape_configs: + - job_name: "prometheus" + static_configs: + - targets: ["localhost:9090"] + + - job_name: "node" + static_configs: + - targets: ["node-exporter:9100"] + + - job_name: "cadvisor" + static_configs: + - targets: ["cadvisor:8080"] diff --git a/promtail-config.yml b/promtail-config.yml new file mode 100644 index 0000000..93a74d6 --- /dev/null +++ b/promtail-config.yml @@ -0,0 +1,17 @@ +server: + http_listen_port: 9080 + +positions: + filename: /tmp/positions.yaml + +clients: + - url: http://loki:3100/loki/api/v1/push + +scrape_configs: + - job_name: system + static_configs: + - targets: + - localhost + labels: + job: varlogs + __path__: /var/log/*log