1

我不知道如何运行 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

4

1 回答 1

0

您的alertmanager.yml文件仅包含应该Pod使用ConfigMap或安装到警报管理器的警报管理器配置Secret(这取决于您如何部署警报管理器)。

我假设您已经运行了 Alertmanager 并且只想修改其配置。
(如果您没有部署 Alertmanager,您可以使用例如 helm: helm-alertmanager轻松安装它。)


我将描述如何使用示例修改警报管理器配置。

首先,您需要找到ConfigMapAlertmanager 配置所在的位置。

### 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
...

在上面的示例中,我们可以看到配置位于ConfigMapnamed中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我们可以使用respondersfield 而不是teams. 您可以在此处找到更多信息。

于 2021-02-18T10:51:18.693 回答