helm 部署 Kube-Prometheus + Grafana + 钉钉告警 (三) 部署 钉钉告警

获取钉钉机器 Webhook

配置钉钉机器人关键字

部署 prometheus-webhook-dingtalk

mkdir -p /data/yaml/kube-prometheus/prometheus-webhook-dingtalk && cd /data/yaml/kube-prometheus/prometheus-webhook-dingtalk

cat >> deployment.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: prometheus-webhook-dingtalk
  namespace: kube-prometheus
  labels:
    app: prometheus-webhook-dingtalk
spec:
  replicas: 1
  minReadySeconds: 100
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  selector:
    matchLabels:
      app: prometheus-webhook-dingtalk
  template:
    metadata:
      labels:
        app: prometheus-webhook-dingtalk
    spec:
      terminationGracePeriodSeconds: 60
      restartPolicy: Always # 只要退出就重启
      containers:
      - name: prometheus-webhook-dingtalk
        image: timonwong/prometheus-webhook-dingtalk:v1.4.0
        imagePullPolicy: IfNotPresent
        args:
          - '--ding.profile=devops=https://oapi.dingtalk.com/robot/send?access_token=cc7e93b8ac6e53f941dc8bef815d2d2f2775c8b793fe75141309c9b1253b755f'   # access_token 在上面钉钉机器上获取;devops 注意该值,需要与 prometheus 的告警匹配
        ports:
        - containerPort: 8060
          protocol: TCP
          name: http
        resources:
          requests:
            cpu: 100m
            memory: 1024Mi
          limits:
            cpu: 2000m
            memory: 2048Mi
        livenessProbe:
          tcpSocket:
            port: 8060
          initialDelaySeconds: 30
          periodSeconds: 90
EOF

cat >> svc.yaml << EOF 
apiVersion: v1
kind: Service
metadata:
  name: prometheus-webhook-dingtalk
  namespace: kube-prometheus
  labels:
    app: prometheus-webhook-dingtalk
spec:
  ports:
    - port: 8060
      targetPort: 8060
  selector:
    app: prometheus-webhook-dingtalk
EOF

kubectl apply -f deployment.yaml -f svc.yaml

测试

启动一个无法拉取镜像的容器,钉钉机器人进行告警

posted @ 2023-04-18 16:40  klvchen  阅读(205)  评论(0)    收藏  举报