#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
. Вы можете найти более подробную информацию здесь.