在Rancher搭建的Kubernetes中prometheus配置告警规则

一、配置alertManager 的configMap

        将alertManager的配置信息写入configMap中,在kubernetes中创建 

#AlertManager的配置
kind: ConfigMap
apiVersion: v1
metadata:
  name: alertmanager
  namespace: cattle-prometheus
data:
  alertmanager.yml: |-  #alertManager的配置文件
   route:
     group_by: ['alertname'] #分组
     group_wait: 10s
     group_interval: 10s
     repeat_interval: 1m #重复发送间隔
     receiver: 'web.hook' #接受者名称
     routes:
       - receiver: web.hook
         group_wait: 10s
   receivers: #接受者配置
      - name: 'web.hook'
        webhook_configs:
          - url: 'http://172.200.96.145:8080/api/cloudnative/container/clusters/alert'
            send_resolved: true

二、在Kubernetes中启动alertManager并创建Service 

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    name: alertmanager-deployment
  name: alertmanager
  namespace: cattle-prometheus
spec:
  replicas: 1
  selector:
    matchLabels:
      app: alertmanager
  template:
    metadata:
      labels:
        app: alertmanager
    spec:
      containers:
      - image: yanfa-harbor.51iwifi.com/rancher/mirrored-prometheus-alertmanager:v0.22.2
        name: alertmanager
        ports:
        - containerPort: 9093
          protocol: TCP
        volumeMounts:
        - mountPath: "/alertmanager"
          name: data
        - mountPath: "/etc/alertmanager"
          name: config-volume
        resources:
          requests:
            cpu: 50m
            memory: 50Mi
          limits:
            cpu: 200m
            memory: 200Mi
      volumes:
      - name: data
        emptyDir: {}
      - name: config-volume
        configMap:
          name: alertmanager
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: alertmanager
  annotations:
    prometheus.io/scrape: 'true'
  name: alertmanager-operated #服务名称
  namespace: cattle-prometheus
spec:
  type: NodePort
  ports:
  - port: 9093
    targetPort: 9093
    nodePort: 30001
  selector:
    app: alertmanager

三、在kubernetes中为prometheus添加告警规则

使用prometheus的crd为prometheus添加告警规则 

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  labels:
     app: exporter-kube-controller-manager
     chart: exporter-kube-controller-manager-0.0.1
     io.cattle.field/appId: cluster-monitoring
     release: cluster-monitoring
     source: rancher-monitoring
  name: prometheus-k8s
  namespace: cattle-prometheus
spec:
  groups:
  - name: prometheus-k8s
    rules:
#    - alert: PodNotReady
#      annotations:
#        message: 'Pod状态异常! 命名空间:{{ $labels.namespace }},Pod名称: {{ $labels.pod }}.'
#      expr: |
#        sum by(namespace, pod) (kube_pod_status_phase{phase!~"Running|Succeeded",namespace=~"default|kafka|kube-system|logging|monitoring|k8s-dcm|ai"}) >  0
#      for: 5m
#      labels:
#        severity: critical
    - alert: DeploymentNotReady  #告警规则
      annotations:
        message: '集群166:Deployment状态异常! 命名空间:{{ $labels.namespace }},Deployment名称: {{ $labels.deployment }}.'
      expr: |
        kube_deployment_spec_replicas{job="expose-kubernetes-metrics",namespace="default"} != kube_deployment_status_replicas_available{job="expose-kubernetes-metrics",namespace="default"}
      for: 10s
      labels:
        severity: critical
    - alert: StatefulSetNotReady
      annotations:
        message: '集群166:StatefulSet状态异常!命名空间:{{ $labels.namespace }},StatefulSet称: {{ $labels.statefulset }}.' 
      expr: |
        kube_statefulset_status_replicas_ready{job="kube-state-metrics",namespace=~"default|kafka|kube-system|logging|monitoring|k8s-dcm|ai"} != kube_statefulset_status_replicas{job="kube-state-metrics",namespace=~"default|kafka|kube-system|logging|monitoring|k8s-dcm|ai"}
      for: 5m
      labels:
        severity: critical

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值