diff --git a/monitoring/docker-compose.yml b/monitoring/docker-compose.yml new file mode 100644 index 0000000..6af243b --- /dev/null +++ b/monitoring/docker-compose.yml @@ -0,0 +1,34 @@ +services: + prometheus: + image: prom/prometheus:latest + container_name: prometheus + restart: unless-stopped + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro + - prometheus_data:/prometheus + ports: + - "9091:9090" + extra_hosts: + - "host.docker.internal:host-gateway" # Damit er deinen Worker findet + + grafana: + image: grafana/grafana:latest + container_name: grafana + restart: unless-stopped + volumes: + - grafana_data:/var/lib/grafana + ports: + - "4000:3000" + depends_on: + - prometheus + + blackbox_exporter: + image: prom/blackbox-exporter:latest + container_name: blackbox_exporter + restart: unless-stopped + ports: + - "9115:9115" + +volumes: + prometheus_data: + grafana_data: \ No newline at end of file diff --git a/monitoring/prometheus.yml b/monitoring/prometheus.yml new file mode 100644 index 0000000..8d77907 --- /dev/null +++ b/monitoring/prometheus.yml @@ -0,0 +1,25 @@ +global: + scrape_interval: 15s + +scrape_configs: + # 1. Scraping deines Node.js Email-Workers + - job_name: 'email-worker' + static_configs: + - targets: ['host.docker.internal:9000'] + + # 2. Port-Überwachung deines Mailservers (IMAP 993 & POP3 995) + - job_name: 'mailserver_ports' + metrics_path: /probe + params: + module: [tcp_connect] # Prüft nur, ob der TCP-Port offen ist + static_configs: + - targets: + - host.docker.internal:993 # IMAPS + - host.docker.internal:995 # POP3S + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - target_label: __address__ + replacement: blackbox_exporter:9115 # Der Exporter führt den Check aus \ No newline at end of file