# 采集Kubernetes事件
CCE 云原生日志采集插件可采集Kubernetes事件上报到云日志服务（LTS）和应用运维管理（AOM），用于保存事件信息和事件告警。
#### 约束与限制
采集Kubernetes事件过程中，由于部分场景存在特殊性，请注意以下场景产生的事件将不会采集：
- 插件otel-collector-event组件启动前产生的事件不会采集
- 组件主备切换期间生成的事件不会采集
- 配置变更过程中的事件不会采集，例如以下配置变更：
  - 创建或删除事件采集策略
  
  - 修改Kubernetes事件上报至AOM的黑白名单配置
   
- 组件监听事件的行为如果发生中断，需要重新进行监听，中断期间事件不会采集
 
#### 费用说明
LTS创建日志组免费，并每月赠送每个账号一定量免费日志采集额度，超过免费额度部分将产生费用（[价格计算器](https://www.huaweicloud.com/pricing.html?tab=detail#/lts)）。
#### Kubernetes事件上报云日志服务（LTS）
根据不同的场景，开通Kubernetes事件采集的步骤如下：
- [集群未开通日志中心]
  开通日志中心时，可通过勾选采集Kubernetes事件，创建默认日志采集策略，采集所有事件上报到LTS。
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)。
  
  2. 单击集群名称进入集群，选择左侧导航栏的"日志中心"。
  
  3. 未进行授权的用户需要先授权，已授权的用户直接跳转下一步。 在弹出框中单击"确认授权"。
     图1添加授权   
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001986497886.png "点击放大")
     
     
  
  4. 页面单击"开启"，等待约30秒后，页面自动跳转。
     图2开启   
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002029192224.png "点击放大")
     - 采集容器标准输出：开启后，将创建名为default-stdout的日志策略，并上报所有命名空间下的标准输出到云日志服务（LTS）。
     
     - 采集Kubernetes事件：开启后，将创建名为default-event的日志策略，并上报所有命名空间下的Kubernetes事件到云日志服务（LTS）。
     
     - 采集插件日志（NGINX Ingress控制器容器标准输出）：需要安装NGINX Ingress控制器插件，并在插件中开启"日志采集"功能。 开启后，将创建名为default-nginx-ingress的日志策略，采集NGINX Ingress控制器插件标准输出，并上报到云日志服务（LTS）。
       
      
   
- [集群已开通日志中心]
  如果集群已开通日志中心，但未开通采集Kubernetes事件，或者删除了对应的日志策略，您可以参考以下步骤手动创建一个日志采集策略。
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)。
  
  2. 单击集群名称进入集群，选择左侧导航栏的"日志中心"。
  
  3. 右上角单击"日志采集策略"，将显示当前集群所有上报LTS的日志策略。
  
  4. 单击上方"创建日志采集策略"，勾选"采集Kubernetes事件"，然后单击"确定"。
     图3创建日志策略   
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001999906168.png "点击放大")
     
     
  
  5. 创建完成后，您可直接在"日志中心"页面查看日志。选择日志策略配置的日志流名称，即可查看上报到云日志服务（LTS）的事件。
     图4查看事件   
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001999911932.png "点击放大")
     
     
   
 #### Kubernetes事件上报应用运维管理（AOM）
自1.3.2版本起，云原生日志采集插件默认会将上报所有Warning级别事件以及部分Normal级别事件到应用运维管理（AOM），上报的事件可用于配置告警。当集群版本为1.19.16、1.21.11、1.23.9或1.25.4及以上时，安装云原生日志采集插件后，事件上报AOM将不再由控制面组件上报，改为由云原生日志采集插件上报，卸载插件后将不再上报事件到AOM。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
Kubernetes事件生成后仅记录故障发生时刻的状态，即使故障已恢复也不会自动更新事件状态，而是到期后由系统自动删除。因此AOM事件类告警同样不会随故障消失而主动恢复，而是依赖超时机制进行清除，默认自动清除超期告警的时间为10分钟。
**自定义事件上报**
若已上报的事件不能满足需求，可通过修改配置，修改需要上报到应用运维管理（AOM）的事件。
- [通过控制台配置]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)。
  
  2. 单击集群名称进入集群，选择左侧导航栏的"配置中心"。
  
  3. 选择"监控运维配置"页签，在"日志配置"中修改Kubernetes事件上报至AOM的策略。开关表示是否上报对应事件。其中"事件名称"可通过[CCE事件列表](https://support.huaweicloud.com/usermanual-cce/cce_10_0902.html)查询。
     
     - 异常事件上报：
       - **开启（默认）**：除黑名单以外的异常事件全部上报。
         
       
       - **关闭**：所有异常事件均不被上报。
        
     
     - 普通事件上报：用于控制是否启用白名单补充上报功能（注：系统默认上报的普通事件不受此开关控制）。
       - **开启（默认）**：仅上报白名单中的正常事件。
         
       
       - **关闭**：所有正常事件均不上报。
        
     
     
     
     
  
  4. 配置修改完成后，单击"确认配置"。
   
- [通过kubectl配置]
  1. 在集群上执行以下命令，编辑当前的事件采集配置。 
     **kubectl edit logconfig -n kube-system default-event-aom**
     
     
  
  2. 根据需要修改事件采集配置。 
     ```
     apiVersion: logging.openvessel.io/v1
     kind: LogConfig
     metadata:
       annotations:
         helm.sh/resource-policy: keep
       name: default-event-aom
       namespace: kube-system
     spec:
       inputDetail:    #采集端配置
         type: event    #采集端类型，请勿修改
         event:
           normalEvents:    #Normal级别事件采集配置
             enable: true    #是否开启Normal级别事件采集
             includeNames:    #需要采集的事件名，不指定则采集所有事件
             - NotTriggerScaleUp
             excludeNames:    #不采集的事件名，不指定则采集所有事件
             - ScaleDown
           warningEvents:    #Warning级别事件采集配置
             enable: true    #是否开启Warning级别事件采集
             includeNames:    #需要采集的事件名，不指定则采集所有事件
             - NotTriggerScaleUp
             excludeNames:    #不采集的事件名，不指定则采集所有事件
             - ScaleDown
       outputDetail:
         type: AOM    #输出端类型，请勿修改
         AOM:
           events:
           - name: DeleteNodeWithNoServer    #事件名，必选
             nameCn: 废弃节点清理    #事件对应的中文名，不填则上报的事件直接显示英文
             resourceType: Namespace    #事件对应的资源类型
             severity: Major    #事件上报到AOM后的事件级别，默认Major。可选值：Critical：紧急；Major：重要；Minor：次要；Info：提示
     ```
     
     
   
