我们将在 Prometheus 服务器上编写警报规则 ,这些规则将使用我们收集的指标并在指定的阈值或标准上触发警报,收到警报后, Alertmanager 会处理警报并根据其标签进行路由。一旦路径确定,它们将由Alertmanager发送到外部目的地,如电子邮件、短信或聊天工具
邮件告警(注意如果用qq的需要开启smtp协议)
~]# vim alertmanager.yml global: resolve_timeout: 5m smtp_smarthost: 'smtp.qq.com:465' # 邮箱的url和端口 smtp_from: 'xxxxxxx@qq.com' # 发送邮箱 smtp_auth_username: 'xxxxxxxx@qq.com' # 发送邮箱 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: 'xxxxxx@qq.com' 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.查看