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

#kubernetes #prometheus #prometheus-alertmanager #opsgenie

#kubernetes #prometheus #prometheus-alertmanager #опсгение

Вопрос:

я понятия не имею, как запустить 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.yml файл содержит только конфигурацию Alertmanager, которая должна быть подключена к alertmanager Pod с помощью ConfigMap или Secret (это зависит от того, как вы развернули alertmanager).

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


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

Сначала вам нужно найти ConfigMap , где находится конфигурация 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 named alertmanager .

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

 ### kubectl edit cm <CONFIGMAP NAME>

$ kubectl edit cm alertmanager
 

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

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

$ kubectl delete cm alertmanager amp;amp; kubectl create cm alertmanager --from-file alertmanager.yml
 

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