阿里云k8s事件监控

事件监控是Kubernetes中的另一种监控方式,可以弥补资源监控在实时性、准确性和场景上的缺欠。Kubernetes的架构设计是基于状态机的,不同的状态之间进行转换则会生成相应的事件,正常的状态之间转换会生成Normal等级的事件,正常状态与异常状态之间的转换会生成Warning等级的事件。开发者可以通过获取事件,实时诊断集群的异常与问题。

背景信息

kube-eventer是阿里云容器服务维护的开源Kubernetes事件离线工具,可以将集群的事件离线到钉钉、SLS等系统,并提供不同等级的过滤条件,实现事件的实时采集、定向告警、异步归档。更多内容请参见kube-eventer

通过以下三种场景为您介绍事件监控。

场景1:使用钉钉实现Kubernetes监控告警

使用钉钉机器人监控并告警Kubernetes的事件是一个非常典型的ChatOps实现。具体的操作步骤如下:

  1. 单击钉钉群右上角群设置图标,进入群设置页面。
  2. 单击群机器人,进入群机器人页面,选择需要添加的机器人。此处选择自定义机器人。

    自定义机器人
  3. 机器人详情页面,单击添加,进入添加机器人页面。

    添加机器人
  4. 根据如下信息配置群机器人后,单击完成添加。
     
    配置说明
    编辑头像 (可选)为群机器人设置头像。
    机器人名字 添加的机器人名称。
    添加到群组 添加机器人的群组。
    是否开启Outgoing机制 (可选)通过@群机器人,将消息发送到指定外部服务,还可以将外部服务的响应结果返回到群组。
     
    说明 建议不开启。
    POST 地址 接收消息的HTTP服务地址。
     
    说明 当选择开启Outgoing机制时,此项可配置。
    Token 用于验证请求来自钉钉的密钥。
     
    说明 当选择开启Outgoing机制时,此项可配置。
  5. 单击复制,复制webhook地址。

    复制webhook
     
    说明 在群机器人页面,选择目标群机器人,单击右侧设置按钮图标可以:
    • 修改群机器人的头像及机器人名字。
    • 开启或关闭消息推送。
    • 重置webhook地址。
    • 删除群机器人。

    设置机器人
  6. 登录容器服务管理控制台
  7. 在Kubernetes菜单下,单击左侧导航栏中的应用 > 无状态,进入 无状态(Deployment)页面。
  8. 选择目标集群,命名空间选为kube-system,单击右上角使用模板创建。
    创建应用
  9. 根据以下信息配置模板,完成后单击创建。
     
    配置说明
    集群 选择目标集群。
    命名空间 选择资源对象所属的命名空间,默认是 default。此处选择kube-system。
    示例模板 阿里云容器服务提供了多种资源类型的 Kubernetes yaml 示例模板,让您快速部署资源对象。您可以根据 Kubernetes Yaml 编排的格式要求自主编写,来描述您想定义的资源类型。此处选择自定义。
    模板 填写以下自定义内容:
     
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: eventer
      namespace: kube-system
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            task: monitoring
            k8s-app: eventer
          annotations:
            scheduler.alpha.kubernetes.io/critical-pod: ''
        spec:
          serviceAccount: admin
          containers:
          - name: eventer
            image: registry.cn-hangzhou.aliyuncs.com/acs/eventer:v1.6.0
            imagePullPolicy: IfNotPresent
            command:
            - /eventer
            - --source=kubernetes:https://kubernetes.default
            - --sink=dingtalk:[your_webhook_url]&label=[your_cluster_id]&level=[可选参数:Normal或者Warning,默认值为:Warning]      #level可配置为:Normal或Warning,默认值为:Warning。当配置Normal时,会在钉钉群收到Normal和Warning级别的告警;不配置或配置为Warning时,钉钉群仅收到Warning级别的告警。
    集群列表页面选择目标集群,单击操作列控制台,进入Kubernetes 控制台,选择命名空间为kube-system,单击左侧导航栏部署,可查看到eventer已部署成功。
    部署eventer

预期结果:

部署成功后30s,eventer生效,当事件等级超过阈值等级时,即可在钉钉群收到如下告警。
消息提醒
 
posted @ 2019-10-23 15:29  Oops!#  阅读(2336)  评论(0编辑  收藏  举报