Kubernetes AlertManager未将警报转发给webhook接收器
我们已经使用Prometheus操作符在kubernetes集群中设置了Prometheus。我们正在尝试使用AlertManagerConfig自定义资源配置AlertManager。我们尝试创建一个映射到webhook接收器的警报路由,然后触发一个测试警报。警报似乎已被AlertManager捕获,但未转发到webhook端点。AlertManager pod日志也不会打印任何关于发送给接收者的警报通知的日志。在下面共享测试配置:Kubernetes AlertManager未将警报转发给webhook接收器,kubernetes,webhooks,prometheus-alertmanager,prometheus-operator,Kubernetes,Webhooks,Prometheus Alertmanager,Prometheus Operator,我们已经使用Prometheus操作符在kubernetes集群中设置了Prometheus。我们正在尝试使用AlertManagerConfig自定义资源配置AlertManager。我们尝试创建一个映射到webhook接收器的警报路由,然后触发一个测试警报。警报似乎已被AlertManager捕获,但未转发到webhook端点。AlertManager pod日志也不会打印任何关于发送给接收者的警报通知的日志。在下面共享测试配置: apiVersion: monitoring.coreos.
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: discord-config
spec:
receivers:
- name: discord
webhookConfigs:
- url: '<webhook-url>'
sendResolved: true
route:
groupBy: ['job']
groupWait: 15s
groupInterval: 15s
repeatInterval: 15s
receiver: 'discord'
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: test-rules
spec:
groups:
- name: test-rule-group
rules:
- alert: TestAlert
expr: vector(1)
labels:
severity: medium
annotations:
description: "This is a reciever test for webhook alert"
summary: "This is a dummy summary"
apiVersion:monitoring.coreos.com/v1alpha1
种类:AlertmanagerConfig
元数据:
名称:discord配置
规格:
接收人:
-名称:迪斯科
WebHooks配置:
-url:“”
森德:对
路线:
groupBy:['job']
分组等待:15秒
分组间隔:15秒
重复间隔:15秒
接收者:“不和谐”
---
apiVersion:monitoring.coreos.com/v1
种类:普罗米修斯规则
元数据:
名称:测试规则
规格:
组:
-名称:测试规则组
规则:
-警报:TestAlert
表达式:向量(1)
标签:
严重程度:中等
注释:
描述:“这是webhook警报的接收器测试”
摘要:“这是一个虚拟摘要”
为了让接收者开始接收警报,还有什么需要注意的吗?我找到了问题的根本原因。实际上是根本原因。有两个问题:
名称标记匹配器。因此,我在创建的警报中添加了相同的标签。我使用这个R来可视化路线,并确保给定的标签集与路线匹配
apiVersion: apps/v1
kind: Deployment
metadata:
name: alertmanager-discord
spec:
selector:
matchLabels:
app: alertmanager-discord
replicas: 1
template:
metadata:
labels:
app: alertmanager-discord
spec:
containers:
- name: alertmanager-discord
image: benjojo/alertmanager-discord
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 9094
env:
- name: DISCORD_WEBHOOK
value: {{ .Values.webhookURL }}
---
apiVersion: v1
kind: Service
metadata:
name: alertmanager-discord
spec:
selector:
app: alertmanager-discord
ports:
- port: 9094
targetPort: 9094
type: ClusterIP
---
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: alertmanager
spec:
receivers:
- name: discord
webhookConfigs:
- url: 'http://alertmanager-discord:9094'
sendResolved: true
.
.
.