Проверка работы локального алертинга

Проверка работы локального алертинга в кластере клиентском или кластере управления может быть проведена, например, с помощью webhook, который записывает входящие сообщения в логи контейнера:

  1. Загрузить в кластер манифесты объектов Deployment, Service с помощью импорта манифестов.

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
  1. Подготовить ShturvalServicePatch для применения к спецификации (SSC) Компонента управления модуля мониторинга (shturval-metrics-collector), где задать требуемую конфигурацию в alertmanager.

Пример ShturvalServicePatch:

apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: metrics-collector-alertmanager
spec:
  shturvalServiceConfigName: shturval-metrics-collector
  customvalues: 
    alertmanager:
      enabled: true
      config:
        receivers:
          - name: blackhole
          - name: demo-webhook
            webhook_configs:
              - max_alerts: 5
                send_resolved: false
                url: http://demo-webhook.monitoring.svc/webhook
        route:
          routes:
            - matchers:
              - app = "demo-webhook"
              receiver: demo-webhook
  1. В кластере загрузить с помощью импорта манифестов подготовленный ShturvalServicePatch.
  2. Загрузить в кластер манифест объекта VMRule с помощью импорта манифестов.

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

VMRule кластера управления:

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
  labels:
    cluster: clustername
    monitoringid: "0"
    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. В неймспейсе monitoring кластера перейти к просмотру пода с именем demo-webhook; открыть окно просмотра логов контейнера (рисунок 17). В логах будут сообщения сработавших алертах в кластере (рисунок 18).

Рисунок 17 ‒ Просмотр пода с именем demo-webhook

Рисунок 18 ‒ Просмотр логов контейнера