• Prometheus Operator邮件报警细节


    Operator是基于Kubernetes的资源和控制器之上构建的概念,用来扩展 Kubernetes API,特定的应用程序控制器,目前官方提供了几种Operator的实现,而其中Prometheus Operator应用最为方便。核心原理是通过ServiceMonitor中间层,可以自定义资源管理。具体原理和安装方式可以通过GitHub操作。本文主要讨论使用Prometheus Operator邮件报警中容易出错的细节。

    1.Prometheus Operator发送邮件报警的原理:通过自定义PrometheusRule方式添加rule规则,然后通过修改alertmanager-main中的参数项匹配对于的rule,最终进行邮件报警功能。

    2.自定义的rule文件都会在prometheus-k8s的pod中/etc/prometheus/rules/prometheus-k8s路径自动生成配置文件进行调用,并且也可以在prometheus的Dashboard中的Alert页面查询到。

    3.最核心的yaml文件就是安装Prometheus Operator时提供的alertmanager-main这个service,会直接调用alertmanager-secret.yaml文件,所以更新alertmanager-secret.yaml就可以自定义发送的监控的对象和邮件。

    4.alertmanager-secret.yaml本身是base64加密后的数据,可以通过

    echo "XXX" | base64 -d

    查看下具体的内容,我们能操作的内容是删除原有的secret对象,然后让alertmanager-main重新调用新的secret对象,alertmanager就是我们自定义的yaml文件。

    kubectl delete secret alertmanager-main -n monitoring
    kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml -n monitoring
    

    5.注意smtp_require_tls需要填写false,不然发送不了邮件

    global:
      resolve_timeout: 5m
      smtp_smarthost: 'smtp.exmail.qq.com:465'
      smtp_from: 'leozhou@leozhou.com'
      smtp_auth_username: 'leozhou@leozhou.com'
      smtp_auth_password: 'XXX'
      smtp_hello: 'leozhou.com'
      smtp_require_tls: false
    route:
      group_by: ['job', 'severity']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      receiver: default
      routes:
      - match:
          alertname:  CPUThrottlingHigh#alertname就是可以匹配到自定义rule中alertname
        receiver: default
    receivers:
    - name: default
      email_configs:
      - to: 'leozhou@qq.com'
        send_resolved: true

  • 相关阅读:
    C++ 实现简单快速排序
    LEETCODE 198. House Robber
    leetcode 174
    GIT 版本的回退
    unorderd_map 自定义键值及哈希函数的重载
    互斥锁 形成死锁实例
    leetcode 300
    LeetCode 62
    LeetCode 122
    SVN提交,强制注释
  • 原文地址:https://www.cnblogs.com/zhouzhifei/p/12145128.html
Copyright © 2020-2023  润新知