Webhook

Webhook используется для отправки сообщений в сервисы агрегации уведомлений, service-desk, task-manager.

  • Имя пользователя (необязательное поле. Используется для авторизации в паре с паролем. Не требуется при использовании Bearer-токена.);
  • Пароль (необязательное поле. Используется для авторизации в паре с именем пользователя. Не требуется при использовании Bearer-токена.);
  • Bearer-токен (необязательное поле. Используется для авторизации. Не требуется при использовании имени пользователя и пароля);
  • URL-прокси;
  • Отправлять решенные: инициирует отправку сообщения о том, что оповещение перестало быть актуальным. По умолчанию: да;
  • Максимальное количество оповещений, отправляемых в одном сообщении webhook: Максимальное количество предупреждений, отправляемых на одно сообщение веб-перехватчика. При значении 0 - включаются все оповещения;
  • URL-адрес (обязательное поле): эндпоинт для отправки HTTP-запросов;
  • Использовать TLS: да/нет (по умолчанию нет); При необходимости настроить безопасное соединение дополнительно необходимо ввести:
  • Имя сервера (обязательное поле);
  • Файл сертификата УЦ (обязательное поле) CAFile Файл сертификата удостоверяющего центра в формате base64;
  • Файл сертификата клиента (обязательное поле) Файл сертификата клиента в формате base64;
  • Файл ключа клиента (обязательное поле) Файл ключа клиента в формате base64;
  • Нужно ли отключить проверку сертификата (по умолчанию нет);
Обратите внимание! Файл сертификата должен содержать: ``` ----BEGIN CERTIFICATE---- и ----END CERTIFICATE---- ```

По завершении настройки получателя необходимо настроить, какие оповещения будут отправляться по этому каналу. Для этого в разделе Кластер/Оповещения/Маршруты настройте отправку оповещений по этому каналу. При необходимости выберите лейблы уведомлений, которые будут служить фильтром для отправки по заданному каналу.

Пример настройки webhook

  1. Загрузите в кластер управления манифесты объектов Deployment, Service, VMRule с помощью импорта манифестов.
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-webhook
  namespace: monitoring
  labels:
    app: demo-webhook
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-webhook
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: demo-webhook
    spec:
      terminationGracePeriodSeconds: 30
      automountServiceAccountToken: false
      containers:
      - name: demo-webhook
        image: quay.io/mgoerens/demo-webhook-receiver-alertmanager:0.0.1
        imagePullPolicy: IfNotPresent
        env:
        - name: PORT
          value: "8080"
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8080
        resources:
          limits:
            cpu: 10m
            memory: 30Mi
          requests:
            cpu: 10m
            memory: 30Mi
        securityContext:
          capabilities:
            drop:
              - ALL
          allowPrivilegeEscalation: false
Service
apiVersion: v1
kind: Service
metadata:
  name: demo-webhook
  namespace: monitoring
  labels:
    app: demo-webhook
spec:
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
    name: http
  selector:
    app: demo-webhook
VMRule
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
  labels:
    app: demo-webhook
    role: user
  name: example-alert
  namespace: victoria-metrics
spec:
  groups:
    - concurrency: 1
      interval: 1m
      labels:
        app: demo-webhook
        ruletype: alert
      name: example
      rules:
        - alert: ExampleAlert
          expr: vector(1)
      type: prometheus
  1. В кластере, для которого необходимо настроить алертинг, перейдите в раздел Кластер/Оповещения/Получатели, создайте получателя с типом webhook. В поле URL-адрес введите значение: http://demo-webhook.monitoring.svc/webhook. В качестве имени получателя укажите demo-webhook. Остальные поля оставьте незаполненными. Сохраните внесенные изменения.

  2. В разделе Кластер/Оповещения/Маршруты настройте отправку оповещений по этому каналу. При необходимости выберите лейблы уведомлений, которые будут служить фильтром для отправки по заданному каналу.

  3. В неймспейсе monitoring кластера управления перейдите к просмотру пода с именем demo-webhook. Откройте окно просмотра логов контейнера. В случае корректной настройки в логах будут сообщения сработавших алертов в кластере.

Скриншот

webhooklocalalert2

webhooklocalalert

×