prometheus-operator 配置報警規(guī)則以及企業(yè)微信報警

當(dāng)配置完監(jiān)控項以后,需要對監(jiān)控項配置報警規(guī)則。

報警規(guī)則在prometheus-operator被抽象成PrometheusRule類型資源

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  labels:
    app: prometheus-operator
    release: prometheus-operator-1577513747
  name: prometheus-operator-flask
  namespace: default
spec:
  groups:
  - name: flask
    rules:
    - alert: flask random number
      annotations:
        description: 'flask 隨機數(shù)是:  ({{ $value }}).'
        summary: 'test flask'
      expr: sum(connect) < 5
      labels:
        serverity: 'critical'
        instance: '192.168.1.103:5000'

這個rule.yaml 文件里 expr 表示 connect 這個項的數(shù)值小于5 就報警。

現(xiàn)在規(guī)則有了,還需要配置企業(yè)微信報警。
在prometheus 是不包含報警系統(tǒng)的,它的報警系統(tǒng)是alertmanager 這個服務(wù)。本身alertmanager也支持企業(yè)微信報警api。我們需要修改alertmanager的配置文件和生成報警模版

在prometheus-operator里alertmanager配置文件被抽象成了Secret 資源類型。
我們可以先用一些命令查看默認配置文件

kubectl get Secret alertmanager-prometheus-operator-157751-alertmanager -ojson | jq -r '.data["alertmanager.yaml"]' | base64 -d

如果沒有安裝jq。就需要兩個步

1、kubectl get Secret alertmanager-prometheus-operator-157751-alertmanager -o yaml 

執(zhí)行后會復(fù)制data下的alertmanager.yaml 文件的base64編碼

2、echo 'ICB3ZWNoYXRfYXBpX3NlY3XXXXXXXXXXX' | base64 -d 
global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.163.com:25'
  smtp_from: 'xxx@163.com'
  smtp_auth_username: '郵箱用戶名'
  smtp_auth_password: '郵箱密碼'
  smtp_hello: '163.com'
  smtp_require_tls: false
  wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/'
  wechat_api_secret: '企業(yè)微信密鑰'
  wechat_api_corp_id: '企業(yè)id'

templates:
  - "*.tmpl"
receivers:
- name: "wechat"
  wechat_configs:
  - send_resolved: true
    agent_id: '1000002'
    to_user: '@all'
    corp_id: '企業(yè)id'
    api_secret: '企業(yè)微信密鑰'

- name: "email"
  email_configs:
  - to: '接受者郵箱地址'
    send_resolved: true

route:
  group_by:
  - job
  group_interval: 5m
  group_wait: 30s
  receiver: "wechat"
  repeat_interval: 12h

微信報警模版

{{ define "wechat.default.message" }}
{{ range .Alerts }}
========start=========
告警程序: prometheus_alert
告警級別: {{ .Labels.serverity }}
告警類型: {{ .Labels.alertname }}
故障主機: {{ .Labels.instance }}
告警主題: {{ .Annotations.summary }}
告警詳情: {{ .Annotations.description }}
觸發(fā)時間: {{ .StartsAt.Format "2006-01-02 15:04:05" }}
=========end===========
{{ end }}
{{ end }}

上面的文件保存成 alertmanager.yaml
模版文件保存成 wechat.tmpl

先刪除alertmanager 默認配置文件

kubectl delete secret alertmanager-prometheus-operator-157751-alertmanager

然后添加新配置

kubectl create   secret generic  alertmanager-prometheus-operator-157751-alertmanager --from-file=alertmanager.yaml --from-file=wechat.tmpl

這就完活了。

receiver: "wechat" 這里 改成email 就是郵件報警了。

我不知道怎么配置 微信、郵件同時發(fā)報警。???♂?

再研究研究。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容