Kubernetes 从普罗米修斯舵图向斯莱克发送警报

Kubernetes 从普罗米修斯舵图向斯莱克发送警报,kubernetes,prometheus-alertmanager,helmfile,Kubernetes,Prometheus Alertmanager,Helmfile,我试图在普罗米修斯的库伯内特斯上创建警报,并将它们发送到一个空闲频道。为此,我使用了头盔图表(其中已经包括alertmanager)。由于我想使用自己的警报,我还创建了一个values.yml(如下所示),这是我的灵感来源。 如果我把普罗米修斯引向前方,我可以看到那里的警报从非活动状态变为待发状态,再到开火状态,但没有任何消息发送给slack。我很有信心我的alertmanager配置很好(因为我已经用另一个图表的一些预构建警报进行了测试,它们被发送到slack)。因此,我最好的猜测是,我以错误

我试图在普罗米修斯的库伯内特斯上创建警报,并将它们发送到一个空闲频道。为此,我使用了头盔图表(其中已经包括alertmanager)。由于我想使用自己的警报,我还创建了一个values.yml(如下所示),这是我的灵感来源。 如果我把普罗米修斯引向前方,我可以看到那里的警报从非活动状态变为待发状态,再到开火状态,但没有任何消息发送给slack。我很有信心我的alertmanager配置很好(因为我已经用另一个图表的一些预构建警报进行了测试,它们被发送到slack)。因此,我最好的猜测是,我以错误的方式添加了警报(在serverFiles部分),但我无法找到正确的方法。此外,alertmanager日志在我看来非常正常。有人知道我的问题来自哪里吗

---
serverFiles:
  alerting_rules.yml: 
    groups:
    - name: example
      rules:
      - alert: HighRequestLatency
        expr: sum(rate(container_network_receive_bytes_total{namespace="kube-logging"}[5m]))>20000
        for: 1m
        labels:
          severity: page
        annotations:
          summary: High request latency

alertmanager:
  persistentVolume:
    storageClass: default-hdd-retain
  ## Deploy alertmanager
  ##
  enabled: true

  ## Service account for Alertmanager to use.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  ##
  serviceAccount:
    create: true
    name: ""

  ## Configure pod disruption budgets for Alertmanager
  ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
  ## This configuration is immutable once created and will require the PDB to be deleted to be changed
  ## https://github.com/kubernetes/kubernetes/issues/45398
  ##
  podDisruptionBudget:
    enabled: false
    minAvailable: 1
    maxUnavailable: ""

  ## Alertmanager configuration directives
  ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
  ##      https://prometheus.io/webtools/alerting/routing-tree-editor/
  ##
  config:
    global:
      resolve_timeout: 5m
      slack_api_url: "I changed this url for the stack overflow question"
    route:
      group_by: ['job']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      #receiver: 'slack'
      routes:
      - match:
          alertname: DeadMansSwitch
        receiver: 'null'
      - match:
        receiver: 'slack'
        continue: true
    receivers:
    - name: 'null'
    - name: 'slack'
      slack_configs:
      - channel: 'alerts'
        send_resolved: false
        title: '[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] Monitoring Event Notification'
        text: >-
          {{ range .Alerts }}
            *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
            *Description:* {{ .Annotations.description }}
            *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:> *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
            *Details:*
            {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
            {{ end }}
          {{ end }}
´´´
---
服务器文件:
警报规则.yml:
组:
-名称:示例
规则:
-警报:HighRequestLatency
expr:sum(速率(容器、网络、接收字节总数{namespace=“kube logging”}[5m])>20000
时间:100万
标签:
严重性:第页
注释:
概要:高请求延迟
alertmanager:
持久卷:
storageClass:默认hdd保留
##部署alertmanager
##
已启用:true
##Alertmanager要使用的服务帐户。
##参考:https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
##
服务帐户:
创建:true
姓名:“
##为Alertmanager配置pod中断预算
##参考:https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-POD预算
##此配置在创建后是不可变的,需要删除PDB才能更改
## https://github.com/kubernetes/kubernetes/issues/45398
##
POD预算:
已启用:false
可利用量:1
maxUnavailable:“
##Alertmanager配置指令
##参考:https://prometheus.io/docs/alerting/configuration/#configuration-文件
##      https://prometheus.io/webtools/alerting/routing-tree-editor/
##
配置:
全球的:
解决超时:5米
slack_api_url:“我为堆栈溢出问题更改了此url”
路线:
组员:[“职务”]
分组等待:30秒
组间隔:5m
重复间隔:12小时
#接球员:“松懈”
路线:
-匹配:
alertname:DeadMansSwitch
接收者:“空”
-匹配:
接球员:“松懈”
继续:对
接收人:
-名称:“空”
-名称:“松弛”
slack\u配置:
-频道:“警报”
发送地址:false
标题:“[{.Status | toUpper}{{{if eq.Status“firing”}}:{{{.Alerts.firing | len}}}{{{end}]监视事件通知”
正文:>-
{{range.Alerts}
*警报:{{.Annotations.summary}-`{{.Labels.severity}`
*说明:{{.Annotations.Description}
*图表:**运行手册:*
*详情:*
{range.Labels.SortedPairs}}•*{{.Name}::`{.Value}`
{{end}
{{end}
´´´

所以我终于解决了这个问题。问题显然是,和掌舵图的工作方式有点不同。 因此,我不得不在alertmanagerFiles.alertmanager.yml中插入代码(从全局开始)