阿里云容器服务Kubernetes集群集成了日志服务,您可在创建集群时启用日志服务,快速采集Kubernetes集群的容器日志,包括容器的标准输出以及容器内的文本文件。
步骤一:启用日志服务组件Logtail
您可以在创建集群时选中使用日志服务,启用Logtail组件;也可以为已有集群启用Logtail组件。
创建集群时启用Logtail
为已有集群启用Logtail
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择日志与监控区域找到logtail-ds。 ,并在
- 在logtail-ds组件右侧,单击安装。
- 在安装组件对话框中单击确认。
如果您已安装旧版本的日志服务组件,可以在logtail-ds组件右侧,单击升级。
重要 升级logtail-ds组件后,会重置组件参数。若您之前自定义过logtail-ds或alibaba-log-controller的配置和环境变量,参数会被覆盖。您需要重新配置,具体操作,请参见手动升级。
步骤二:创建应用时配置日志服务
您可以在创建应用的同时配置日志服务,从而对容器的日志进行采集。目前支持控制台向导和YAML模板两种方式创建应用。
通过控制台向导创建应用并配置日志服务
通过YAML模板创建
步骤三:配置环境变量的高级参数
通过容器环境变量配置采集支持多种配置参数,您可根据实际需求设置高级参数来实现日志采集的特殊需求。
重要 通过容器环境变量配置采集日志的方式不适用边缘场景。
字段 | 说明 | 示例 | 注意事项 |
---|---|---|---|
aliyun_logs_{key} |
|
|
|
aliyun_logs_{key}_tags | 可选。值为{tag-key}={tag-value}类型,用于对日志进行标识。 |
|
- |
aliyun_logs_{key}_project | 可选。值为指定的日志服务Project。当不存在该环境变量时为您安装时所选的Project。 |
|
Project需与您的Logtail工作所在Region一致。 |
aliyun_logs_{key}_logstore | 可选。值为指定的日志服务Logstore。当不存在该环境变量时Logstore和{key}一致。 |
|
- |
aliyun_logs_{key}_shard | 可选。值为创建Logstore时的shard数,有效值为1~10。当不存在该环境变量时值为2。
说明 若logstore已经存在,则该参数不生效。
|
|
- |
aliyun_logs_{key}_ttl | 可选。值为指定的日志保存时间,有效值为1~3650。
说明 若logstore已经存在,则该参数不生效。
|
|
- |
aliyun_logs_{key}_machinegroup | 可选。值为应用的机器组。当不存在该环境变量时与安装Logtail的默认机器组一致。关于该参数的详细使用方法,请参见下文的定制需求2。 |
|
- |
aliyun_logs_{key}_logstoremode | 可选。值为指定的日志服务Logstore的类型,不指定该参数的话,默认值为standard,取值:
说明 若logstore已经存在,则该参数不生效。
|
|
该参数需要logtail-ds镜像版本>=1.3.1 |
- 定制需求1:将多个应用数据采集到同一Logstore
如果您需要将多个应用数据采集到同一Logstore,可以设置 aliyun_logs_{key}_logstore参数,例如以下配置将2个应用的stdout采集到stdout-logstore中。
示例中应用1的
{key}
为app1-stdout
,应用2的{key}
为app2-stdout
。应用1设置的环境变量为:######### 配置环境变量 ########### - name: aliyun_logs_app1-stdout value: stdout - name: aliyun_logs_app1-stdout_logstore value: stdout-logstore
应用2设置的环境变量为:######### 配置环境变量 ########### - name: aliyun_logs_app2-stdout value: stdout - name: aliyun_logs_app2-stdout_logstore value: stdout-logstore
- 定制需求2:将不同应用数据采集到不同的Project 如果您需要将不同应用的数据采集到多个Project中,您需要进行以下操作:
- 在每个Project中创建一个机器组,选择自定义标识,标识名为
k8s-group-{cluster-id}
,其中{cluster-id}
为您的集群ID,机器组名称您可以自定义配置。 - 每个应用的环境变量中配置project、logstore、machinegroup信息,其中机器组名称为您在上一步创建的机器组名。
如下示例中应用1的
{key}
为app1-stdout
,应用2的{key}
为app2-stdout
。其中如果两个应用在同一个K8s集群中,对应machinegroup可以使用同一个machinegroup。应用1设置的环境变量为:######### 配置环境变量 ########### - name: aliyun_logs_app1-stdout value: stdout - name: aliyun_logs_app1-stdout_project value: app1-project - name: aliyun_logs_app1-stdout_logstore value: app1-logstore - name: aliyun_logs_app1-stdout_machinegroup value: app1-machine-group
应用2设置的环境变量为:######### 应用2 配置环境变量 ########### - name: aliyun_logs_app2-stdout value: stdout - name: aliyun_logs_app2-stdout_project value: app2-project - name: aliyun_logs_app2-stdout_logstore value: app2-logstore - name: aliyun_logs_app2-stdout_machinegroup value: app1-machine-group
- 在每个Project中创建一个机器组,选择自定义标识,标识名为
步骤四:查看日志
本例中查看通过控制台向导创建的tomcat应用的日志。完成配置后,tomcat应用的日志已被采集并存储到日志服务中,您可以在日志服务控制台查看容器日志。操作步骤如下:
在为应用接入日志服务后,您也可以在ACK控制台查看容器的日志。操作如下:
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择 。
- 在日志中心页面,单击应用日志页签,设置检索条件后单击选择日志库即可查看应用容器的相关日志。
更多信息
- 默认情况下,日志服务会使用极简模式来采集您的数据(按行采集、不解析)。如果您需要更复杂的配置,可以参见以下日志服务文档并前往日志服务控制台进行配置修改。
- 除了通过控制台配置采集以外,您还可以直接通过CRD配置来对Kubernetes集群进行日志采集,具体可参见通过DaemonSet-CRD方式采集容器日志。
- 关于如何进行异常排查,请参见Logtail采集日志失败的排查思路。