云服务器内容精选

  • 启用云原生日志采集插件采集日志 登录U CS 控制台,进入“容器舰队”,单击舰队名称进入舰队页面。 选择“容器集群”,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 (仅华为云集群)未进行授权的用户需要先授权,已授权的用户直接跳转下一步。在弹出框中单击“确认授权”。 (仅华为云集群)页面单击“一键开启”,等待约30秒后,页面自动跳转。 采集容器标准输出:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到 云日志 服务(LTS)。 采集Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)。 (仅本地集群)为本地集群云原生日志采集插件授权。详细步骤请参见本地集群安装云原生日志插件前置授权。 (仅本地集群)页面单击“立即开启”,在弹窗中进行日志采集配置与网络配置,等待约30秒后,页面自动跳转。 表1 本地集群日志采集配置与网络配置 配置 描述 日志采集配置 采集容器标准输出:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到云日志服务(LTS)。 采集Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)和 应用运维管理 AOM )。 Kubernetes审计日志:采集Kubernetes审计日志并上报到云日志服务 (LTS)。 kube-apiserver日志:采集控制面组件kube-apiserver组件日志并上报到云日志服务(LTS)。 kube-controller-manager日志:采集控制面组件kube-controller-manager组件日志并上报到云日志服务 (LTS)。 kube-scheduler日志:采集控制面组件kube-scheduler组件日志并上报到云日志服务 (LTS )。 网络配置 公网接入:通过公网Internet接入,要求集群能够访问公网,具有弹性灵活、成本低、易接入的优势。公网接入要求集群能够访问公网,请确保集群已符合此条件,否则会接入失败。 云专线/VPN接入:通过云专线(DC)或 虚拟专用网络 (VPN)服务将云下网络与云上虚拟私有云(VPC)连通,并利用 VPC终端节点 通过内网与容器智能分析建立连接,具有高速、低时延、安全的优势。详情见本地集群使用云专线/VPN上报日志。
  • 约束与限制 仅支持1.21及以上版本的华为云集群或本地集群。 每个集群限制50条日志规则。 不采集.gz、.tar、.zip后缀类型的日志文件。 采集容器文件日志时,若节点存储模式为Device Mapper模式,路径配置必须为节点数据盘挂载路径。 若容器运行时为containerd模式,容器标准输出日志中的多行配置暂不生效。(1.3.0及以上版本没有该限制) 每个集群限制单行日志采集速率不超过10000条/秒,多行日志不超过2000条/秒。 每个节点中,所有日志策略监听的文件数不能超过4096个文件 。 如果业务容器的数据目录是通过数据卷(Volume)挂载的,插件不支持采集它的父目录,需设置采集目录为完整的数据目录。 容器运行时间建议不小于1分钟,防止日志文件删除过快,无法及时采集。
  • 使用云原生日志采集插件采集日志 启用云原生日志采集插件日志采集功能 在集群创建时启用云原生日志采集插件日志采集 登录云容器引擎(CCE)控制台。 在控制台上方导航栏,单击“购买集群”。 在“插件选择”页面中,选择“云原生日志采集插件”。 单击右下角“下一步:插件配置”,根据需求勾选以下配置。 容器日志:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到云日志服务(LTS)。 Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)。 配置完成后,单击右下角“下一步:确认配置”,在弹出的窗口中单击“确定”,完成创建。 为已有集群启用CCE 云原生日志采集插件日志采集 登录云容器引擎(CCE)控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 未进行授权的用户需要先授权,已授权的用户直接跳转下一步。 在弹出框中单击“确认授权”。 页面单击“一键开启”,等待约30秒后,页面自动跳转。 采集容器标准输出:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到云日志服务(LTS)。 采集Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)。 查看并配置日志采集策略。 登录云容器引擎(CCE)控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 图1 查看日志策略 若启用日志采集功能时勾选了采集容器标准输出和采集Kubernetes事件,将创建两个日志策略,并对接默认的LTS日志组、日志流。 default-stdout 采集标准输出。默认日志组:k8s-logs-{集群ID};默认日志流:stdout-{集群ID} default-event 采集Kubernetes事件。默认日志组:k8s-logs-{集群ID};默认日志流:event-{集群ID} 创建日志策略:单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若启用日志采集功能时未勾选采集容器标准输出和采集Kubernetes事件,或者删除了对应的日志策略,可通过该方式重新创建默认日志策略。 图2 使用策略模板 自定义策略:用于配置自定义日志策略。 图3 自定义策略 表1 自定义策略参数说明 参数 说明 日志类型 指定采集哪类日志。 容器标准输出:用于采集容器标准输出,可以按命名空间、工作负载名称、实例标签配置采集策略。 容器文件路径:用于采集容器内的日志,可以按工作负载和实例标签配置采集策略。 日志源 采集哪些容器的日志。 所有容器:可以指定采集某个命名空间的所有容器,如不指定则采集所有命名空间的容器。 指定工作负载:指定采集哪些工作负载容器的日志,可以指定采集工作负载中具体容器的日志,如不指定则采集所有容器的日志。 指定实例标签:根据标签指定采集哪些工作负载容器的日志,可以指定采集工作负载中具体容器的日志,如不指定则采集所有容器的日志。 路径配置 用于配置需要采集的日志路径。 文件路径必须以/ 开头,只能包含大写字母、小写字母、数字或特殊字符-_/*?,且长度不能超过512个字符。 文件名称只能包含大写字母、小写字母、数字或特殊字符-_*?.。 日志文件夹:请填写绝对路径。日志文件名:不支持.gz、.tar、.zip后缀类型。 最多有三级目录采用通配符匹配,且第一级目录不能使用通配符。 目录名和文件名支持完整名称和通配符模式,通配符只支持星号(*)和半角问号(?)。 星号(*)表示匹配多个任意字符。半角问号(?)表示匹配单个任意字符。例如: 日志路径为/var/logs/* 文件名*.log,表示/var/logs下所有目录中后缀名为.log的文件。 日志路径为 /var/logs/app_* 文件名*.log,表示/var/logs目录下所有符合app_*格式的目录中后缀名为.log的文件。 如果业务容器的数据目录是通过数据卷(Volume)挂载的,插件不支持采集它的父目录,需设置采集目录为完整的数据目录。例如/var/log/service目录是数据卷挂载的路径,则设置采集目录为/var/log或/var/log/*将采集不到该目录下的日志,需设置采集目录为/var/log/service。 日志格式 单行文本 每条日志仅包含一行文本,以换行符 \n 作为各条日志的分界线。 多行文本 有些程序打印的日志存在一条完整的日志数据跨占多行(例如 Java 程序日志)情况,日志采集系统默认是按行采集。如果您想在日志采集系统中按整条显示日志,可以开启多行文本,采用首行正则的方式进行匹配,当选择多行文本时,需填写日志匹配格式。 例如: 需采集的日志格式如下,则需填写时间的正则匹配,在日志匹配格式处填写:\d{4}-\d{2}-\d{2} \d{2}\:\d{2}\:\d{2}.* 则下面以日期开头三行日志会作为一条完整日志。 2022-01-01 00:00:00 Exception in thread "main" java.lang.RuntimeException: Something has gone wrong, aborting! at com.myproject.module.MyProject.badMethod(MyProject.java:22) at com.myproject.module.MyProject.oneMoreMethod(MyProject.java:18) 上报到云日志服务(LTS) 用于配置日志上报的日志组和日志流。 使用默认日志组/日志流:将为您自动选择默认日志组(k8s-log-{集群ID})和默认的日志流(stdout-{集群ID})。 自定义日志组/日志流:可在下拉框选择任意日志组和日志流。 日志组 日志组是云日志服务进行日志管理的基本单位。如果您未创建日志组,CCE会提示您进行创建,默认名称为k8s-log-{集群ID},如 k8s-log-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3。 日志流 日志流(LogStream):日志流是日志读写的基本单位,日志组中可以创建日志流,将不同类型的日志分类存储,方便对日志进一步分类管理。在安装插件或者根据模板创建日志策略时,会自动创建以下日志流: 容器日志:默认名称为stdout-{集群ID},如 stdout-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3 k8s事件:默认名称为event-{集群ID},如 event-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3 编辑日志策略:单击“编辑”按钮,可对已经存在的日志策略进行修改。 删除日志策略:单击“删除”按钮,可对已经存在的日志策略进行删除。 查看日志。 登录云容器引擎(CCE)控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 日志中心下有3个页签,支持不同类型日志查看。 容器日志:显示默认日志组(k8s-log-{集群ID})下默认日志流(stdout-{集群ID})中的所有日志数据,支持通过工作负载搜索。 图4 容器日志查询 Kubernetes事件:显示默认日志组(k8s-log-{集群ID})下默认日志流(event-{集群ID})中的所有日志数据,用于查询集群产生的Kubernetes事件。 全局日志查询:支持查看所有日志组日志流下的日志信息。可通过选择日志流查看所选日志流中的日志信息,默认会选择集群默认日志组(k8s-log-{集群ID}),可通过单击切换日志组右侧的图标切换其他日志组。 图5 全局日志查询 单击右上角“日志采集策略”,单击“查看日志”,可以直接跳转至对应日志策略的日志列表。 图6 查看日志
  • 常见问题处理 插件中除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标准输出报错:Failed to create log group, the number of log groups exceeds the quota 示例: 2023/05/05 12:17:20.799 [E] call 3 times failed, resion: 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下删除部分无用的日志组。限制详情见:日志组。 日志无法上报,otel组件标准输出报错:log's quota has full 解决方案: 云日志服务(LTS)有免费赠送的额度,超出后将收费,报错说明免费额度已用完,如果需要继续使用,请前往云日志服务控制台“配置中心”,打开“超额继续采集日志”开关。 图7 配额设置 采集容器内日志,且采集目录配置了通配符,日志无法采集。 排查方法:请检查工作负载配置中Volume挂载情况,如果业务容器的数据目录是通过数据卷(Volume)挂载的,插件不支持采集它的父目录,需设置采集目录为完整的数据目录。例如/var/log/service目录是数据卷挂载的路径,则设置采集目录为/var/log或/var/log/*将采集不到该目录下的日志,需设置采集目录为/var/log/service。 解决方案:若日志生成目录为/application/logs/{应用名}/*.log,建议工作负载挂载Volume时,直接挂载/application/logs,日志策略中配置采集路径为/application/logs/*/*.log
  • Kubernetes事件上报应用运维管理(AOM) 自1.3.2版本起,云原生日志采集插件默认会将上报所有Warning级别事件以及部分Normal级别事件到应用运维管理(AOM),上报的事件可用于配置告警。当集群版本为1.19.16、1.21.11、1.23.9或1.25.4及以上时,安装云原生日志采集插件后,事件上报AOM将不再由控制面组件上报,改为由云原生日志采集插件上报,卸载插件后将不再上报事件到AOM。 自定义事件上报 若已上报的事件不能满足需求,可通过修改配置,修改需要上报到应用运维管理(AOM)的事件。 通过控制台配置 登录云容器引擎(CCE)控制台,单击集群名称进入集群,选择左侧导航栏的“配置中心”。 选择“监控运维配置”页签,在“日志配置”中修改Kubernetes事件上报至AOM的策略。 异常事件上报:默认开启,会将所有异常事件上报至AOM。您可以单击“配置黑名单”,将不需要上报的事件添加至黑名单进行管理,其中“事件名称”可通过CCE事件列表查询。 普通事件上报:开启后,会将普通事件上报至AOM,系统默认配置了部分需要上报的普通事件。如果您需要自定义上报的事件,可以单击“配置白名单”,将需要上报添加至白名单进行管理,其中“事件名称”可通过CCE事件列表查询。 配置修改完成后,单击“确认配置”。 通过kubectl配置 在集群上执行以下命令,编辑当前的事件采集配置。 kubectl edit logconfig -n kube-system default-event-aom 根据需要修改事件采集配置。 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:提示
  • Kubernetes事件上报云日志服务(LTS) 集群未安装CCE 云原生日志采集插件 安装CCE 云原生日志采集插件时,可通过勾选采集Kubernetes事件,创建默认日志采集策略,采集所有事件上报到LTS。安装方法见:通过云原生日志采集插件采集容器日志。 集群已安装CCE 云原生日志采集插件 登录云容器引擎(CCE)控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若安装插件时未勾选采集Kubernetes事件,或者删除了对应的日志策略,可通过该方式重新创建默认事件采集策略。 图1 创建日志策略 事件查看:可直接在“日志中心”页面查看,选择日志策略配置的日志流名称,即可查看上报到云日志服务(LTS)的事件。 图2 查看事件
  • 开启集群控制面审计日志 创建集群时开启 登录云容器引擎(CCE)控制台。 在控制台上方导航栏,单击“购买集群”,填写集群配置并单击“下一步:插件选择”。 在“插件选择”页面中,选择安装“云原生日志采集插件”并单击“下一步:插件配置”。 在“插件配置”页面中,在“云原生日志采集插件”配置中勾选“kubernetes审计日志”。 图1 创建集群时开启集群审计日志 单击“下一步:确认配置”完成集群创建。