如果需要每个Pod使用单独的Logtail实例来收集Pod内所有容器的日志,可以使用Sidecar方式在Kubernetes集群上部署Logtail。本文介绍Sidecar方式采集容器文本日志的工作原理、使用限制、前提条件、操作步骤等信息。
工作原理
Sidecar模式
在Sidecar模式中,每个容器组(Pod)运行一个Logtail容器,用于采集当前容器组(Pod)所有容器(Containers)的日志。不同Pod的日志采集相互隔离。
为了采集同一Pod中其他容器的日志文件,需要通过共享存储卷的方式来完成,即将同一份存储卷分别挂载到业务容器和Logtail容器。Sidecar方式采集容器日志的更多信息,请参见Sidecar日志采集介绍和Sidecar模式示例。存储卷的更多信息,请参见存储基础知识。
前提条件
注意事项
目标容器持续新增日志。Logtail只采集增量日志。如果下发Logtail采集配置后,日志文件无更新,则Logtail不会采集该文件中的日志。更多信息,请参见读取日志。
业务容器中待采集文件必须位于存储卷中,且该存储卷必须挂载到Logtail容器。
步骤一:为业务Pod注入Logtail容器
登录Kubernetes集群。
创建一个YAML文件。
sidecar.yaml
为文件的示例名称,请根据实际情况替换。vim sidecar.yaml
在YAML文件中输入如下脚本,并根据实际情况设置其中的参数。
YAML模板中,所有带有
${}
的占位符都需要替换为您环境中实际的值,其他参数禁止改动、删除。执行如下命令使
sidecar.yaml
文件配置生效。sidecar.yaml
为文件名,请根据实际情况替换。kubectl apply -f sidecar.yaml
步骤二:创建用户自定义标识机器组
步骤一中YAML参数ALIYUN_LOGTAIL_USER_DEFINED_ID
的值为用户自定义标识。
步骤三:创建Logtail采集配置
在目标Project中,单击目标Logstore左侧
。在快速接入数据对话框中,单击Kubernetes-文件卡片。
选择目标Project和Logstore,单击下一步。选择您在安装Logtail组件时所使用的Project。Logstore为您自定义创建的Logstore。
在机器组配置页面完成如下操作。机器组相关信息,详细请参见机器组。
根据实际场景,单击以下页签:
确认目标机器组已在应用机器组列表中,然后单击下一步。机器组选择步骤二创建的机器组。
如果需要新建机器组,请单击创建机器组,按照右侧面板进行创建。更多信息,请参见采集阿里云ACK集群文本日志(DaemonSet方式部署Logtail)。
如果机器组心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。
创建Logtail采集配置,单击下一步创建Logtail采集配置,日志服务开始采集日志。
Logtail采集配置生效时间最长需要3分钟,请耐心等待。
创建索引和预览数据,然后单击下一步。日志服务默认开启全文索引。您也可以根据采集到的日志,手动创建字段索引,或者单击自动生成索引,日志服务将自动生成字段索引。更多信息,请参见创建索引。
如果需要查询日志中的所有字段,建议使用全文索引。如果只需查询部分字段、建议使用字段索引,减少索引流量。如果需要对字段进行分析(SELECT语句),必须创建字段索引。
单击查询日志,系统将跳转至Logstore查询分析页面。
步骤四:查询分析日志
在配置向导的结束步骤中,单击查询日志。跳转到目标Logstore的查询分析页面,可能会有如下提示,原因是索引还未配置完成,关闭后等待1分钟,即可查看日志内容。
在输入框中输入查询分析语句,选择时间范围,就可以查询所有包含该字符的日志。查询分析语法请参见通过索引模式查询和分析日志。
相关文档
查看Logtail采集配置
登录日志服务控制台。
在Project列表区域,单击目标Project。
在 页签中,单击目标日志库前面的>,依次选择 。
单击目标Logtail采集配置,查看Logtail采集配置详情。
问题排查
查看控制台是否有报错信息,具体操作,请参见如何查看Logtail采集错误信息。
如果控制台无报错信息,排查机器组心跳、Logtail采集配置等内容。具体操作,请参见如何排查容器日志采集异常。