Prometheus Node Critical 级别告警配置指南

在使用 Prometheus 监控系统时,合理配置 Critical 级别的告警规则对于及时发现和处理严重问题至关重要。本文将详细介绍一套针对 Node 节点的 Critical 级别告警配置,包括告警规则的解释、配置方法以及最佳实践。

什么是 Critical 级别告警?

Critical 级别告警代表最高优先级的告警,通常用于指示可能导致服务中断或严重影响系统性能的问题。这些告警需要立即引起关注并采取行动。

Node Critical 告警规则

以下是一套针对 Node 节点的 Critical 级别告警规则:

# Critical 级别告警

- alert: NodeDown
  expr: up{job="node-exporter"} == 0
  for: 2m
  labels:
    severity: critical
  annotations:
    summary: "Node {{ $labels.instance }} is down"
    description: "Node {{ $labels.instance }} has been down for more than 2 minutes"

- alert: NodeCPUUsageCritical
  expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 95
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "Critical CPU usage on {{ $labels.instance }}"
    description: "CPU usage is above 95% on node {{ $labels.instance }} for 5 minutes"

- alert: NodeMemoryUsageCritical
  expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 > 95
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "Critical memory usage on {{ $labels.instance }}"
    description: "Memory usage is above 95% on node {{ $labels.instance }} for 5 minutes"

- alert: NodeDiskSpaceCritical
  expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100) < 5
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "Critical disk space on {{ $labels.instance }}"
    description: "Disk space usage is above 95% on node {{ $labels.instance }} for 5 minutes"

- alert: NodeRAIDDegraded
  expr: node_md_disks_required - ignoring(state) (node_md_disks{state="active"}) > 0
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "RAID array degraded on {{ $labels.instance }}"
    description: "RAID array {{ $labels.device }} on {{ $labels.instance }} is in degraded state"

- alert: NodeFileDescriptorsCritical
  expr: node_filefd_allocated / node_filefd_maximum * 100 > 95
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "File descriptors critical on {{ $labels.instance }}"
    description: "More than 95% of file descriptors are used on {{ $labels.instance }}"

- alert: NodeInodeCritical
  expr: node_filesystem_files_free{mountpoint ="/"} / node_filesystem_files{mountpoint ="/"} * 100 < 5
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "Inodes critical on {{ $labels.instance }}"
    description: "Less than 5% inodes free on {{ $labels.instance }}"

- alert: NodeOOMKillerExecuting
  expr: increase(node_vmstat_oom_kill[5m]) > 0
  for: 0m
  labels:
    severity: critical
  annotations:
    summary: "OOM killer executed on {{ $labels.instance }}"
    description: "OOM killer executed on {{ $labels.instance }}"

- alert: NodeHighCPUIOWait
  expr: avg by(instance) (rate(node_cpu_seconds_total{mode="iowait"}[5m])) * 100 > 50
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "High CPU IOWait on {{ $labels.instance }}"
    description: "CPU IOWait is over 50% on {{ $labels.instance }} for 5 minutes"

- alert: NodeNetworkInterfaceDown
  expr: node_network_up == 0
  for: 2m
  labels:
    severity: critical
  annotations:
    summary: "Network interface down on {{ $labels.instance }}"
    description: "Network interface {{ $labels.device }} is down on {{ $labels.instance }}"

告警规则解释

  1. NodeDown: 检测节点是否宕机。如果 node-exporter 无法访问超过 2 分钟,触发告警。

  2. NodeCPUUsageCritical: 监控 CPU 使用率。如果 CPU 使用率超过 95% 持续 5 分钟,触发告警。

  3. NodeMemoryUsageCritical: 监控内存使用率。如果内存使用率超过 95% 持续 5 分钟,触发告警。

  4. NodeDiskSpaceCritical: 监控磁盘空间。如果根分区可用空间低于 5% 持续 5 分钟,触发告警。

  5. NodeRAIDDegraded: 检测 RAID 阵列状态。如果 RAID 阵列处于降级状态超过 5 分钟,触发告警。

  6. NodeFileDescriptorsCritical: 监控文件描述符使用情况。如果使用率超过 95% 持续 5 分钟,触发告警。

  7. NodeInodeCritical: 监控 inode 使用情况。如果可用 inode 低于 5% 持续 5 分钟,触发告警。

  8. NodeOOMKillerExecuting: 检测 OOM Killer 是否执行。如果在过去 5 分钟内 OOM Killer 被触发,立即告警。

  9. NodeHighCPUIOWait: 监控 CPU I/O 等待时间。如果 I/O 等待时间超过 50% 持续 5 分钟,触发告警。

  10. NodeNetworkInterfaceDown: 检测网络接口状态。如果任何网络接口处于 down 状态超过 2 分钟,触发告警。

配置方法

  1. 将上述告警规则保存为 YAML 文件,例如 node_critical_alerts.yml

  2. 在 Prometheus 配置文件中引用该规则文件:

    rule_files:
      - "node_critical_alerts.yml"
    
  3. 重启 Prometheus 服务使配置生效。

最佳实践

  1. 定期审查: 定期审查告警规则,确保阈值和持续时间设置合理。

  2. 避免误报: 适当调整阈值和持续时间,避免频繁的误报。

  3. 分级告警: 除了 Critical 级别,还应配置 Warning 级别的告警作为预警。

  4. 告警通知: 配置合适的通知渠道,确保关键人员能及时收到告警。

  5. 文档化: 为每个告警规则编写清晰的处理文档,包括可能的原因和解决步骤。

  6. 测试: 定期测试告警系统,确保告警能正常触发和发送。

  7. 持续优化: 根据实际运维经验不断优化告警规则和阈值。

通过合理配置和管理这些 Critical 级别的告警,可以大大提高系统的可靠性和运维效率。记住,告警系统的目标是帮助你及时发现和解决问题,而不是成为额外的负担。持续优化和调整是保持告警系统有效性的关键。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ivwdcwso

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值