利用Prometheus Operator创建和应用自定义告警规则

利用Prometheus Operator创建和应用自定义告警规则

以Kubernetes为基础的监控体系里面,Prometheus Operator如果你不会用,那么你就out了,Prometheus Operator能够帮助咱们简化Prometheus 实例的部署与管理。

自定义告警规则是运维的关键所在,可以实现主动运维,让被动转变为主动,Operator 通过 PrometheusRule 这一自定义资源(CRD)来进行声明式地管理告警规则,也就实现了无需手动修改 Prometheus 配置文件。

1. 理解 PrometheusRule

PrometheusRule sh

PrometheusRule
是 Prometheus Operator 提供的核心 CRD 之一。它能够让用户以 Kubernetes 资源的形式定义一组 Alerting Rules 或 Recording Rules。Operator 会自动发现并加载这些规则到关联的 Prometheus 实例中。

2. 创建自定义告警规则

下面我就用一个典型的 PrometheusRule YAML 文件示例,方便大家更好的理解,这个示例是一个节点内存使用率过高的告警。

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: custom-node-alerts
  namespace: monitoring # 通常与 Prometheus 实例在同一命名空间
  labels:
    # 关键:此标签必须匹配 Prometheus 资源的 ruleSelector
    prometheus: k8s
spec:
  groups:
  - name: node-alerts
    rules:
    - alert: HighNodeMemoryUsage
      expr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 90
      for: 5m
      labels:
        severity: warning
      annotations:
        summary: "High memory usage on {{ $labels.instance }}"
        description: "{{ $labels.instance }} has been using more than 90% memory for the last 5 minutes."

3. 关键配置说明

  • metadata.labels: 标签是十分重要的,它连接 PrometheusRulePrometheus 实例,所以我们需要确保标签(如 prometheus: k8s)与 Prometheus 自定义资源中的 spec.ruleSelector 字段所匹配的标签选择器是一样的。
  • spec.groups[].rules[].expr: 使用PromQL 表达式来定义告警的触发条件。上述的示例就是计算了内存使用率百分比。
  • for: 我们可以配置告警条件,比如必须持续多久才会从 Pending 状态转变为 Firing 状态,这样做的好处就是规避掉因为瞬时抖动出现的误报。
  • annotations: 提供更丰富的上下文信息,这样可以邮件或者其它平台展示充足有用的信息。

4. 应用规则并验证

把我们上述的YAML 内容保存为 custom-rules.yaml,用 kubectl应用它:

# 应用自定义告警规则
kubectl apply -f custom-rules.yaml

# 验证规则是否被成功创建
kubectl get prometheusrules -n monitoring

# 检查 Prometheus UI 中的 "Alerts" 页面,确认新规则已加载


完成以上的过程,你就可以实现,不重启 Prometheus,添加、更新或删除告警规则,这样就能充足保证监控系统的灵活性。

Annie整理的云服务器优惠列表

云服务商 它的优点 客官来看
阿里云 轻量云服务器38元/年(需抢)、68元/年(限购一台)、ECS云服务器99元/年(续费同价) 点击进入
腾讯云 2核2G4M 服务器新客99元/年 353元/3年 进来逛逛
UCloud 2核2G3M 轻量云主机83元/年 华盛顿/洛杉矶/圣保罗/法兰克福/伦敦90元/年 快来看看
雨云 签到1个月送一周,签到2个月0.5个月,以此类推,新人五折首购优惠 超时空跃迁
HostVDS 1核1G 云服务器0.99美元/月 实时计费 随意换ip 随时可以注销云服务器 进入,内地打开慢
LightNode 全球有45+节点,许多冷门地区,实时计费,随意换ip,随时取消 点击进入

注:以上为佣金推广链接,我们可能从中获得收益,但不会影响您的购买价格。