# 日志中心FAQ
#### 索引
- [如何关闭日志中心？]
- [插件中除log-operator外组件均未就绪]
- [log-operator标准输出报错]
- [节点容器运行时为docker时采集不到容器文件日志]
- [日志无法上报，otel组件标准输出报错：log's quota has full]
- [采集容器内日志，且采集目录配置了通配符，日志无法采集]
- [fluent-bit容器组一直重启]
- [节点OS为Ubuntu 18.04时出现日志无法采集]
- [采集Job日志时出现日志无法采集]
- [云原生日志采集插件运行正常，部分日志策略未生效]
- [log-agent-otel-collector组件出现OOM]
- [节点负载过多，采集日志时缺少部分Pod信息]
- [如何修改集群日志中心的日志存储时间？]
- [如何修复日志采集策略中日志组（流）不存在的问题？]
- [Pod调度到CCI后，采集不到日志]
- [Turbo集群新创建节点场景出现FailedAssignENI告警]
 
 #### 如何关闭日志中心？
**关闭容器日志、kubernetes事件采集**
方法一：进入"日志中心"，单击右上角"日志采集策略"，找到对应的日志策略，单击"更多 \> 删除"。其中default-event为默认上报kubernetes事件，default-stdout为默认上报标准输出。
图1删除日志采集策略   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002532217115.png "点击放大")
方法二：进入"插件中心"，卸载CCE 云原生日志采集插件，**注意：卸载后插件将不再上报kubernetes事件到AOM。**
**关闭控制面组件日志** **采集**
进入"日志中心 \> 控制面组件日志"，单击"配置控制面组件日志"，取消勾选不需要采集的组件。
图2配置控制面组件日志   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001709057078.png "点击放大")
**关闭Kubernetes审计日志采集**
进入"日志中心 \> Kubernetes审计日志"，单击"配置控制面审计日志"，取消勾选不需要采集的组件。
图3配置控制面审计日志   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002500456982.png "点击放大")
 #### 插件中除log-operator外组件均未就绪
**问题现象**：插件中除log-operator外组件均未就绪，且出现异常事件"实例挂卷失败"。
**解决方案**：请查看log-operator日志，安装插件时，其余组件所需的配置文件需要log-operator生成，log-operator生成配置出错，会导致所有组件无法正常启动。
日志信息如下：
```
MountVolume.SetUp failed for volume "otel-collector-config-vol":configmap "log-agent-otel-collector-config" not found
```
 #### log-operator标准输出报错
**问题现象**：
```
2023/05/05 12:17:20.799 [E] call 3 times failed, reason: create group failed, projectID: xxx, groupName: k8s-log-xxx, err: create groups status code: 400, response: {"error_code":"LTS.0104","error_msg":"Failed to create log group, the number of log groups exceeds the quota"}, url: https://lts.cn-north-4.myhuaweicloud.com/v2/xxx/groups, process will retry after 45s
```
**解决方案** ：LTS日志组有配额限制，如果出现该报错，请前往LTS下删除部分无用的日志组。限制详情见：[日志组](https://support.huaweicloud.com/usermanual-lts/lts_04_0003.html)。
 #### 节点容器运行时为docker时采集不到容器文件日志
**问题现象**：
配置了容器文件路径采集，采集的目录不是挂载到容器内的，且节点容器运行时为docker，采集不到日志。
**解决方案**：
请检查工作负载所在节点的容器存储模式是否为Device Mapper，Device Mapper不支持采集容器内日志（创建日志策略时已提示此限制）。检查方法如下：
1. 进入业务工作负载所在节点。
2. 执行**docker info \| grep "Storage Driver"**。
3. 若返回的Storage Driver值为Device Mapper，则该日志无法采集。
图4创建日志策略   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001830695604.png "点击放大")
 #### 日志无法上报，otel组件标准输出报错：log's quota has full
图5otel组件报错信息   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001830855408.png "点击放大")
**解决方案**：
云日志服务（LTS）有免费赠送的额度，超出后将收费，报错说明免费额度已用完，如果需要继续使用，请前往[LTS控制台](https://console.huaweicloud.com/lts/#/cts/manager/groups)"配置中心"，打开"超额继续采集日志"开关。
图6配额设置   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001877534789.png "点击放大")
 #### 采集容器内日志，且采集目录配置了通配符，日志无法采集
**排查方法：**请检查工作负载配置中Volume挂载情况，如果业务容器的数据目录是通过数据卷（Volume）挂载的，插件不支持采集它的父目录，需设置采集目录为完整的数据目录。例如/var/log/service目录是数据卷挂载的路径，则设置采集目录为/var/log或/var/log/\*将采集不到该目录下的日志，需设置采集目录为/var/log/service。
**解决方案：**若日志生成目录为/application/logs/{应用名}/\*.log，建议工作负载挂载Volume时，直接挂载/application/logs，日志策略中配置采集路径为/application/logs/\*/\*.log
 #### fluent-bit容器组一直重启
**排查方法** ：节点上fluent-bit容器组一直重启，且通过**kubectl describe pod**命令查看Pod重启原因为OOM。查询该fluent-bit所在节点存在大量被驱逐的Pod，资源被占用导致出现OOM。
**解决方案**：删除节点上被驱逐的Pod。
 #### 节点OS为Ubuntu 18.04时出现日志无法采集
**排查方法** ：重启当前节点的fluent-bit pod，查看日志是否正常采集。如依然无法采集，请确认需要采集的文件是否为打包镜像时已经存在于镜像中的日志文件。对于容器日志采集的场景来说，镜像打包时已存在的文件的日志非运行日志，属于无效日志无法采集。该问题为社区已知问题，详情请参见[开源issue](https://github.com/moby/moby/issues/31587)。
**解决方案**：若需要采集打包镜像时已经存在于镜像中的日志文件，建议添加在创建工作负载时，设置"生命周期\>启动后命令"，在工作负载Pod启动前，先删除原来日志文件，使日志文件重新生成。
 #### 采集Job日志时出现日志无法采集
**排查方法**：确认Job的存活时间。若Job存活时间低于1分钟，日志还未被采集，Pod就已经被销毁，可能存在日志采集不到的情况。
**解决方案**：延长Job的存活时间。
 #### 云原生日志采集插件运行正常，部分日志策略未生效
**解决方案**：
- 若未生效的日志策略采集类型为事件类型或插件版本低于1.5.0，则检查log-agent-otel-collector工作负载的标准输出。 进入"插件中心"，单击 "云原生日志采集插件"名称，选择实例列表， 找到 log-agent-otel-collector ，单击"更多\>日志"。
  图7查看log-agent-otel-collector实例日志   
  ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002248086777.png "点击放大")
  
  
- 若未生效的日志策略类型不为事件类型，且插件版本高于1.5.0，则检查需要采集的容器所在节点的log-agent-fluent-bit实例日志。 进入"插件中心"，单击"云原生日志采集插件"，选择实例列表，找到对应节点的log-agent-fluent-bit，单击"更多\>日志"。
  图8查看log-agent-fluent-bit实例日志   
  ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002248206561.png "点击放大")
  
  容器选择fluent-bit，并在日志中查看关键字"fail to push {event/log} data via lts exporter"，查看后面的errorMessage。
  图9查看fluent-bit容器日志   
  ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001877455025.png "点击放大")
  1. 若报错为"The log streamId does not exist."，则日志组或日志流不存在，可前往"日志中心\>日志采集策略"中，通过"编辑"或"删除"重建日志策略，更新策略中的日志组日志流。
  
  2. 其余报错可前往LTS搜索错误码，查看报错原因。详情请参见[LTS错误码](https://support.huaweicloud.com/usermanual-lts/lts_07_0067.html)。
    
 
 #### log-agent-otel-collector组件出现OOM
**排查方法**：
1. 查看log-agent-otel-collector组件标准输出，查看近期是否有错误日志。
   ```
   kubectl logs -n monitoring log-agent-otel-collector-xxx
   ```
   若存在报错请优先处理报错，确认日志恢复正常采集。
   
2. 若日志近期没有报错，且仍然出现OOM，则参考以下步骤进行处理：
   1. 进入"日志中心"，单击"展开日志条数统计图"查看日志统计图。若上报的日志组日志流不是默认日志组日志流，则单击"全局日志查询"页签，选择上报的日志组和日志流后进行查看。
      图10查看日志统计   
      ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001831460274.png "点击放大") 
   
   2. 根据统计图中的柱状图，计算每秒上报的日志量，检查是否超过当前规格的日志采集性能。 若超过当前规格的日志采集性能，可尝试增加log-agent-otel-collector副本数或提高log-agent-otel-collector的内存上限。
      
   
   3. 若CPU使用率超过90%，则需要提高log-agent-otel-collector的CPU上限。
    
 
 #### 节点负载过多，采集日志时缺少部分Pod信息
**问题**：插件版本在1.5.0以上，采集容器内日志或容器标准输出过程中出现日志缺少部分Pod信息，例如podID、podName等。
**排查方法**：
进入"插件中心"，单击"云原生日志采集插件"，选择实例列表，找到对应节点的log-agent-fluent-bit，单击"更多\>日志"。
图11查看log-agent-fluent-bit实例日志   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002248378137.png "点击放大")
容器选择fluent-bit，并在日志中查看关键字"cannot increase buffer: current=512000 requested=\*\*\* max=512000"。
图12查看fluent-bit容器日志   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001836693162.png "点击放大")
**解决方案**：
前往节点执行**kubectl edit deploy -n monitoring log-agent-log-operator**， 编辑log-operator容器的命令行参数，添加命令行--kubernetes-buffer-size=20MB，当前默认值为16MB，请根据节点pod信息总大小估算该值大小。0为无限制。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/caution_3.0-zh-cn.png)
若升级插件，则需要重新配置该参数。
图13修改log-operator容器命令行参数   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002072169465.png "点击放大")
 #### 如何修改集群日志中心的日志存储时间？
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，在"集群管理"页面，将鼠标悬浮至集群名称上方，查看当前集群ID。
   
   图14查看集群ID   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002161920220.png "点击放大")
   
   
   
2. 进入[LTS控制台](https://console.huaweicloud.com/lts/#/cts/manager/groups)，根据集群ID查询对应的日志组和日志流。
   
   图15查询日志组   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001927918605.png "点击放大")
   
   
3. 找到对应的日志组，单击"修改"，设置日志存储时间。 
   ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
   日志存储时间影响将日志存储费用。
   图16修改日志存储时间   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001927917713.png "点击放大")
   
   
 
 #### 如何修复日志采集策略中日志组（流）不存在的问题？
- **场景一：默认日志组（流）不存在**
  以Kubernetes事件为例：当默认日志组（流）不存在时，控制台中的"Kubernetes事件"页面会提示当前日志组（流）不存在，您可以单击"创建默认日志组（流）"进行重新创建。
  重建后的默认日志组（流）的ID会发生变化，对接默认日志组（流）的已有采集策略无法生效，请参见[场景二]进行修复。
  图17创建默认日志组（流）   
  ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001895450748.png "点击放大") 
- **场景二：默认日志组（流）存在但与日志采集策略不一致**
  - 支持修改的日志采集策略，例如default-stdout，修复方案如下：
    1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称，在左侧导航栏中选择"日志中心"。
    
    2. 单击右上角"日志采集策略"，在对应的日志采集策略的操作栏中单击"编辑"。
    
    3. 选择"自定义日志组/日志流"，然后将其设置为集群的默认日志组（流）。
    
    
    图18设置默认日志组（流）   
    ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001895611500.png "点击放大") 
  
  - 不支持修改的日志采集策略，例如default-event，则需要重建对应采集策略，修复方案如下：
    1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称，在左侧导航栏中选择"日志中心"。
    
    2. 单击右上角"日志采集策略"，在对应的日志采集策略的操作栏中单击"删除"。
    
    3. 然后单击"创建日志采集策略"，选择策略模板中的"采集kubernetes事件"，单击"确定"进行创建。
     
   
- **场景三：自定义日志组不存在**
  CCE界面暂不支持非默认日志组的创建，请到云日志服务（LTS）进行重新创建。
  创建完毕后，参考以下步骤进行修复：
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称，在左侧导航栏中选择"日志中心"。
  
  2. 单击右上角"日志采集策略"，在对应的日志采集策略的操作栏中单击"编辑"。
  
  3. 选择"自定义日志组/日志流"，然后将其设置为新建的日志组。
  
  
  图19设置自定义日志组   
  ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002540195140.png "点击放大")
  
  
 
 #### Pod调度到CCI后，采集不到日志
若使用[profile控制Pod调度到CCI](https://support.huaweicloud.com/usermanual-cci/cci_01_0116.html#section4)后，出现调度到CCI的Pod采集不到日志的情况，且确认采集策略在CCE侧功能正常。
请检查CCE突发弹性引擎（对接CCI）插件版本是否低于1.3.54，若低于该版本，请升级插件。
 #### Turbo集群新创建节点场景出现FailedAssignENI告警
若CCE Turbo集群内已安装日志插件并正常运行，新创建节点时，由于新建节点的网卡未就绪，该节点上的 log-agent-fluent 组件可能会报FailedAssignENI告警，等待5秒后不会再次出现告警，实际对日志采集功能无影响。
