как запустить alertmanager в кластере ветки k8s

Я понятия не имею, как запустить alertmanager.yml для интеграции с opsgenie. какую команду я должен использовать в терминале, чтобы запустить его? Я старался k create -f alertmanager.yml , но показывает: error: error validating "alertmanager.yml": error validating data: [apiVersion not set, kind not set]; if you choose to ignore these errors, turn validation off with --validate=false

вот мой alertmanager.yml, есть предложения?

      global:
  resolve_timeout: 1m
  opsgenie_api_url: https://api.opsgenie.com/
  opsgenie_api_key: <my_opsgenie_key>
receivers:
  - opsgenie_configs:
    - teams: test_escalation
      priority: '{{ range .Alerts }}{{ if eq .Labels.severity "critical"}}P1{{else if eq .Labels.severity "warning"}}P2{{else if eq .Labels.severity "info"}}P3{{else}}P4{{end}}{{end}}'
    name: opsgenie
route:
  group_by: ['...']
  receiver: opsgenie
  repeat_interval: 5m

1 ответ

Ваш файл содержит только конфигурацию Alertmanager, которая должна быть подключена к alertmanager. Pod используя или Secret (это зависит от того, как вы развернули alertmanager).

Я предполагаю, что у вас уже запущен Alertmanager, и вы просто хотите изменить его конфигурацию.
(Если у вас не развернут Alertmanager, вы можете легко установить его, например, с помощью helm: helm-alertmanager.)


Я опишу, как вы можете изменить конфигурацию alertmanager на примере.

Сначала вам нужно найти, где находится конфигурация Alertmanager.

      ### kubectl describe pod <ALERTMANAGER POD NAME>

$ kubectl describe pod alertmanager-0
Name:         alertmanager-0
Namespace:    default
...
Containers:
  alertmanager:
    ...
    Mounts:
      /etc/alertmanager from config (rw)
...
Volumes:
  config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      alertmanager
    Optional:  false
...

В приведенном выше примере мы видим, что конфигурация находится в ConfigMap названный alertmanager.

Вы можете редактировать это Configmap:

      ### kubectl edit cm <CONFIGMAP NAME>

$ kubectl edit cm alertmanager

или вы можете заменить его, используя свой alertmanager.yml файл:

      ### kubectl delete cm <CONFIGMAP NAME> && kubectl create cm <CONFIGMAP NAME> --from-file alertmanager.yml

$ kubectl delete cm alertmanager && kubectl create cm alertmanager --from-file alertmanager.yml

Кроме того, я не знаю, какую версию Alertmanager вы используете, но похоже, что из v0.16.1 мы можем использовать responders поле вместо teams. Вы можете найти больше информации здесь .

Другие вопросы по тегам