本文介绍如何创建Kubernetes事件中心及相关操作,包括查看事件总览、查询事件详情、查看Pod生命周期、配置告警和自定义查询等操作。
背景信息
Kubernetes事件中心记录了集群的状态变更,包括创建Pod、运行Pod、删除Pod、组件异常等。Kubernetes事件中心实时汇聚Kubernetes中的所有事件并提供存储、查询、分析、可视化、告警等能力。
免费策略
- 不调整存储时间(默认90天),集群每天产生1000条事件,则事件中心永久免费。
- 调整存储时间为105天,集群每天产生1000条事件,则超过90天后,事件中心每天收取的费用约0.1元,费用详情请参见按量付费。
步骤一:创建事件中心
步骤二:部署Eventer和NodeProblemDetector
您需要在Kubernetes集群中配置事件采集和node-problem-detector后才能正常使用K8s事件中心。
- 阿里云Kubernetes配置方式
阿里云Kubernetes应用市场中的ack-node-problem-detector已集成node-problem-detector和事件采集功能,您只需要部署该组件即可,该组件详细部署请参见场景3:使用node-problem-detector与eventer实现节点异常告警。
- 登录容器服务控制台。
- 在左侧导航栏中,选择 。
- 在阿里云应用页签下,单击ack-node-problem-detector。
- 在参数页签下,修改eventer节点中的相关信息。
- enabled:将 下的enabled设置为true。
- topic:可选,设置为您的集群名称,只支持英文字母a-z、下划线(_)、连接号(-)。
- project:设置为您创建事件中心时的Project名称。
- logstore:只能设置为k8s-event。
sinks: sls: enabled: true # If you want the monitoring results to be notified by sls, set enabled to true. topic: "my-cluster" project: "{sls-project-name}" # You can view the project information by logging in to the # SLS console. Please fill in the name of the project here. # eg: your project name is k8s-log-cc18a5f3443dhdss22654da, # then you can fill k8s-log-cc18a5f3443dhdss22654da to project label. logstore: "k8s-event" # You can view the project information by logging in to the # SLS console. Please fill the logstore address in here.
- 单击创建,完成部署。
- 自建Kubernetes配置方式
- 配置事件采集,详情请参见采集Kubernetes事件。
- 配置node-problem-detector,详情请参见Github。
步骤三:使用事件中心
创建K8s事件中心并部署Eventer和NodeProblemDetector后,即可使用K8s事件中心,包括查看事件总览、查询事件详情、查看Pod生命周期、配置告警和自定义查询等操作。
在K8s事件中心页面,找到目标事件中心实例,单击图标,可进行如下操作。
操作 | 说明 |
---|---|
查看事件总览 | 单击事件总览,查看核心事件的汇总统计信息。例如:总体错误数以及和昨天/上周的对比、告警项统计、重要事件趋势、Pod OOM详细信息等。
说明 目前Pod OOM信息不能精确到Pod,只能定位到事件发生的节点、进程名、进程号。您可以通过自定义查询查找Pod OOM发生时间点附近的Pod重启事件,以此定位到具体的Pod。
|
查询事件详情 | 单击事件详情查询,查看按照各种维度(事件等级、事件类型、事件目标、Host、Namespace、Name)过滤后的事件的统计信息以及详情。 |
查看Pod生命周期 | 单击Pod生命周期,以图形化方式展示Pod整个生命周期中的事件信息,还可通过事件等级筛选重要的Pod事件。 |
配置告警 | 单击告警配置,配置事件的告警,具体操作请参见表格下方的操作步骤。 |
自定义查询 | 单击自定义查询,自定义查询条件查询相关信息,查询条件请参见查询与分析语法规则。
事件中心的所有事件都保存在Logstore中,您可以使用Logstore中的所有功能,例如自定义查询、消费事件进行自定义处理、创建自定义报表、创建自定义告警等。 如果您要访问事件中心所在的Project,可通过以下两种方式获取Project名称。
|
配置自定义告警 | 除了内置的告警外,事件中心还支持配置自定义告警。
在自定义查询页面,输入对应K8s事件的查询语句,单击另存为告警完成自定义告警配置,详情请参见告警简介。 例如:创建一个FailedPreStopHook的告警,您可以在查询页面中输入 说明 如果您自定义配置的告警名称是前缀K8s,则该告警配置会在目标事件的告警配置页签的全部告警事件显示中,否则只显示在告警详情中。
|
配置告警具体操作如下所示。
- 在K8s事件中心,找到目标事件中心实例,单击
图标。
- 单击告警配置,进入告警配置页面。
- 添加通知方式。
- 开启告警通知
删除事件中心
在图标,删除事件中心。
常见问题
- K8s事件中心无数据。
部署好K8s事件中心后,新产生的事件会自动采集到K8s事件中心,您可以在自定义查询页面进行搜索(建议将右上角时间范围调整到1天)。如果无数据,一般有两个原因:
- 部署K8s事件中心后,K8s集群还未产生事件。
您可以通过
kubectl get events --all-namespaces
命令检查集群内是否有新事件产生。 - 部署Eventer和NodeProblemDetectors时,参数填写错误。
- 如果您使用的是阿里云Kubernetes集群,请在ack-node-problem-detector后的更新,检查参数配置,详情配置请参见步骤二:部署Eventer和NodeProblemDetector。 中,找到对应的集群,单击
- 如果您使用的是自建Kubernetes集群,参数配置请参见采集Kubernetes事件。
- 部署K8s事件中心后,K8s集群还未产生事件。
- 如何查看事件对应容器的日志?
- 如果您使用的是阿里云Kubernetes集群,请在命名空间选择为kube-system,在搜索框中输入eventer关键词找到目标容器,在其详情页面查看日志。 中,找到目标集群,将
- 如果您使用的是自建Kubernetes集群,请查看namespace为kube-system下文件名前缀为eventer-sls的Pod日志。