helm prometheus operator - 设置电子邮件 notifications/edit 机密

helm prometheus operator - set email notifications/edit secrets

我已经通过 helm 安装了 prometheus-operator,现在想为警报管理器设置电子邮件通知:

我编辑了 prometheus operator secret

    kubectl get secret alertmanager-prometheus-prometheus-oper-alertmanager -n monitoring -o yaml
    apiVersion: v1
    data:
      alertmanager.yaml: Z2xvYmFsOgogIHJlc29sdmVfdGltZW91dDogNW0KcmVjZWl2ZXJzOgotIG5hbWU6ICJudWxsIgpyb3V0ZToKICBncm91cF9ieToKICAtIGpvYgogIGdyb3VwX2ludGVydmFsOiA1bQogIGdyb3VwX3dhaXQ6IDMwcwogIHJlY2VpdmVyOiAibnVsbCIKICByZXBlYXRfaW50ZXJ2YWw6IDEyaAogIHJvdXRlczoKICAtIG1hdGNoOgogICAgICBhbGVydG5hbWU6IFdhdGNoZG9nCiAgICByZWNlaXZlcjogIm51bGwi
    kind: Secret
    metadata:
      creationTimestamp: "2020-03-23T09:19:57Z"
      labels:
        app: prometheus-operator-alertmanager
        chart: prometheus-operator-8.12.2
        heritage: Helm
        release: prometheus
      name: alertmanager-prometheus-prometheus-oper-alertmanager
      namespace: monitoring
      resourceVersion: "1853097"
      selfLink: /api/v1/namespaces/monitoring/secrets/alertmanager-prometheus-prometheus-oper-alertmanager
      uid: eb7f514e-6bf4-4791-9c1a-e45590ba2a36
    type: Opaque



 echo 'Z2xvYmFsOgogIHJlc29sdmVfdGltZW91dDogNW0KcmVjZWl2ZXJzOgotIG5hbWU6ICJudWxsIgpyb3V0ZToKICBncm91cF9ieToKICAtIGpvYgogIGdyb3VwX2ludGVydmFsOiA1bQogIGdyb3VwX3dhaXQ6IDMwcwogIHJlY2VpdmVyOiAibnVsbCIKICByZXBlYXRfaW50ZXJ2YWw6IDEyaAogIHJvdXRlczoKICAtIG1hdGNoOgogICAgICBhbGVydG5hbWU6IFdhdGNoZG9nCiAgICByZWNlaXZlcjogIm51bGwi' | base64 --decode

创建了新的 alertmanager.yaml 文件

global:
  resolve_timeout: 5m
route:
  group_by: [Alertname]
  # Send all notifications to me.
  receiver: email-alert

  group_by: ['job', 'alertname', 'service', 'severity']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: email-alert
  routes:
  - match:
      severity: critical
    receiver: email-alert

receivers:
- name: email-alert
  email_configs:
  - to: email@example.com
    from: email@example.com
    # Your smtp server address
    smarthost: smtp.office365.com:587
    auth_username: email@example.com
    auth_identity: email@example.com
    auth_password: Pass

创建的模板:

apiVersion: v1
data:
  alertmanager.yaml: ALERTMANAGER_CONFIG
kind: Secret
metadata:
  name: alertmanager-main
  namespace: monitoring
type: Opaque

编码并应用

sed "s/ALERTMANAGER_CONFIG/$(cat alertmanager.yaml | base64 -w0)/g" alertmanager-secret-k8s.yaml | kubectl apply -f -

我通过端口 30700 将 alertmanager 暴露为 Nodeport

所以当我访问它时 (http://IP:30700/#/status),我看到这个 alertmanager.yaml 没有应用,即秘密没有改变。

我需要做什么才能编辑这个 prometheus alertmanager 秘密?

尝试过

helm upgrade prometheus stable/prometheus-operator --namespace monitoring -f alertmanager.yaml 

没有帮助

感谢 this 参考

  • 删除当前机密:

    kubectl delete secret alertmanager-prometheus-prometheus-oper-alertmanager -n monitoring
    
  • 创建文件alertmanager.yaml:

      global:
        resolve_timeout: 5m
      route:
        receiver: 'email-alert'
        group_by: ['job']
    
    
        routes:
        - receiver: 'email-alert'
          match:
            alertname: etcdInsufficientMembers
          group_wait: 30s
          group_interval: 5m
          repeat_interval: 12h  
    
      receivers:
      - name: email-alert
        email_configs:
        - to: receiver@example.com
          from: sender@example.com
          # Your smtp server address
          smarthost: smtp.office365.com:587
          auth_username: sender@example.com
          auth_identity: sender@example.com
          auth_password: pass
    
  • 创建与旧密钥同名的新密钥:

    kubectl create secret generic alertmanager-prometheus-prometheus-oper-alertmanager -n monitoring --from-file=alertmanager.yaml