云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群。借助云容器引擎,您可以轻松部署、管理和扩展容器化应用程序。
云容器引擎CCE应用日志接入LTS后,在LTS控制台可以对收集到的日志进行统一管理和分析,帮助用户能够快速发现容器的问题,提高容器的性能和可靠性。
您可以按照如下步骤完成接入配置。
选择日志流:选择将日志存储到对应的日志流中,便于不同类型日志分类存储管理。
检查依赖项:自动检查安装ICAgent、自定义标识符、日志组或日志流等检查项是否符合要求。
选择主机组(可选):选择日志接入的主机范围,主机组是为了便于分类管理、提升配置多个主机日志采集的效率,对主机进行虚拟分组的单位。可以将需要采集日志的一台或多台主机加入到同一个主机组中,再将该主机组关联至同一个接入配置中。
采集配置:配置日志的采集路径、采集策略等。
结构化配置:通过不同的日志提取方式将日志流中的日志进行结构化。
索引配置:索引是一种存储结构,用于对日志数据进行查询。通过配置索引后,可对日志进行查询和分析操作。
完成接入配置:接入成功后,可以在接入列表进行任务的增删改查。
若需要采集多个场景的日志,您可以选择批量设置多个接入配置的方式,同时设置多个接入配置。
前提条件
CCE集群已安装ICAgent。若没有提前安装ICAgent,配置CCE接入LTS时会自动检查修复安装ICAgent,因此推荐预先安装ICAgent,以避免CCE接入LTS时触发自动安装流程带来的等待时间。
将已安装ICAgent的CCE集群加入自定义标识类型的主机组。
已关闭采集容器标准输出到AOM的开关。
已创建日志组和日志流。
如果在LTS主机页面看不到CCE集群,需要用户参考如下操作在统一身份认证服务IAM创建委托并授权后,就可以在LTS页面看到CCE集群。
在委托页面创建委托,委托名称为aom_admin_trust,委托类型为普通账号,委托的账号为op_svc_apm。
委托创建成功后,给aom_admin_trust委托授予如下云服务数据的访问权限:ECS ReadOnlyAccess、LTS FullAccess、CCE FullAccess、DMS UserAccess、RMS ReadOnlyAccess、CES ReadOnlyAccess、ECS CommonOperations。
使用限制
支持容器引擎为Docker的CCE集群节点。
支持使用Containerd作为容器引擎的CCE集群节点(ICAgent 5.12.130及以上版本)。
Docker存储驱动限制:容器文件日志采集目前仅支持overlay2存储驱动,不支持devicemapper作为存储驱动的节点。查看存储驱动类型,请使用如下命令:
docker info | grep "Storage Driver"
如果选择日志流时,采集方式为采集到集中日志流时,则必须已创建CCE集群。
LTS下发采集配置后,ICAgent对文件的采集规则如下:
新文件(首次采集):若文件最后修改时间与当前时间相差超过12小时,则不采集。
旧文件(非首次采集):若文件最后修改时间与当前时间相差超过2小时,则不采集。
步骤1:选择日志流
登录管理控制台,选择“管理与部署 > 云日志服务 LTS”,进入“日志管理”页面。
在左侧导航栏中,选择“日志接入 > 接入中心”,单击“云容器引擎 CCE - 应用日志”进行CCE接入配置。或在左侧导航栏中,选择“日志接入 > 接入管理”,单击“创建”,在弹出的页面中,选择“云容器引擎 CCE - 应用日志”进行CCE接入配置。
采集方式支持“采集到集中日志流”和“采集到自定义日志流”,您可以根据实际情况选择采集方式。
若选择“采集到集中日志流”,请执行如下操作步骤:
集中采集日志到一个固定的日志流。CCE集群默认的采集日志流分别为标准输出/错误stdout-{ClusterID}、节点文件hostfile-{ClusterID}、K8S事件event-{ClusterID}和容器文件containerfile-{ClusterID}。日志流名称会根据ClusterID自动命名,例如:集群ID为Cluster01,则标准输出/错误日志流为stdout-Cluster01。
在一个CCE集群下可以创建的采集日志流为标准输出/错误stdout-{ClusterID}、节点文件hostfile-{ClusterID}、K8s事件event-{ClusterID}和容器文件containerfile-{ClusterID}),如果某个日志组下,已创建
某种采集日志流,则不会在其他日志组或当前日志组下再创建该日志流。
单击“CCE集群”后的目标框,在下拉列表中选择具体的集群。
默认所属日志组为k8s-log-集群ID,例如集群ID为c7f3f4a5-bcb8-11ed-a4ec-0255ac100b07,默认所属日志组为k8s-log-c7f3f4a5-bcb8-11ed-a4ec-0255ac100b07。当无该日志组时,系统会提示:暂无该日志组,后续操作中,系统将会为您自动创建,创建完成后日志会集中采集到该日志组中。
单击“下一步:检查依赖项”。
若选择“采集到自定义日志流”,请执行如下操作步骤:
单击“CCE集群”后的目标框,在下拉列表中选择具体的集群。
单击“所属日志组”后的目标框,在下拉列表中选择具体的日志组,若没有所需的日志组,单击“所属日志组”目标框后的“新建”,在弹出的创建日志组页面创建新的日志组。
单击“所属日志流”后的目标框,在下拉列表中选择具体的日志流,若没有所需的日志流,单击“所属日志流”目标框后的“新建”,在弹出的创建日志流页面创建新的日志流。
单击“下一步:检查依赖项”。
步骤2:检查依赖项
系统自动检查以下内容检查项是否符合要求:
已安装ICAgent,且版本 >= 5.12.130。
存在自定义标识符为k8s-log-集群ID的主机组。
存在名为k8s-log-集群ID的日志组。当选择日志流为采集到集中日志流时,会进行该项内容检查。
存在系统推荐的集中采集的日志流。当选择日志流为采集到集中日志流时,会进行该项内容检查。
如果以上内容检查项中,有任意一项不符合要求,需单击“自动修复”按钮进行修复,否则将无法进行下一步操作。
自动修复:一键帮您完成以上内容检查项配置。
重新检查:重新检查依赖项。
步骤3:选择主机组(可选)
主机组是为了便于分类管理、提升配置多个主机日志采集的效率,对主机进行虚拟分组的单位。CCE集群已安装ICAgent,并且已创建自定义标识的主机组(如果不满足,配置CCE接入LTS时会自动检查修复)。
在选择主机组页面,系统自动勾选检查依赖项创建的k8s-log-集群ID的主机组。
您可以根据需要选择其他已创建的主机组。
主机组可以为空,但是会导致采集配置不生效,建议第一次接入时选择主机组。若不选择,可以在接入配置设置完成后对主机组进行设置。
在“主机管理 > 主机组”页面对主机组和接入配置进行关联。
在“日志接入 > 接入管理”页面,单击操作列的“修改”,进入接入配置页面对主机组和接入配置进行关联。
单击“下一步:采集配置”。
步骤4:采集配置
采集配置项涉及日志的采集范围、采集方式、格式处理等内容配置,请参考以下步骤完成采集配置。
采集配置名称:自定义采集配置名称,长度范围为1到64个字符,只支持输入英文、数字、中文、中划线、下划线以及小数点,且不能以小数点、下划线开头或以小数点结尾。
数据源配置:选择数据源类型,进行对应的数据源配置,详细请参考下表。
| 类型 | 参数配置 |
|---|---|
| 容器标准输出 | 采集集群内指定容器的标准输出日志和标准错误日志,仅支持Stderr和Stdout的日志。 被匹配上的容器的标准输出会采集到指定的日志流,原先采集到的AOM的标准输出会停止采集。
开启“允许文件多次采集”后,同一主机下的同一日志文件支持被采集到多个日志流。 关闭“允许文件多次采集”后,采集路径不能重复配置,即同一主机下的同一日志文件,即使跨日志流,也只能配置一次。 |
| 容器文件路径 | 采集集群内指定容器内的文件日志。
当CCE集群的工作负载中,已配置容器的挂载路径时,此时路径配置里添加的路径将无效。须将CCE集群页面中的挂载路径删除后,该配置才有效。 采集容器日志,当前不支持采集软链接文件,如果采集软链接文件,需要您配置到软链接所指向的文件。 自定义挂载的日志文件路径禁止使用软链接,正确配置需直接使用物理路径/mnt/logs,错误配置示例是通过软链接关联(例如/var/log -> /mnt/logs)。
|
| 节点文件路径 | 采集集群内指定节点的文件。
|
| K8S事件 | 采集K8S集群内的事件日志。 K8S事件不能重复配置,即一个K8S集群的K8S事件,只能配置接入到一个日志流。 |
(可选)K8s匹配规则:当数据源类型选择容器标准输出和容器文件路径时,支持设置K8s匹配规则。填写正则匹配规则后,单击校验按钮,支持校验确保正则表达式的正确性。ICAgent只支持RE2风格的正则表达式。
| 参数名称 | 参数说明 |
|---|---|
| K8s Namespace正则匹配 | 通过Namespace名称指定采集的容器,支持正则匹配。 采集名称符合正则规则的Namespace的日志,为空时采集所有Namespace的日志。 |
| K8s Pod正则匹配 | 通过Pod名称指定待采集的容器,支持正则匹配。 采集名称符合正则规则的Pod的日志,为空时采集所有Pod的日志。 |
| K8s容器名称正则匹配 | 通过容器名称指定待采集的容器(Kubernetes容器名称是定义在spec.containers中),支持正则匹配。 采集名称符合正则规则的容器的日志,为空时采集所有容器的日志。 |
| K8s Label白名单 | 通过K8s Label白名单指定待采集的容器。如果您要设置K8s Label白名单,那么LabelKey必填,LabelValue可选填。 新增多条白名单时,支持选择And或or的关系,即全部满足或满足任意白名单就可以被匹配。 若LabelValue为空,则K8S Label中包含LabelKey的容器都匹配;若LabelValue不为空,则K8S Label中包含LabelKey=LabelValue的容器才匹配;LabelKey需要全匹配,LabelValue支持正则匹配。 |
| K8s Label黑名单 | 通过K8s Label黑名单排除不采集的容器。如果您要设置K8s Label黑名单,那么LabelKey必填,LabelValue可选填。 新增多条黑名单时,支持选择And或or的关系,即全部满足或满足任意黑名单就可以被排除。 若LabelValue为空,则K8S Label中包含LabelKey的容器都被排除;若LabelValue不为空,则K8S Label中包含LabelKey=LabelValue的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。 |
| K8s Label日志标签 | 设置K8s Label日志标签后,日志服务将在日志中新增K8s Label相关字段。 设置K8S Label日志标签后,lts将在日志中新增相关字段。例如设置LabelKey为app,设置LabelValue为app_alias,当容器中包含app=lts时,将在日志中添加内容{app_alias:lts}。 |
| 容器Label白名单 | 通过容器Label白名单指定待采集的容器。如果您要设置容器Label白名单,那么LabelKey必填,LabelValue可选填。 新增多条白名单时,支持选择And或or的关系,即全部满足或满足任意白名单就可以被匹配。 若LabelValue为空,则容器Label中包含LabelKey的容器都匹配;若LabelValue不为空,则容器Label中包含LabelKey=LabelValue的容器才匹配;LabelKey需要全匹配,LabelValue支持正则匹配。 |
| 容器Label黑名单 | 通过容器Label黑名单排除不采集的容器。如果您要设置容器Label黑名单,那么LabelKey必填,LabelValue可选填。 新增多条黑名单时,支持选择And或or的关系,即全部满足或满足任意黑名单就可以被排除。 若LabelValue为空,则容器 Label中包含LabelKey的容器都被排除;若LabelValue不为空,则容器Label中包含LabelKey=LabelValue的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。 |
| 容器Label日志标签 | 设置容器Label日志标签后,日志服务将在日志中新增容器Label相关字段。 设置容器 Label日志标签后,lts将在日志中新增相关字段。例如设置LabelKey为app,设置LabelValue为app_alias,当容器中包含app=lts时,将在日志中添加内容{app_alias:lts}。 |
| 环境变量白名单 | 用于指定待采集的容器。如果您要设置环境变量白名单,那么Label Key必填,Label Value可选填。 新增多条白名单时,支持选择And或or的关系,即全部满足或满足任意白名单就可以被匹配。 如果环境变量Value为空,则容器环境变量中包含环境变量Key的容器都匹配;如果环境变量Value不为空,则容器环境变量中包含环境变量Key=环境变量Value的容器才被匹配;LabelKey需要全匹配,LabelValue支持正则匹配。 |
| 环境变量黑名单 | 用于排除不采集的容器。如果您要设置环境变量黑名单,那么Label Key必填,Label Value可选填。 新增多条黑名单时,支持选择And或or的关系,即全部满足或满足任意黑名单就可以被排除。 如果环境变量Value为空,则容器环境变量中包含环境变量Key的容器都将被排除;如果环境变量Value不为空,则容器环境变量中包含环境变量Key=环境变量Value的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。 |
| 环境变量日志标签 | 设置环境变量日志标签后,日志服务将在日志中新增环境变量相关字段。 设置环境变量日志标签后,lts将在日志中新增相关字段,例如设置环境变量Key为app,设置环境变量Value为app_alias,当K8S中包含环境变量app=lts时,将在日志中添加的内容为{app_alias:lts}。 |
其他配置。设置采集路径后,您还可以设置日志拆分、采集二进制文件、自定义元数据等。
| 名称 | 说明 | 示例 |
|---|---|---|
| 日志拆分 | 为了防止单条日志过大或被截断丢弃,您可以按文件大小拆分日志。
| 开启 |
| 采集二进制文件 | 支持采集以二进制格式存储的日志数据,您可以通过如下命令查看文件类型,如果包含charset=binary,那么该日志文件就是二进制文件。 file -i 文件名
| 开启 |
| 自定义元数据 |
系统内置字段:勾选需要设置的内置字段。 自定义键值对:单击“添加”,输入键值key和键值Value。 | 开启 |
参考下表配置日志格式、日志时间。
| 名称 | 说明 |
|---|---|
| 日志格式 |
|
| 日志时间 | 系统时间:表示系统当前时间,默认为日志采集时间,每条日志的行首显示日志的采集时间。
|
时间通配符:用日志打印时间来标识一条日志数据,通过时间通配符来匹配日志,每条日志的行首显示日志的打印时间。
填写示例:
| |
| 分行模式 | 日志格式选择多行日志时,需要选择分行模式,分行模式选择“日志时间”时,是以时间通配符来划分多行日志;当选择“正则模式”时,则以正则表达式划分多行日志。 |
| 正则表达式 | 此配置是用来标识一条日志数据的正则表达式。日志格式选择“多行日志”格式后且“分行模式”已选择“正则模式”后需要设置。 时间通配和正则表达式均是从每行日志的开头进行严格匹配,如果匹配不上,则会默认使用系统时间上报,这样可能会和文件内容中的时间不一致。如果没有特殊需求,建议使用单行日志-系统时间模式即可。 ICAgent只支持RE2风格的正则表达式。 |
单击“下一步:结构化配置”。
步骤5:结构化配置
结构化配置。
单击“下一步:索引配置”。
步骤6:索引配置
索引是一种存储结构,用于对日志数据进行查询。通过配置索引后,可对日志进行查询和分析操作。不同的索引配置,则会产生不同的查询和分析结果,请根据您的需要,合理配置索引。
若您暂时无需通过某字段进行查询或分析,接入时可以直接跳过索引配置,不影响日志采集。待日志接入成功后,再根据业务需求优化索引配置(仅对新写入的日志生效)。在“索引配置”页面保持默认设置,直接单击“跳过并提交”,界面提示“日志接入成功”。
若您需要通过特定字段进行查询或分析,接入时请在“索引配置”页面配置索引。您可以单击“自动配置”,云日志服务LTS会根据近15分钟的第一条日志内容或常见内置保留字段(例如hostIP、hostName、pathFile)自动生成字段索引。或者手动添加字段,只能添加已结构化的字段。设置完成后,单击“提交”,界面提示“日志接入成功”。日志接入成功后,您仍可以根据业务需求随时调整索引配置(仅对新写入的日志生效)。
步骤7:完成接入配置
接入成功后会生成一条接入配置信息。
单击接入配置名称可进入详情页面,查看该接入配置详细信息。
单击接入配置操作列的“修改”重新修改接入配置信息。
单击接入配置操作列的“更多 > 标签管理”即可添加标签。
单击接入配置操作列的“更多 > 复制”复制一条新的接入配置信息。
单击接入配置操作列的“删除”即可删除接入配置信息。
注意
删除接入配置后会导致日志无法正常采集,可能会影响用户日志相关业务异常,且删除后无法恢复,请谨慎操作。
若不需要采集日志,关闭“接入配置开关”列的开关。若需要重新采集日志,需要重新开启“接入配置开关”列的开关。
注意
关闭接入配置后会导致日志无法正常采集,可能会影响用户日志相关业务异常,请谨慎操作。
批量设置多个接入配置
支持同时批量设置多个接入配置,操作简单,不用重复配置即可快速完成多个场景的接入配置
在“接入管理”页面,单击“批量创建”,进入配置详情页面。
接入类型:选择云容器引擎 CCE-应用日志。
规则列表:
在输入框填写接入配置数量,单击“添加接入配置”。
在右侧配置项下方自定义填写“规则名称”,配置项设置完成后,也可以双击左侧接入配置的名称自定义命名。规则名称只支持输入英文、数字、中文、中划线、下划线及小数点,且不能以小数点、下划线开头或以小数点结尾。长度为1-64个字符。
鼠标放在接入配置上面,单击
即可直接复制接入配置。
鼠标放在接入配置上面,单击
,在弹出的提示框单击“确定”删除接入配置。
配置项:
左侧显示接入配置的信息,最多支持添加99个配置。
右侧显示配置接入的内容,详细请参考步骤4:采集配置进行设置。
一个接入配置设置完成后,单击“应用于其他接入配置”即可将该接入配置复制到其他接入配置。
单击“参数检查”,检查成功后,单击“提交”,批量接入设置完成。例如添加了4个接入配置,批量创建成功后,在“接入管理”下方,就会显示4条接入配置任务。
(可选)支持对接入配置任务进行以下操作:
勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。
勾选多个接入配置开关显示关闭的接入配置,单击“接入配置开启/关闭”,选择“开启”即可批量开启接入配置任务。
勾选多个接入配置开关显示开启的接入配置,单击“接入配置开启/关闭”,选择“关闭”。接入配置状态关闭后不会继续采集日志,请谨慎操作。
勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。