当从我的 AlertManager 接收警报时,我正在努力创建自定义主题,我正在使用清单文件来完成此操作:
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: my-name
labels:
alertmanagerConfig: email
alertconfig: email-config
spec:
route:
groupBy:
- node
groupWait: 30s
groupInterval: 5m
repeatInterval: 12h
receiver: 'myReceiver'
receivers:
- name: 'Name'
emailConfigs:
- to: [email protected]
我已经读到我需要在 emailConfigs 选项卡下添加标题,但是当我这样做时:
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: my-name
labels:
alertmanagerConfig: email
alertconfig: email-config
spec:
route:
groupBy:
- node
groupWait: 30s
groupInterval: 5m
repeatInterval: 12h
receiver: 'myReceiver'
receivers:
- name: 'Name'
emailConfigs:
- to: [email protected]
headers:
- subject: "MyTestSubject"
或
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: my-name
labels:
alertmanagerConfig: email
alertconfig: email-config
spec:
route:
groupBy:
- node
groupWait: 30s
groupInterval: 5m
repeatInterval: 12h
receiver: 'myReceiver'
receivers:
- name: 'Name'
emailConfigs:
- to: [email protected]
headers:
subject: "MyTestSubject"
我收到以下错误:
要么:
com.coreos.monitoring.v1alpha1.AlertmanagerConfig.spec.receivers.emailConfigs.headers,ValidationError(AlertmanagerConfig.spec.receivers[0].emailConfigs[0].headers[0]):com 中缺少必填字段“key”。 coreos.monitoring.v1alpha1.AlertmanagerConfig.spec.receivers.emailConfigs.headers,ValidationError(AlertmanagerConfig.spec.receivers[0].emailConfigs[0].headers[0]):com.coreos.monitoring 中缺少必填字段“值” .v1alpha1.AlertmanagerConfig.spec.receivers.emailConfigs.headers];
或
错误:验证“alert-config.yaml”时出错:验证数据时出错:ValidationError(AlertmanagerConfig.spec.receivers[0].emailConfigs[0].headers):com.coreos.monitoring.v1alpha1.AlertmanagerConfig.spec 的类型无效.receivers.emailConfigs.headers:得到“地图”,期望“数组”
我检查了其他解决方案,每个人都这样做
标题:
主题:我的主题
但由于某种原因对我来说,它不起作用
我设法让它工作:
emailConfigs:
- to: myreceiver@mail
headers:
- key: subject
value: "Custom subject goes here"
干杯:)
嗨@Blackcat,来自这个示例我发现您可能需要使用 Catipal 'S' 作为标题下的主题,看起来我们需要使用首字母大写作为标题下的键,如下所述。
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: my-name
labels:
alertmanagerConfig: email
alertconfig: email-config
spec:
route:
groupBy:
- node
groupWait: 30s
groupInterval: 5m
repeatInterval: 12h
receiver: 'myReceiver'
receivers:
- name: 'Name'
emailConfigs:
- to: [email protected]
headers:
Subject: "MyTestSubject"
From: Me
To: You
欲了解更多详细信息,请查看此链接
要自定义主题,您必须将要调用的标签带到
route
字段下的 groupBy
树中。
我向您展示示例:
global:
resolve_timeout: 1m
receivers:
- name: prometheus-msteams
webhook_configs:
- url: "http://prometheus-msteams:2000/alertmanager"
send_resolved: true
- name: 'email'
email_configs:
- to: '[email protected]'
from: '[email protected]'
smarthost: smtp-relay-server:25
auth_username: ''
auth_identity: '[email protected]'
auth_password: ''
require_tls: false
send_resolved: true
headers:
From: [email protected]
Subject: '{{ if eq .Status "firing" }}[{{ .GroupLabels.environment }}] Alert - {{ .GroupLabels.servidor }} - {{ .GroupLabels.alertname }} {{ else if eq .Status "resolved" }}[{{ .GroupLabels.environment }}] Recovery - {{ .GroupLabels.servidor }} - {{ .GroupLabels.alertname }}{{end}}'
To: [email protected]
route:
group_interval: 1m
group_wait: 30s
repeat_interval: 168h
group_by: [job, alertname, servidor, environment]
receiver: "prometheus-msteams"
routes:
- receiver: "prometheus-msteams"
continue: true
- receiver: "email"
continue: true
如您所见,您可以在
Subject
中插入条件语句来自定义警报是否处于 firing 状态或 resolved。
我希望这有帮助。