如何在k8s分支集群上运行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。有什么建议吗?

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文件只包含应该使用ConfigMapSecret挂载到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。你可以在这里找到更多信息。

最新更新