Prometheus添加邮件告警和企业微信机器人告警

我们将在 Prometheus 服务器上编写警报规则 ,这些规则将使用我们收集的指标并在指定的阈值或标准上触发警报,收到警报后, Alertmanager 会处理警报并根据其标签进行路由。一旦路径确定,它们将由Alertmanager发送到外部目的地,如电子邮件、短信或聊天工具

邮件告警(注意如果用qq的需要开启smtp协议)

~]# vim alertmanager.yml 
global:
  resolve_timeout: 5m 
  smtp_smarthost: 'smtp.qq.com:465'        # 邮箱的url和端口
  smtp_from: '[email protected]'              # 发送邮箱
  smtp_auth_username: '[email protected]'    # 发送邮箱
  smtp_auth_password: 'xxxxxxxxxxxx'       # 授权码(也可以叫密码)
  smtp_require_tls: false
  smtp_hello: 'qq.com'

templates:                                  # 自定义模板                                                         
   - '/etc/alertmanager/template/*.tmpl'    

route:                                                                                    
  group_by: ['alertname','alarmPolicyName','version']                                     
  group_wait: 10s                                                                          
  group_interval: 10s                                                                      
  repeat_interval: 40m                                                                    
  receiver: 'email'

receivers:                                                                                
- name: 'email'                                                                           
  email_configs:                            # 自己的邮箱                                              
  - to: '[email protected]'                                                                         
    html: '{
    
    { template "email.html" . }}'
    headers: { Subject: "[WARN]CPU告警" }
    send_resolved: true 

企业微信机器人

1.先创建机器

 

 2.创建webhook服务

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    run: prometheus-webhook-dingtalk
  name: prometheus-webhook-dingtalk
  namespace: kube-system
spec:
  selector:
    matchLabels:
      run: prometheus-webhook-dingtalk
  template:
    metadata:
      labels:
        run: prometheus-webhook-dingtalk
    spec:
      containers:
      - args:
        - --adapter=/app/prometheusalert/wx.js=/adapter/wx=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}  # 这里的key按刚刚创建的
        image: registry.cn-hangzhou.aliyuncs.com/guyongquan/webhook-adapter  
        name: prometheus-webhook-dingtalk
        ports:
        - containerPort: 80
          protocol: TCP
 
---
apiVersion: v1
kind: Service
metadata:
  labels:
    run: prometheus-webhook-dingtalk
  name: prometheus-webhook-dingtalk
  namespace: kube-system
spec:
  ports:
  - port: 8060
    protocol: TCP
    targetPort: 80
  selector:
    run: prometheus-webhook-dingtalk
  type: ClusterIP

3.告警方式书写

~]# vim alertmanager.yaml
 
    global:
       resolve_timeout: 5m
 
    templates:
        - '/etc/alertmanager/template/*.tmpl'
 
    route:
      group_by: ['alertname']
      group_wait: 10s
      group_interval: 10s
      repeat_interval: 100m
      receiver: 'web.hook'
 
    receivers:
    - name: 'web.hook'
      webhook_configs:
      - url: 'http://prometheus-webhook-dingtalk.kube-system.svc.cluster.local:8060/adapter/wx'               # 刚刚创建的webhook地址
        send_resolved: false
    
    inhibit_rules:
      - source_match:
           severity: 'critical'
        target_match:
           severity: 'warning'
        equal: ['alertname', 'dev', 'instance']

注:配置企业微信机器人告警时需要先安装webhook;最后重启

4.查看

猜你喜欢

转载自blog.csdn.net/kali_yao/article/details/125807883