事件监控是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地址。
    • 删除群机器人。

  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已部署成功。

预期结果:

部署成功后30s,eventer生效,当事件等级超过阈值等级时,即可在钉钉群收到如下告警。
 

阿里云k8s事件监控的更多相关文章

  1. 【转载】阿里云ECS服务器监控资源使用情况

    在阿里云Ecs服务器运维过程中,无论是Centos系统还是Windows系统,有时候我们需要监控分析最新的服务器资源利用率等运行情况,例如最近3个小时CPU使用率情况.内存使用率.网络流入带宽.网络流 ...

  2. 阿里云k8s应用最新日志采集不到的问题

    问题描述: 阿里云k8s应用日志之前一直都是可以正常的采集, 先出现一问题, 通过kibana 和阿里云的日志服务都没法展示最新的k8s应用的日志, 部分应用的最新日志有被采集到,但大部分应用日志没有 ...

  3. 使用Gitlab-CI 实现NetCore项目Docker化并部署到阿里云K8S

    使用Gitlab-CI 实现NetCore项目Docker化并部署到阿里云K8S 先行条件: 1.了解NetCore项目基础命令,如dotnet publish   等几个常用命令. 2.了解Dock ...

  4. 朱晔和你聊Spring系列S1E11:小测Spring Cloud Kubernetes @ 阿里云K8S

    有关Spring Cloud Kubernates(以下简称SCK)详见https://github.com/spring-cloud/spring-cloud-kubernetes,在本文中我们主要 ...

  5. 阿里云k8s部署zookeeper集群

    1. 阿里云k8s创建有状态应用 StatefulSet ,  选择使用模板创建 可以创建自定义模板 apiVersion: apps/v1 kind: StatefulSet metadata: c ...

  6. 阿里云应用实时监控 ARMS 再升级,支持 Prometheus 开源生态

    摘要: 应用实时监控服务 (ARMS) 是一款APM类的监控产品. 用户可基于 ARMS 的前端.应用.自定义监控,快速构建实时的应用性能和业务监控能力.ARMS 让所有性能问题“一屏了然”,不遗余力 ...

  7. 阿里云K8S下玩.NET CORE 3.1

    1. 创建阿里云K8S集群,本文以标准托管集群为例 1.1 创建一个 2台 centos 2core 4G的 k8s 集群 1.2 创建成功的模样 2. 创建 asp.net core webapi项 ...

  8. shell脚本监控k8s集群job状态,若出现error通过触发阿里云的进程监控报警

    #!/bin/bash while [ 1 ] do job_error_no=`kubectl get pod -n weifeng |grep -i "job"|grep -c ...

  9. 阿里云容器Kubernetes监控(九) - Kubernetes事件离线工具kube-eventer正式开源

    前言 监控是保障系统稳定性的重要组成部分,在Kubernetes开源生态中,资源类的监控工具与组件百花齐放.除了社区自己孵化的metrics-server,还有从CNCF毕业的Prometheus等等 ...

随机推荐

  1. Gym - 100962F: Frank Sinatra (树上莫队+bitset)

    题意:给定一棵树,带边权.然后Q次询问,每次给出(u,v),求这个路径上最小的未出现的边权. 思路:树上莫队,求mex可以用分块或者bitset,前者可能会快一点.   莫队过程:求出欧拉序,即记录d ...

  2. LOJ6070 基因

    基因 给定一个长度为 \(n\) 的字符串 \(s\),有 \(q\) 组询问,每个询问给定 \(l,r\),询问 \(s[l..r]\) 中有多少本质不同的回文子串. 强制在线.\(n\leq 10 ...

  3. eclipse 中的注释 快捷键 多行注释快捷键 单行注释快捷键

    Eclipse 中的两种注释方法: (1)多行注释(2)单行注释 一. 多行注释快捷键 1:添加注释Ctrl+Shift+/ :    添加/* */注释 示例:选中代码块后按下快捷键即可 /* fl ...

  4. service里无法注入mapper,mapper空指针

    被困扰了一天,终于解决了,记录一下 下面是mapper的代码 @Mapper public interface ProductDao { @Select("select * from pro ...

  5. mui 等待动画loading mui.showLoading

    显示加载框:mui.showLoading("正在加载..","div"); //加载文字和类型,plus环境中类型为div时强制以div方式显示隐藏加载框:m ...

  6. ajax异步

    异步与同步 这就是生活中的同步     在JavaScript语言中,同步和异步的概念刚好相反.       这JavaScript中同步就是:你不执行完上面的代码,那么下面的代码你就别执行:一步一步 ...

  7. timeout/timelimit

    timelimit

  8. 常用方法 读取 Excel的单位格 为 日期格式 的数据

    原文:地址忘了 百度应该有 Excel的单元格为日期格式,数值型日期,可用下面这个方法得到正常的数据 /// <summary> /// 数字格式的时间 转换为 字符串格式的时间 /// ...

  9. for、for...in、for...of的区别

    当有一个元素未定义时,for和for...of遍历该元素为undefined,for...in遍历不到. 如果是自定义属性,for和for...of无法遍历,for...in可以遍历. for...i ...

  10. java stackoverflowerror与outofmemoryerror区别

    1.stackoverflow: 每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态:当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中 ...