prometheus 配置邮件告警
本文使用的是 kube-prometheus-stack
helm 部署的 prometheus。
配置邮箱告警编辑 values.yaml 文件
alertmanager:config:global:resolve_timeout: 5msmtp_smarthost: 'xxx.xxx.com:465' # SMTP服务器和端口smtp_from: 'xxx@xxx.com' # 邮箱,发件人smtp_auth_username: 'xxx@xxx.com' # 邮箱账号smtp_auth_password: 'xxx' # 登录密码,一般用授权码更安全smtp_require_tls: false # 使用 TLS 连接inhibit_rules:- source_matchers:- 'severity = critical'target_matchers:- 'severity =~ warning|info'equal:- 'namespace'- 'alertname'- source_matchers:- 'severity = warning'target_matchers:- 'severity = info'equal:- 'namespace'- 'alertname'- source_matchers:- 'alertname = InfoInhibitor'target_matchers:- 'severity = info'equal:- 'namespace'route:group_by:- alertnamegroup_wait: 30sgroup_interval: 5mrepeat_interval: 12hreceiver: 'combo-receiver'routes: #这部分不是必须的#- receiver: 'mail_receiver'- receiver: 'null'matchers:- alertname =~ "KubeVersionMismatch|etcdMembersDown|etcdInsufficientMembers|Watchdog|KubePersistentVolumeFillingUp|KubeControllerManagerDown|KubeProxyDown|KubeSchedulerDown|InfoInhibitor|TargetDown"receivers:- name: 'null'- name: 'combo-receiver'email_configs:- to: 'xxx@139.com' # 多个收件人,用逗号分隔send_resolved: trueheaders:Subject: '[ALERT] {{ .CommonLabels.alertname }} - {{ .Status }}'html: '{{ template "email.custom.html" . }}'webhook_configs:- url: "http://xxx:8080/paas-admin/api/paas-alert-adapter/open/alert/webhook?tenantName=CMHK&projectId=xxxxxx"templates:- '/etc/alertmanager/config/*.tmpl'templateFiles:email.tmpl: |-{{ define "email.custom.html" }}<h2>🔥 告警: {{ .CommonLabels.alertname }}</h2><p><strong>状态:</strong> {{ .Status }}</p><p><strong>严重等级:</strong> {{ .CommonLabels.severity }}</p><p><strong>时间:</strong> {{ .ExternalURL }}</p><h3>📌 详情:</h3><ul>{{ range .Alerts }}<li><b>实例:</b> {{ .Labels.instance }}<br/><b>开始时间:</b> {{ .StartsAt }}<br/><b>摘要:</b> {{ .Annotations.summary }}<br/><b>描述:</b> {{ .Annotations.description }}</li>{{ end }}</ul>{{ end }}
更新配置
helm upgrade prometheus -n kube-prometheus -f values.yaml prometheus-community/kube-prometheus-stack --debug