From 30bc31f3a6f4dbb9884bac7e26073bfaf91559cd Mon Sep 17 00:00:00 2001 From: senke Date: Mon, 23 Feb 2026 19:54:55 +0100 Subject: [PATCH] feat(monitoring): add Alertmanager with Slack notifications - config/alertmanager/alertmanager.yml: route, slack-default and null receivers - config/prometheus.yml: alerting.alertmanagers -> alertmanager:9093 - docker-compose.prod.yml: alertmanager service (port 9093) --- config/alertmanager/alertmanager.yml | 24 ++++++++++++++++++++++++ config/prometheus.yml | 5 +++++ docker-compose.prod.yml | 20 ++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 config/alertmanager/alertmanager.yml diff --git a/config/alertmanager/alertmanager.yml b/config/alertmanager/alertmanager.yml new file mode 100644 index 000000000..e24e26ec3 --- /dev/null +++ b/config/alertmanager/alertmanager.yml @@ -0,0 +1,24 @@ +# Alertmanager config for Veza +# For Slack: override this file with your SLACK_WEBHOOK_URL in api_url +global: + resolve_timeout: 5m + +route: + receiver: 'null' + group_by: ['alertname', 'job'] + group_wait: 30s + group_interval: 5m + repeat_interval: 4h + +receivers: + - name: 'slack-default' + slack_configs: + - api_url: '${SLACK_WEBHOOK_URL}' + channel: '#alerts' + send_resolved: true + title: '{{ .Status | toUpper }}: {{ .GroupLabels.alertname }}' + text: '{{ range .Alerts }}{{ .Annotations.description }}{{ end }}' + + - name: 'null' + # Default: alerts received but not sent. Set route.receiver to slack-default + # and SLACK_WEBHOOK_URL env when Slack is configured. diff --git a/config/prometheus.yml b/config/prometheus.yml index f3a7cc898..811fbcd68 100644 --- a/config/prometheus.yml +++ b/config/prometheus.yml @@ -2,6 +2,11 @@ global: scrape_interval: 15s evaluation_interval: 15s +alerting: + alertmanagers: + - static_configs: + - targets: ['alertmanager:9093'] + rule_files: - "prometheus/alert_rules.yml" diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 7cc8c27bb..6bb9088f8 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -337,6 +337,26 @@ services: networks: - veza-network + # ============================================================================ + # MONITORING - Alertmanager + # Set SLACK_WEBHOOK_URL for Slack notifications. Works with Prometheus. + # ============================================================================ + alertmanager: + image: prom/alertmanager:v0.26.0 + container_name: veza_alertmanager + restart: unless-stopped + ports: + - "9093:9093" + volumes: + - ./config/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro + command: + - '--config.file=/etc/alertmanager/alertmanager.yml' + - '--storage.path=/alertmanager' + environment: + - SLACK_WEBHOOK_URL=${SLACK_WEBHOOK_URL:-} + networks: + - veza-network + web-blue: build: context: ./apps/web