kube-prometheus监控报警

一、参考文档

未修改镜像地址的yaml文件:https://github.com/coreos/kube-prometheus/tree/master/manifests

(使用腾讯云镜像仓库)修改镜像地址的yaml文件:https://gitee.com/mylanvv/kube-prometheus.git

prometheus官方文档:https://prometheus.io/docs/alerting/overview/

prometheus官方网站:https://prometheus.io/

 

 

二、组件

kube-prometheus 是一整套监控解决方案,它使用 Prometheus 采集集群指标,Grafana 做展示,包含如下组件:

  • The Prometheus Operator
  • Highly available Prometheus
  • Highly available Alertmanager
  • Prometheus node-exporter
  • Prometheus Adapter for Kubernetes Metrics APIs (k8s-prometheus-adapter)
  • kube-state-metrics
  • Grafana

 

 

三、修改yaml文件配置

3.1 为grafana  promethes alertmanager添加nodeport端口

grafana,修改grafana-service.yaml

promethes,修改prometheus-service.yaml

alertmanager,修改alertmanager-service.yaml

 

3.2 为alertmanager配置报警邮箱配置(可用企业微信、钉钉、webhook等等)

修改alertmanager-secret.yaml

apiVersion: v1
data: {}
kind: Secret
metadata:
  name: alertmanager-main
  namespace: monitoring
stringData:
  alertmanager.yaml: |-
    global:
      resolve_timeout: 1m # 处理超时时间
      smtp_smarthost: 'smtp.qq.com:465' # 邮箱smtp服务器代理
      smtp_from: 'xxx@qq.com' # 发送邮箱名称
      smtp_auth_username: 'xxx@qq.com' # 邮箱名称
      smtp_auth_password: 'xxx' # 授权密码
      smtp_require_tls: false # 不开启tls 默认开启

    receivers:
    - name: Default
      email_configs: # 邮箱配置
      - to: "xxx@qq.com" # 接收警报的email配置

    route:
      group_interval: 1m # 在发送新警报前的等待时间
      group_wait: 10s # 最初即第一次等待多久时间发送一组警报的通知 
      receiver: Default
      repeat_interval: 1m # 发送重复警报的周期
type: Opaque

 

 

四、开始部署

4.1 使用已经修改过镜像的git地址

git clone https://gitee.com/mylanvv/kube-prometheus.git

4.2 启动prometheus-operator 

cd 到manifests下的setup目录

创建 

kubectl apply -f .

查看是否正常启动 

kubectl get pods -n monitoring

 

 4.3 启动 promethes metric adapter grafana alertmanager

cd 到manifests目录

创建 

kubectl apply -f .

查看是否正常启动 

kubectl get pods -n monitoring

 

五、查看报警接收邮箱是否有邮件

因为Alertmanager默认有一个Watchdog是报警状态的

 

因为Alertmanager设置了1m 所以会一直接收,可以打开Alertmanager的管理页面,设置为静默期

 Alertmanager地址:IP:NodePrt    http://x.x.x.x:32302

 

六、prometheus增加自定义监控 

定义一个pod状态不是running的监控

修改,prometheus-rules.yaml,在最后面插入内容

插入如下内容 :

    - alert: pod-status
      annotations:
        message: vv test pod-status
      expr: |
        kube_pod_container_status_running != 1
      for: 1m
      labels:
        severity: warning

 

刷新prometheus-rules.yaml,因为使用挂载方式,刷新后,会同步到pod内,刷新需要一会时间

kubectl apply -f prometheus-rules.yaml

 

打开prometheus  查看是否已添加刚刚的监控项  pod-status

访问地址: IP:nodeport        http://x.x.x.x:32301

 

 

 

七、测试prometheus添加的自定义监控 (pod-status)

创建不是running的容器

yaml文件内容

apiVersion: apps/v1
kind: Deployment
metadata:
  name: vv
spec:
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  selector:
    matchLabels:
      app: vv
  template:
    metadata:
      labels:
        app: vv
    spec:
      imagePullSecrets:
      - name: registry-pull-secret
      containers:
      - name: vv
        image: ccr.ccs.tencentyun.com/lanvv/test-jdk-1-8.0.181-bak:latest
        imagePullPolicy: IfNotPresent

创建 

等一会查看报警接收邮箱

 

再次查看prometheus

 

八、grafana创建自定义图表

先在prometheus验证我们的查询条件是否满足

kube_pod_container_status_running != 1

继续去grafana添加图标 

grafana地址: ip:32300  http://x.x.x.x:32300

输入刚刚的查询条件

右上角点击保存按钮,保存图表

结果如下:

 

 

九、 结论

整个下来,都是一些模板,简单配置

如何更好的操作整个监控,需要很多调优,增加参数配置

比如alertmanager告警不单单只使用邮件,一个用户,如何区分组,静默期,正则匹配,报警时间,间隔

prometheus 如何自定义各种监控条件 promql 

grafana 如何制作好看的图表,收集

各个组件如何使用pv、pvc持久化数据

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值