63 lines
2.0 KiB
YAML
63 lines
2.0 KiB
YAML
# =====================================================================
|
|
# AlertmanagerConfig — routing alert per severità
|
|
# Applica con: kubectl apply -f 05-alertmanager-config.yaml
|
|
#
|
|
# Richiede i Secret con le credenziali (webhook Slack, integration key
|
|
# PagerDuty) creati separatamente, es.:
|
|
#
|
|
# kubectl create secret generic alertmanager-slack \
|
|
# -n monitoring --from-literal=url='https://hooks.slack.com/services/XXX/YYY/ZZZ'
|
|
#
|
|
# kubectl create secret generic alertmanager-pagerduty \
|
|
# -n monitoring --from-literal=serviceKey='YOUR_PAGERDUTY_INTEGRATION_KEY'
|
|
# =====================================================================
|
|
|
|
apiVersion: monitoring.coreos.com/v1alpha1
|
|
kind: AlertmanagerConfig
|
|
metadata:
|
|
name: routing-config
|
|
namespace: monitoring
|
|
labels:
|
|
# deve matchare alertmanagerConfigSelector del chart
|
|
# (di default kube-prometheus-stack seleziona per release label)
|
|
release: kube-prometheus-stack
|
|
spec:
|
|
route:
|
|
groupBy: ["alertname", "namespace"]
|
|
groupWait: 30s
|
|
groupInterval: 5m
|
|
repeatInterval: 4h
|
|
receiver: "slack-default"
|
|
routes:
|
|
- matchers:
|
|
- name: severity
|
|
value: critical
|
|
matchType: "="
|
|
receiver: "pagerduty-critical"
|
|
continue: true # invia ANCHE a slack-default per visibilità
|
|
- matchers:
|
|
- name: severity
|
|
value: warning
|
|
matchType: "="
|
|
receiver: "slack-default"
|
|
|
|
receivers:
|
|
- name: "slack-default"
|
|
slackConfigs:
|
|
- apiURL:
|
|
name: alertmanager-slack
|
|
key: url
|
|
channel: "#alerts-k8s"
|
|
sendResolved: true
|
|
title: '{{ "{{" }} .CommonAnnotations.summary {{ "}}" }}'
|
|
text: '{{ "{{" }} .CommonAnnotations.description {{ "}}" }}'
|
|
|
|
- name: "pagerduty-critical"
|
|
pagerdutyConfigs:
|
|
- serviceKey:
|
|
name: alertmanager-pagerduty
|
|
key: serviceKey
|
|
severity: "critical"
|
|
description: '{{ "{{" }} .CommonAnnotations.summary {{ "}}" }}'
|
|
sendResolved: true
|