自动化警报管理器接收器
automation alertmanager receivers
下午好,也许有人从自定义 pod 注释中发现了在 alertmanager 中自动填充接收器?
我的意思是,我希望 alermanager 从 pod 注释中获取接收器,而不是用手来做。例如,如果命名空间是 _,那么接收者是从自定义获取的。io/owner(例如)。
我的意思是它看起来像吗
- name: smthg
email_configs:
- to: "__meta_kubernetes_pod_annotation_custom_io_owner"
提前致谢
使用标签引导电子邮件通知
Alertmanager 的一个便利功能是几乎所有通知字段都是可模板化的。这可用于根据标签路由电子邮件。
如果您直接向客户发送电子邮件通知,则不必在 Alertmanager 中为每个客户创建路由和接收者会很有用。无论您是在您出租的机器上提供警报的托管公司,还是公司内部共享服务的提供商,这都非常有用。
我假设您已经有了有效的电子邮件通知设置,例如之前在 Gmail 中显示的设置。
我们从普罗米修斯开始。我们需要将目标电子邮件地址放入警报标签中。假设您构建了如下所示的时间序列:
mymetric{job="myjob",email_to="foo@example.org",instance="host1"}
mymetric{job="myjob",email_to="bar@example.org",instance="host2"}
然后您可以编写一个警报来传播此 email_to 标签,例如:
groups:
- name: test.rules
rules:
- alert: MyAlert
expr: mymetric > 1
现在在 Alertmanager 中我们需要做两件事。我们需要确保每个唯一的电子邮件地址通过分组获得自己的通知,我们需要先发送到该电子邮件地址。
route:
group_by: [email_to]
receiver: email_router
receivers:
- name: email_router
email_configs:
- to: "{{ .GroupLabels.email_to }}"
from: alerts@example.org
# Add whatever other settings you need to talk to your SMTP server
headers:
subject: "You have {{ .Alerts.Firing | len }} firing alerts"
html: |
Hi {{ .GroupLabels.email_to }},
<p>
You have the following firing alerts:
<ul>
{{ range .Alerts }}
<li>{{.Labels.alertname}} on {{ .Labels.instance }}</li>
{{ end }}
</ul>
</p>
由于 email_to 在 group_by 中,我们可以通过 .GroupLabels 访问它。相比之下,由于具有许多不同的警报名称和实例标签的警报可能在这个通知中,我们必须遍历它们以列出所有警报。
https://www.robustperception.io/using-labels-to-direct-email-notifications
下午好,也许有人从自定义 pod 注释中发现了在 alertmanager 中自动填充接收器?
我的意思是,我希望 alermanager 从 pod 注释中获取接收器,而不是用手来做。例如,如果命名空间是 _,那么接收者是从自定义获取的。io/owner(例如)。
我的意思是它看起来像吗
- name: smthg
email_configs:
- to: "__meta_kubernetes_pod_annotation_custom_io_owner"
提前致谢
使用标签引导电子邮件通知 Alertmanager 的一个便利功能是几乎所有通知字段都是可模板化的。这可用于根据标签路由电子邮件。
如果您直接向客户发送电子邮件通知,则不必在 Alertmanager 中为每个客户创建路由和接收者会很有用。无论您是在您出租的机器上提供警报的托管公司,还是公司内部共享服务的提供商,这都非常有用。
我假设您已经有了有效的电子邮件通知设置,例如之前在 Gmail 中显示的设置。
我们从普罗米修斯开始。我们需要将目标电子邮件地址放入警报标签中。假设您构建了如下所示的时间序列:
mymetric{job="myjob",email_to="foo@example.org",instance="host1"}
mymetric{job="myjob",email_to="bar@example.org",instance="host2"}
然后您可以编写一个警报来传播此 email_to 标签,例如:
groups:
- name: test.rules
rules:
- alert: MyAlert
expr: mymetric > 1
现在在 Alertmanager 中我们需要做两件事。我们需要确保每个唯一的电子邮件地址通过分组获得自己的通知,我们需要先发送到该电子邮件地址。
route:
group_by: [email_to]
receiver: email_router
receivers:
- name: email_router
email_configs:
- to: "{{ .GroupLabels.email_to }}"
from: alerts@example.org
# Add whatever other settings you need to talk to your SMTP server
headers:
subject: "You have {{ .Alerts.Firing | len }} firing alerts"
html: |
Hi {{ .GroupLabels.email_to }},
<p>
You have the following firing alerts:
<ul>
{{ range .Alerts }}
<li>{{.Labels.alertname}} on {{ .Labels.instance }}</li>
{{ end }}
</ul>
</p>
由于 email_to 在 group_by 中,我们可以通过 .GroupLabels 访问它。相比之下,由于具有许多不同的警报名称和实例标签的警报可能在这个通知中,我们必须遍历它们以列出所有警报。
https://www.robustperception.io/using-labels-to-direct-email-notifications