Отключить оповещения прометея через 10 минут - PullRequest
1 голос
/ 21 апреля 2019

У меня есть кластер kubernetes, и для мониторинга и оповещений я использую Prometheus.Менеджер предупреждений Prometheus продолжает повторять предупреждения, пока они не станут активными.Я хочу настроить свой менеджер оповещений так, чтобы он отправлял оповещение только один раз, и повторял оповещение только в случае изменения состояния оповещения

Я пытался генерировать оповещения только для определенного времени, как указано ниже

(kube_pod_container_status_restarts_total> 3) * ((time ()% 86400/3600> bool 3) == bool (time ()% 86400/3600

, но это не сработалодля меня

Конфигурация сервера Prometheus выглядит следующим образом:

prometheus-server.yml

alert: PodRestartAlert
        expr: kube_pod_container_status_restarts_total >3
        for: 5m
        labels:
          severity:
        annotations:
          description: ""
          summary: 'The pods that are restarted more than 3 times'

Конфигурация Alertmanager выглядит следующим образом:

global:
      slack_api_url: "http://"
    receivers:
    - name: default-receiver
      slack_configs:
      - channel: '#abc'
        text: Prometheus Alert generated
    route:
      group_by:
      - alertname
      - datacenter
      - app
      group_interval: 5m
      receiver: default-receiver
      repeat_interval: 0

Я пытаюсь добиться чего-то, как показано ниже:

Если на начальном этапе имеется 10 модулей, которые были перезапущены более 3 раз, то следует сбросить предупреждение только один раз для слабины

Если через день или два число перезапущенных модулей увеличится до 20только тогда, когда менеджер предупреждений должен выдать предупреждение, чтобы оно ослабло, тоже только один раз

Любые предложения о том, что я могу попробовать или изменить, будут очень полезны

Заранее спасибо!

1 Ответ

0 голосов
/ 24 апреля 2019

Вы можете использовать slack_configs.title для создания универсального сообщения, а их slack_configs.text - для диапазона при срабатывании / разрешенных оповещениях, чтобы вы могли получать несколько оповещений одного типа в одном сообщении Slack.

Кроме того, обязательно установите slack_configs.send_resolved: true, чтобы получать уведомления о разрешенных оповещениях.

например:.

alertmanager:
  config:
    global:
      resolve_timeout: 5m
    route:
      group_by:
        - alertname
        - datacenter
        - app
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      receiver: 'default-receiver'
    receivers:
    - name: 'default-receiver'
      slack_configs:
      - channel: '#abc'
        send_resolved: true
        title: '[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] Monitoring Event Notification'
        text: |-
          {{ range .Alerts }}
            *Alert:* {{ .Labels.alertname }} - `{{ .Labels.severity }}`
            *Description:* {{ .Annotations.summary }}
            *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:> *Runbook:* <{{ .Annotations.runbook_url }}|:spiral_note_pad:>
            *Details:*
            {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
            {{ end }}
          {{ end }}

Вышеприведенный пример также распространяется на .Labels.SortedPairs, создавая полный раздел " Details: " со всем, что связано с сигналом тревоги.

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


Дополнительная литература:

...