110 lines
2.9 KiB
YAML
110 lines
2.9 KiB
YAML
---
|
|
- name: Deploy Prometheus
|
|
include_role:
|
|
name: docker
|
|
vars:
|
|
name: monitoring_prometheus
|
|
network_name: "monitoring"
|
|
networks:
|
|
- name: "monitoring"
|
|
- name: "homelab"
|
|
directories:
|
|
- "{{ data_dir }}/monitoring"
|
|
- "{{ data_dir }}/monitoring/grafana"
|
|
- "{{ data_dir }}/monitoring/loki"
|
|
- "{{ data_dir }}/monitoring/promtail"
|
|
- "{{ data_dir }}/monitoring/prometheus"
|
|
image:
|
|
name: prom/prometheus
|
|
tag: latest
|
|
volumes:
|
|
- "{{ data_dir }}/monitoring/prometheus:/etc/prometheus"
|
|
- "{{ data_dir }}/monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml"
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.prom.rule: Host(`prom.fntz.net`)
|
|
traefik.http.routers.prom.entrypoints: webSecure
|
|
traefik.http.routers.prom.tls.certresolver: letsencrypt
|
|
traefik.http.services.prom.loadbalancer.server.port: "9090"
|
|
|
|
# copy configs for loki
|
|
- name: Create Loki Configuration
|
|
template:
|
|
src: templates/monitoring/loki.yaml.j2
|
|
dest: "{{ data_dir }}/monitoring/loki/loki-config.yaml"
|
|
|
|
- name: Deploy Node Exporter
|
|
include_role:
|
|
name: docker
|
|
vars:
|
|
name: monitoring_node-exporter
|
|
image:
|
|
name: prom/node-exporter
|
|
tag: latest
|
|
command:
|
|
- "--path.rootfs=host"
|
|
network_mode: host
|
|
pid_mode: host
|
|
volumes:
|
|
- "/:/host:ro,rslave"
|
|
|
|
- name: Deploy CAdvisor
|
|
include_role:
|
|
name: docker
|
|
vars:
|
|
name: monitoring_cadvisor
|
|
image:
|
|
name: ghcr.io/google/cadvisor
|
|
tag: 0.55.1
|
|
networks:
|
|
- name: "monitoring"
|
|
volumes:
|
|
- "/:/rootfs:ro"
|
|
- "/var/run:/var/run:ro"
|
|
- "/sys:/sys:ro"
|
|
- "/var/lib/docker:/var/lib/docker:ro"
|
|
- "/dev/disk:/dev/disk:ro"
|
|
privileged: true
|
|
devices:
|
|
- /dev/kmsg
|
|
|
|
- name: Deploy Loki
|
|
include_role:
|
|
name: docker
|
|
vars:
|
|
name: monitoring_loki
|
|
volume_name: grafana-loki
|
|
image:
|
|
name: grafana/loki
|
|
tag: latest
|
|
volumes:
|
|
- "{{ data_dir }}/monitoring/loki/loki-config.yaml:/etc/loki/local-config.yaml"
|
|
- "grafana-loki:/loki"
|
|
networks:
|
|
- name: "monitoring"
|
|
|
|
- name: Deploy Grafana
|
|
include_role:
|
|
name: docker
|
|
vars:
|
|
name: monitoring_grafana
|
|
volume_name: "grafana-storage"
|
|
networks:
|
|
- name: "monitoring"
|
|
- name: "homelab"
|
|
image:
|
|
name: grafana/grafana
|
|
tag: latest
|
|
user: "{{ PUID }}"
|
|
volumes:
|
|
- "grafana-storage:/var/lib/grafana"
|
|
env:
|
|
GF_AUTH_ANONYMOUS_ENABLED: "{{ GRAFANA_AUTH_ANONYMOUS_ENABLED }}"
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.grafana.rule: Host(`grafana.fntz.net`)
|
|
traefik.http.routers.grafana.entrypoints: webSecure
|
|
traefik.http.routers.grafana.tls.certresolver: letsencrypt
|
|
traefik.http.services.grafana.loadbalancer.server.port: "3000"
|
|
traefik.http.routers.grafana.middlewares: tinyauth
|