From 514adbc568914fde8b5e7ea89fc8cea430a151ac Mon Sep 17 00:00:00 2001 From: Alex Frantz Date: Sat, 13 Sep 2025 23:21:41 -0400 Subject: [PATCH] Revert "remove monitoring stack for now" This reverts commit 84941c0e2c89beb06afc7d112bdef25ea83b9ecc. --- tasks/monitoring.yml | 101 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 tasks/monitoring.yml diff --git a/tasks/monitoring.yml b/tasks/monitoring.yml new file mode 100644 index 0000000..536e238 --- /dev/null +++ b/tasks/monitoring.yml @@ -0,0 +1,101 @@ +--- +- name: Create folder structure + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ data_dir }}/monitoring" + - "{{ data_dir }}/monitoring/prometheus" + - "{{ data_dir }}/monitoring/grafana" + +- name: Create Monitoring Docker Network + docker_network: + name: monitoring + +- name: Pull latest Grafana Docker Image + docker_image: + name: grafana/grafana + tag: latest + source: pull +- name: Pull latest Prometheus Docker Image + docker_image: + name: prom/prometheus + tag: latest + source: pull +- name: Pull latest CAdvisor Docker Image + docker_image: + name: gcr.io/cadvisor/cadvisor + tag: latest + source: pull +- name: Pull latest Node Exporter Docker Image + docker_image: + name: prom/node-exporter + tag: latest + source: pull + +- name: Create Grafana Docker Container + docker_container: + name: grafana + user: "{{ PUID }}" + image: grafana/grafana:latest + restart_policy: unless-stopped + recreate: true + networks: + - name: homelab + - name: monitoring + volumes: + - "{{ data_dir }}/monitoring/grafana:/var/lib/grafana" + env: + GF_AUTH_ANONYMOUS_ENABLED: "{{ GRAFANA_AUTH_ANONYMOUS_ENABLED }}" + labels: + traefik.enable: "true" + traefik.http.routers.graf.rule: Host(`graf.fntz.net`) + traefik.http.routers.graf.entrypoints: webSecure + traefik.http.routers.graf.tls.certresolver: letsencrypt + traefik.http.services.graf.loadbalancer.server.port: "3000" + +- name: Copy Prometheus Config + template: + src: "prometheus.yml.j2" + dest: "{{ data_dir }}/monitoring/prometheus/config.yml" + mode: "0744" + +- name: Create Prometheus Docker Container + docker_container: + name: prometheus + image: prom/prometheus:latest + restart_policy: unless-stopped + recreate: true + networks: + - name: homelab + - name: monitoring + volumes: + - "{{ data_dir }}/monitoring/prometheus:/prometheus" + - "{{ data_dir }}/monitoring/prometheus/config.yml:/etc/prometheus/prometheus.yml" + +- name: Create CAdvisor Docker Container + docker_container: + name: cadvisor + image: gcr.io/cadvisor/cadvisor:latest + restart_policy: unless-stopped + recreate: true + privileged: true + networks: + - name: monitoring + devices: + - /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" + +- name: Create Node-Exporter Docker Container + docker_container: + name: node-exporter + image: prom/node-exporter:latest + restart_policy: unless-stopped + recreate: true + networks: + - name: monitoring