AlertManager не пересылает предупреждения получателю веб-перехватчика

Мы настроили Prometheus в кластере кубернетов с помощью PrometheusOperator. Мы пытаемся настроить AlertManager с помощью настраиваемого ресурса AlertManagerConfig. Мы попытались создать маршрут оповещения, который отображается на приемник веб-перехватчика, а затем запускает тестовое оповещение. Похоже, что предупреждение было перехвачено AlertManager, но оно не пересылается на конечную точку веб-перехватчика. Журналы модуля AlertManager также не печатают журналы, касающиеся уведомлений, отправляемых получателям для предупреждения. Делимся тестовой конфигурацией ниже:

apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
  name: discord-config
spec:
  receivers:
  - name: discord
    webhookConfigs:
    - url: '<webhook-url>'
      sendResolved: true
  route:
    groupBy: ['job']
    groupWait: 15s
    groupInterval: 15s
    repeatInterval: 15s
    receiver: 'discord'
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: test-rules
spec:
  groups:
  - name: test-rule-group
    rules:
    - alert: TestAlert
      expr: vector(1)
      labels: 
        severity: medium  
      annotations:
        description: "This is a reciever test for webhook alert"
        summary: "This is a dummy summary"

Есть ли что-нибудь еще, о чем нужно позаботиться, чтобы получатели начали получать предупреждения?


person aaruja    schedule 21.05.2021    source источник


Ответы (1)


Мне удалось найти основную причину проблемы. собственно первопричины. Было две проблемы:

  1. Я использовал webhook для интеграции с каналом Discord, что, как я позже узнал, непросто. Средний уровень необходим для анализа и пересылки предупреждений веб-перехватчиков в Discord в совместимом шаблоне. Хорошее решение уже упоминается в документации Prometheus. в приложение alertmanager-discord. Я использовал для него образ докера, чтобы создать развертывание и службу, которая связала alertmanager с Discord.

  2. Оператор добавлял дополнительный namepsace сопоставитель меток в самый верхний маршрут предупреждений. Поэтому я добавил такой же ярлык к созданным мной предупреждениям. Я использовал этот редактор дерева маршрутов R, чтобы визуализировать маршруты и убедиться, что данный набор меток соответствует маршруту.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: alertmanager-discord
spec:
  selector:
    matchLabels:
      app: alertmanager-discord
  replicas: 1
  template:
    metadata:
      labels:
        app: alertmanager-discord
    spec:
      containers:
      - name: alertmanager-discord
        image: benjojo/alertmanager-discord
        resources:
          limits:
            memory: "128Mi"
            cpu: "500m"
        ports:
        - containerPort: 9094
        env:
          - name: DISCORD_WEBHOOK
            value: {{ .Values.webhookURL }}
---
apiVersion: v1
kind: Service
metadata:
  name: alertmanager-discord
spec:
  selector:
    app: alertmanager-discord
  ports:
  - port: 9094
    targetPort: 9094
  type: ClusterIP
---
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
  name: alertmanager
spec:
  receivers:
  - name: discord
    webhookConfigs:
    - url: 'http://alertmanager-discord:9094'
      sendResolved: true
.
.
.
person aaruja    schedule 24.05.2021