Monitoring 对普罗米修斯发出警报,但不对Alertmanager发出警报

Monitoring 对普罗米修斯发出警报,但不对Alertmanager发出警报,monitoring,prometheus,microsoft-teams,prometheus-alertmanager,Monitoring,Prometheus,Microsoft Teams,Prometheus Alertmanager,我似乎不明白为什么Alertmanager没有收到普罗米修斯的警报。我希望能在这一挑战上得到迅速的帮助。我对使用普罗米修斯和Alertmanager相当陌生。我正在使用MSTeam的webhook从alertmanager推送通知 Alertmanager.yml global: resolve_timeout: 5m route: group_by: ['critical','severity'] group_wait: 10s group_interval: 10s

我似乎不明白为什么Alertmanager没有收到普罗米修斯的警报。我希望能在这一挑战上得到迅速的帮助。我对使用普罗米修斯和Alertmanager相当陌生。我正在使用MSTeam的webhook从alertmanager推送通知

Alertmanager.yml

global:
  resolve_timeout: 5m


route:
  group_by: ['critical','severity']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1h
  receiver: 'alert_channel'


receivers:
- name: 'alert_channel'
  webhook_configs:
  - url: 'http://localhost:2000/alert_channel'
    send_resolved: true
普罗米修斯.yml-(只是其中的一部分)

警报规则

组:
-名称:警报规则
规则:
-警报:ServiceDown
expr:up==0
时间:100万
标签:
严重性:“严重”
注释:
小结:“服务{{$labels.Service}}关闭!”
描述:“{$labels.job}的{$labels.service}已关闭超过1分钟。”
-警报:HostOutOfMemory
expr:node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes*100<25
时间:5米
标签:
严重性:警告
注释:
摘要:“主机内存不足(实例{{$labels.instance}})”
描述:“节点内存已满(<25%左)\n值={{$VALUE}}\n标签:{{$LABELS}”
-警报:HostOutOfDiskSpace
expr:(node_filesystem_avail_bytes{mountpoint=“/”}*100)/node_filesystem_size_bytes{mountpoint=“/”}<40
适用时间:1秒
标签:
严重性:警告
注释:
摘要:“主机磁盘空间不足(实例{{$labels.instance}})”
描述:“磁盘几乎已满(<40%剩余)\n值={{$VALUE}}\n标签:{{$LABELS}”
普罗米修斯警报

但我在alertmanager上看不到这些警报


我现在没有主意了。求你了,我需要帮助。我从上周就开始使用此功能。

您的Alertmanager配置有错误
group_by
需要一组标签名称,从我看到的
critical
是一个标签值,而不是名称。因此,只需删除
critical
,您就可以开始了

也看看这篇博文,很有帮助


编辑1

如果您希望接收器
alert\u通道
仅接收严重性
严重性
的警报,则必须创建一个路由并具有
匹配
属性

大致如下:

route:
  group_by: ['...']  # good if very low volum
  group_wait: 15s
  group_interval: 5m
  repeat_interval: 1h
  routes:
    - match:
        - severity: critical
      receiver: alert_channel

编辑2

如果这不起作用,请尝试以下方法:

route:
  group_by: ['...']
  group_wait: 15s
  group_interval: 5m
  repeat_interval: 1h
  receiver: alert_channel

这应该行得通。检查你的普罗米修斯日志,看看你是否在那里找到提示

考虑在你的日志中添加一些规则(正在触发)question@trallnag谢谢你的关注。我已经包括了普罗米修斯和下面的.yml规则的屏幕截图。我尝试了你的建议,但仍然没有看到alertmanager上的警报。只显示“未找到警报组”。检查普罗米修斯/Alertmanager上的日志,并将配置更改为编辑2中的配置。这对我来说就像编辑2中一样有效,唯一的区别是我得到了单引号接收器的名称:“警报通道”
groups:
- name: alert_rules
  rules:
  - alert: ServiceDown
    expr: up == 0
    for: 1m
    labels:
      severity: "critical"
    annotations:
      summary: "Service {{ $labels.service }} down!"
      description: "{{ $labels.service }} of job {{ $labels.job }} has been down for more than 1 minute."


  - alert: HostOutOfMemory
    expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 25
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "Host out of memory (instance {{ $labels.instance }})"
      description: "Node memory is filling up (< 25% left)\n  VALUE = {{ $value }}\n  LABELS: {{ $labels }}"


  - alert: HostOutOfDiskSpace
    expr: (node_filesystem_avail_bytes{mountpoint="/"}  * 100) / node_filesystem_size_bytes{mountpoint="/"} < 40
    for: 1s
    labels:
      severity: warning
    annotations:
      summary: "Host out of disk space (instance {{ $labels.instance }})"
      description: "Disk is almost full (< 40% left)\n  VALUE = {{ $value }}\n  LABELS: {{ $labels }}"
route:
  group_by: ['...']  # good if very low volum
  group_wait: 15s
  group_interval: 5m
  repeat_interval: 1h
  routes:
    - match:
        - severity: critical
      receiver: alert_channel
route:
  group_by: ['...']
  group_wait: 15s
  group_interval: 5m
  repeat_interval: 1h
  receiver: alert_channel