事件监控是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. Dart编译技术与平台

    Flexible compiler technology lets you run Dart code in different ways, depending on your target plat ...

  2. bzoj 3992: [SDOI2015]序列统计 NTT+原根

    今天开始学习丧心病狂的多项式qaq......    . code: #include <bits/stdc++.h> #define ll long long #define setIO ...

  3. cronicle minio s3 存储配置集成

    cronicle 后端存储是可配置的 ,通过使用不同的存储配置,我们可以解决多实例部署以及数据共享的问题 cronicle 的后端存储模型,设计的特别方便,包含了基于文件的,基于s3 的,同时我们也可 ...

  4. Filters in ASP.NET Core

    Filters in ASP.NET Core allow code to be run before or after specific stages in the request processi ...

  5. vue使用插件的流程

    1.引入vue 2.引入插件 3.通过vue.use()调用 例子:使用router插件 import Vue from "vue"; import VueRouter from ...

  6. 《ELK Stack权威指南》读书笔记

    Logstack: 1.Logstack介绍:Logstash is an open source data collection engine with real-time pipelining c ...

  7. Shared Virtual Memory (SVM) Functions

    Description Shared Virtual Memory (SVM) (Glossary): An address space exposed to both the host and th ...

  8. map访问key不存在的情况下,用find。比[]直接访问的意思不一样,map[key]不返null

    key不存在的话则创建一个pair并调用默认构造函数 map<CGuid, CLibItem>::iterator iterItem = m_world->m_library_sce ...

  9. 配送城市地址联动选择JQuery

    记录一次使用jq实现3层地址联动选择流程!效果如图. 需要引入 jq.js.layer.js.layui.js.layui.css (icon图标) 二.选中后页面展示效果 三.页面展示HTML &l ...

  10. SpringCloud:搭建基于Gateway的微服务网关(一)

    1.需求 最近在尝试着写一个开放平台,于是先搭建网关. 作用:统一的请求入口,完成对请求的跟踪,限流(未做),鉴权,分发,封装响应 2.工作原理 2.1.请求 在开放平台中申请对接口的使用,申请通过后 ...