Сбой Alertmanager из-за немаршалированных ошибок: строка 19: сопоставители полей не найдены в типе config.plain

Я пытаюсь добавить настраиваемую конфигурацию маршрутизации предупреждений в свой диспетчер предупреждений, развернутый как часть kube-prometheus-stack. Но модуль оператора prometheus при попытке сгенерировать карту конфигурации alertmanager завершился неудачно из-за следующей ошибки:

level=error ts=2021-05-31T06:29:38.883470881Z caller=klog.go:96 component=k8s_client_runtime func=ErrorDepth msg="Sync \"infra-services/prometheus-operator-kube-p-alertmanager\" failed: provision alertmanager configuration: base config from Secret could not be parsed: yaml: unmarshal errors:\n line 19: field matchers not found in type config.plain"

Я также проверил то же самое, используя amtool внутри контейнера alertmanager, который дает ту же ошибку. Вот мой файл alertmanager.yml:

global:
  resolve_timeout: 5m
  slack_api_url: https://hooks.slack.com/services/xxxxxx/yyyyy/zzzzzzzzzzz
receivers:
- name: slack-notifications
  slack_configs:
  - channel: '#alerts'
    send_resolved: true
    text: '{{ template "slack.myorg.text" . }}'
- name: blackhole-receiver
route:
  group_by:
  - alertname
  group_interval: 5m
  group_wait: 30s
  receiver: blackhole-receiver
  repeat_interval: 12h
  routes:
  - matchers:
    - severity=~"warning|critical"
    receiver: slack-notifications
templates:
- /etc/alertmanager/config/*.tmpl

Я подписался на https://prometheus.io/docs/alerting/latest/configuration/ и https://github.com/prometheus/alertmanager/blob/master/doc/examples/simple.yml, чтобы написать мою простую конфигурацию alertmanager.


person Tapan Halani    schedule 31.05.2021    source источник


Ответы (1)


Попробуйте поменять с:

  routes:
  - matchers:
    - severity=~"warning|critical"
    receiver: slack-notifications

To:

  routes:
    - match_re:
        severity: "warning|critical"
      receiver: slack-notifications
person Marcelo Ávila de Oliveira    schedule 31.05.2021
comment
Это определенно решило проблему для меня мгновенно. Но я обнаружил, что match_re устарел согласно prometheus.io/docs/alerting/latest/ конфигурация / # маршрут. Насколько безопасно его использовать, поскольку в будущих версиях alertmanager это поле может быть удалено? Кроме того, есть идеи, почему сопоставления не разрешены или что не так с предыдущей конфигурацией? - person Tapan Halani; 01.06.2021
comment
Хороший вопрос :-( - person Marcelo Ávila de Oliveira; 01.06.2021