# ======================================== # ALERTMANAGER CONFIGURATION # Enterprise Alert Routing # ======================================== global: smtp_smarthost: '${SMTP_HOST:-localhost:587}' smtp_from: '${SMTP_FROM:-alerts@mathplatform.com}' smtp_auth_username: '${SMTP_USER:-}' smtp_auth_password: '${SMTP_PASSWORD:-}' slack_api_url: '${SLACK_WEBHOOK_URL:-}' telegram_api_url: 'https://api.telegram.org' # Templates templates: - '/etc/alertmanager/templates/*.tmpl' # Inhibition rules inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'instance'] # Route tree troute: receiver: 'default-receiver' group_by: ['alertname', 'severity', 'instance'] group_wait: 10s group_interval: 5m repeat_interval: 4h routes: # Critical alerts - match: severity: critical receiver: 'critical-receiver' continue: true # Database alerts - match: job: postgres receiver: 'database-receiver' group_interval: 10m # Backend alerts - match: job: backend receiver: 'backend-receiver' group_interval: 5m # Receivers receivers: - name: 'default-receiver' slack_configs: - channel: '#alerts' title: 'Math Platform Alert' text: '{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}' send_resolved: true - name: 'critical-receiver' slack_configs: - channel: '#critical-alerts' title: 'CRITICAL: Math Platform' text: '{{ range .Alerts }}{{ .Annotations.description }}{{ end }}' send_resolved: true email_configs: - to: '${CRITICAL_EMAIL:-admin@mathplatform.com}' subject: 'CRITICAL Alert: {{ .GroupLabels.alertname }}' html: '{{ template "email.default.html" . }}' send_resolved: true telegram_configs: - bot_token: '${TELEGRAM_BOT_TOKEN}' chat_id: '${TELEGRAM_ADMIN_CHAT_ID}' message: '🔴 CRITICAL: {{ .GroupLabels.alertname }} - {{ range .Alerts }}{{ .Annotations.summary }}{{ end }}' send_resolved: true - name: 'database-receiver' slack_configs: - channel: '#database-alerts' title: 'Database Alert' text: '{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}' - name: 'backend-receiver' slack_configs: - channel: '#backend-alerts' title: 'Backend Alert' text: '{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}'