我不知道如何运行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。有什么建议吗?
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
您的alertmanager.yml
文件只包含应该使用ConfigMap
或Secret
挂载到AlertmanagerPod
的Alertmanager配置(这取决于您如何部署Alertmanager)。
我假设您已经运行了Alertmanager,只是想修改它的配置。
(如果你没有部署Alertmanager,你可以很容易地安装它,例如helm: helm- Alertmanager)
我将通过一个示例描述如何修改alertmanager配置。
首先,您需要找到Alertmanager配置所在的ConfigMap
。
### 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
。你可以在这里找到更多信息。