在容器中以DaemonSet模式安装Logtail后,您可通过CRD方式创建Logtail配置采集容器日志。
前提条件
- 已安装Logtail组件。具体操作,请参见安装Logtail组件(Kubernetes集群)。
- 目标容器持续产生日志。重要 Logtail只采集增量日志。如果下发Logtail配置后,日志文件无更新,则Logtail不会采集该文件中的日志。更多信息,请参见读取文件。
功能特点
- 采集文本日志时,只需配置容器内的日志文件路径,无需关心该路径到宿主机的映射。
- 支持采集标准输出信息(stdout)和标准出错信息(stderr)。
- 支持通过容器Label白名单指定待采集的容器。
- 支持通过容器Label黑名单排除不要采集的容器。
- 支持通过环境变量白名单指定待采集的容器。
- 支持通过环境变量黑名单排除不要采集的容器。
- 支持采集多行日志(例如Java Stack日志)。
- 支持上报容器日志时自动关联Meta信息(例如容器名、镜像、Pod、Namespace、环境变量等)。
- 当容器运行于Kubernetes时,Logtail还具有以下功能。
- 支持通过Kubernetes Namespace名称、Pod名称、容器名称指定待采集的容器。
- 支持通过Kubernetes Label白名单指定待采集的容器。
- 支持通过Kubernetes Label黑名单排除不要采集的容器。
- 支持上报容器日志时自动关联Kubernetes Label信息。
实现原理

- 使用
kubectl
或其他工具应用AliyunLogConfig CRD。 - alibaba-log-controller监听到CRD配置更新。
- alibaba-log-controller根据CRD配置中的内容以及日志服务中Logtail配置的状态,自动向日志服务提交创建Logstore、创建Logtail配置以及应用机器组的请求。
- Logtail定期请求Logtail配置所在服务器,获取新的或已更新的Logtail配置并进行热加载。
- Logtail根据Logtail配置采集各个容器上的标准输出或文本日志。
- Logtail将采集到的容器日志发送给日志服务。
使用限制
- 文本日志采集限制
- 采集停止策略:当容器被停止后,Logtail监听到容器
die
的事件后会停止该容器日志的采集。如果此时采集出现延迟,则可能丢失停止前的部分日志。 - 不支持采集软链接:目前Logtail无法访问业务容器的软链接,请按真实路径配置采集目录。
- 如果业务容器的数据目录是通过数据卷(Volume)挂载的,则不支持采集它的父目录,需设置采集目录为完整的数据目录。
例如/var/log/service目录是数据卷挂载的路径,则设置采集目录为/var/log将采集不到该目录下的日志,需设置采集目录为/var/log/service。
- Kubernetes默认将宿主机根目录挂载到Logtail容器的
/logtail_host
目录。如果您要采集宿主机文本日志,则配置日志文件路径时,需加上/logtail_host
前缀。例如需要采集宿主机上
/home/logs/app_log/
目录下的日志,则设置日志路径为/logtail_host/home/logs/app_log/
。 - Docker存储驱动限制:目前只支持overlay、overlay2,其他存储驱动需将日志所在目录通过数据卷挂载为临时目录。
如果日志目录是以PVC方式挂载到NAS,则不支持使用Daemonset方式采集日志,建议使用Sidecar方式采集。具体操作,请参见通过Sidecar-CRD方式采集容器文本日志、通过Sidecar-控制台方式采集容器文本日志。
- 采集停止策略:当容器被停止后,Logtail监听到容器
- 标准输出采集限制
Docker容器引擎限制:目前标准输出采集仅支持JSON类型的日志驱动。
- 通用限制Logtail支持Docker和Containerd两种容器引擎的数据采集,访问路径说明如下:
- Docker:Logtail通过/run/docker.sock访问Docker,请确保该路径存在且具备访问权限。
- Containerd:Logtail通过/run/containerd/containerd.sock访问Containerd,请确保该路径存在且具备访问权限。
创建Logtail配置
您只需要定义AliyunLogConfig CRD即可创建Logtail配置。创建完成后,系统自动应用该Logtail配置。如果您要删除Logtail配置只需删除对应的CRD资源即可。
- 登录Kubernetes集群。
- 执行如下命令创建一个YAML文件。
cube.yaml为文件名,请根据实际情况替换。
vim cube.yaml
- 在YAML文件输入如下脚本,并根据实际情况设置其中的参数。重要
- 请确保configName字段值在日志服务Project中唯一存在。
- 如果多个CRD关联同一个Logtail配置,则删除或修改任意一个CRD均会影响到该Logtail配置,导致其他关联该Logtail配置的CRD状态与日志服务中Logtail配置的状态不一致。
apiVersion: log.alibabacloud.com/v1alpha1 # 使用默认值,无需修改。 kind: AliyunLogConfig # 使用默认值,无需修改。 metadata: name: simple-stdout-example # 设置资源名,在当前Kubernetes集群内唯一。 spec: project: k8s-my-project # [可选]设置Project名称。默认为安装Logtail组件时设置的Project。 logstore: k8s-stdout # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstoreMode: standard # [可选]设置Logstore类型,该参数值仅在新建Logstore时生效。 shardCount: 2 # [可选]设置Shard数量。默认值为2,取值范围1~10。 lifeCycle: 90 # [可选]设置Logstore中数据的存储时间,该参数值仅在新建Logstore时生效。默认值为90,取值范围为1~3650。其中,3650天为永久存储。 logtailConfig: # 设置Logtail配置。 inputType: plugin # 设置采集的数据源类型。file表示采集文本日志或plugin表示采集标准输出。 configName: simple-stdout-example # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 inputDetail: # 设置Logtail配置的详细信息,具体配置请参见本文下方的示例。 ...
参数 数据类型 是否必填 说明 project string 否 Project名称。默认为安装Logtail组件时设置的Project。 logstore string 是 Logstore名称。 如果您所指定的Logstore不存在,日志服务会自动创建。
logstoreMode string 否 Logstore类型。更多信息,请参见管理Logstore。可选值: - query:查询型Logstore。
- standard:标准型Logstore。
重要- 该参数值仅在新建Logstore时生效,即您只能在创建Logstore时,指定Logstore类型。如果您在logstore参数中指定的Logstore已存在,则修改该参数值,不会生效。
- 针对alibaba-log-controller 0.3.3及以上版本,该设置才会生效。
shardCount int 否 Shard数量。默认值为2,取值范围为1~10。 lifeCycle int 否 Logstore中数据的存储时间。默认值为90,取值范围为1~3650。其中,3650天为永久存储。 重要 该参数值仅在新建Logstore时生效,即您只能在创建Logstore时,指定数据的存储时间。如果您在logstore参数中指定的Logstore已存在,则修改该参数值,不会生效。machineGroups array 否 机器组。默认为安装Logtail组件时,日志服务自动创建名为 k8s-group-${your_k8s_cluster_id}
的机器组。logtailConfig object 是 Logtail配置的详细定义,一般只需要定义其中的inputType参数、configName参数和inputDetail参数。inputDetail参数中包括日志过滤、写入模式、脱敏、日志主题等配置项。详细的参数说明,请参见Logtail配置。 logtailConfig的配置示例请参见Logtail配置示例(标准输出)、Logtail配置示例(文本日志)。
- 执行如下命令使Logtail配置生效。
cube.yaml为文件名,请根据实际情况替换。
kubectl apply -f cube.yaml
Logtail配置生效后,Logtail开始采集各个容器上的标准输出或文本日志,并发送到日志服务中。重要 采集到日志后,您需要先创建索引,才能在Logstore中查询和分析日志。具体操作,请参见创建索引。
查看Logtail配置
查看当前Kubernetes集群中所有的Logtail配置
kubectl get aliyunlogconfigs
命令进行查看,返回结果下图所示。
查看Logtail配置的详细信息和状态
您可以执行kubectl get aliyunlogconfigs config_name -o yaml
命令进行查看。其中,config_name为Logtail配置的名称,请根据实际情况替换。 返回结果如下图所示。
- 如果statusCode字段的值为200,表示应用Logtail配置成功。
- 如果statusCode字段的值为非200,表示应用Logtail配置失败。

Logtail配置示例(标准输出)
采集容器标准输出时,需将inputType设置为plugin
,并将具体信息填写到inputDetail
下的plugin
字段。具体的参数及其说明请参见通过DaemonSet-控制台方式采集容器标准输出。
极简模式采集
- 说明
通过极简模式采集除环境变量为
COLLECT_STDOUT_FLAG=false
之外的所有容器的标准输出(stdout和stderr)。其中,您可以登录容器所在的宿主机查看容器的环境变量。具体操作,请参见获取容器环境变量。 - 配置示例
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: simple-stdout-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-stdout # 设置Logtail配置。 logtailConfig: # 设置采集的数据源类型。采集标准输出时,需设置为plugin。 inputType: plugin # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 configName: simple-stdout-example inputDetail: plugin: inputs: - # input type type: service_docker_stdout detail: # 指定采集stdout和stderr。 Stdout: true Stderr: true # 设置环境变量黑名单,采集除环境变量为COLLECT_STDOUT_FLAG=false之外的所有容器的标准输出。 ExcludeEnv: COLLECT_STDOUT_FLAG: "false"
极简模式采集+正则模式处理
- 说明
通过极简模式采集容器中Grafana的访问日志,并使用正则模式将其解析为结构化数据。其中,Grafana容器的环境变量为
GF_INSTALL_PLUGINS=grafana-piechart-....
,您可以登录容器所在的宿主机进行查看。具体操作,请参见获取容器环境变量。 - 日志样例
t=2018-03-09T07:14:03+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=172.16.64.154 time_ms=0 size=29 referer=
- 配置示例
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: regex-stdout-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-stdout-regex # 设置Logtail配置。 logtailConfig: # 设置采集的数据源类型。采集标准输出时,需设置为plugin。 inputType: plugin # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 configName: regex-stdout-example inputDetail: plugin: inputs: - # input type type: service_docker_stdout detail: # 指定只采集标准输出stdout,不采集标准错误stderr。 Stdout: true Stderr: false # 设置环境变量白名单,只采集容器环境变量中EnvKey为GF_INSTALL_PLUGINS的容器的标准输出。 IncludeEnv: GF_INSTALL_PLUGINS: '' processors: - # 使用processor_regex插件(正则模式)解析所采集到的标准输出。 type: processor_regex detail: # 设置原始字段名。采集到的容器标准输出默认保存在content字段中。 SourceKey: content # 设置正则表达式,用于提取日志内容。 Regex: 't=(\d+-\d+-\w+:\d+:\d+\+\d+) lvl=(\w+) msg="([^"]+)" logger=(\w+) userId=(\w+) orgId=(\w+) uname=(\S*) method=(\w+) path=(\S+) status=(\d+) remote_addr=(\S+) time_ms=(\d+) size=(\d+) referer=(\S*).*' # 设置提取的字段列表。 Keys: ['time', 'level', 'message', 'logger', 'userId', 'orgId', 'uname', 'method', 'path', 'status', 'remote_addr', 'time_ms', 'size', 'referer'] # 保留原始字段。 KeepSource: true # 出现无匹配的原始字段时会报错。 NoKeyError: true # 正则表达式与原始字段的值不匹配时会报错。 NoMatchError: true
- 解析后的日志
通过Kubernetes Label过滤容器
- 说明采集Kubernetes Label中Key为job-name,Value以nginx-log-demo开头的所有容器的标准输出。说明 Logtail 1.0.34及以上版本支持通过K8s Label过滤容器。
- 配置示例
- 获取Kubernetes Label。
- 创建Logtail配置。 配置示例如下所示。参数说明,请参见通过DaemonSet-控制台方式采集容器标准输出。
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: simple-stdout-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-stdout # 设置Logtail配置。 logtailConfig: # 设置采集的数据源类型。采集标准输出时,需设置为plugin。 inputType: plugin # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 configName: simple-stdout-example inputDetail: plugin: inputs: - # input type type: service_docker_stdout detail: # 指定采集stdout和stderr。 Stdout: true Stderr: true # 设置K8s Label白名单,采集Kubernetes Label中Key为job-name,Value以nginx-log-demo开头的所有容器的标准输出。 IncludeK8sLabel: job-name: "^(nginx-log-demo.*)$"
- 获取Kubernetes Label。
通过Kubernetes Namespace名称、Pod名称和容器名称过滤容器
- 说明采集default命名空间下以nginx-log-demo开头的Pod中的nginx-log-demo-0容器的标准输出。说明 Logtail 1.0.34及以上版本支持通过Kubernetes Namespace名称、Pod名称或容器名称过滤容器。
- 配置示例
- 获取Kubernetes层级的信息。
- 获取Pod信息。
- 获取Namespace等信息。
- 获取Pod信息。
- 创建Logtail配置。 配置示例如下所示。参数说明,请参见通过DaemonSet-控制台方式采集容器标准输出。
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: simple-stdout-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-stdout # 设置Logtail配置。 logtailConfig: # 设置采集的数据源类型。采集标准输出时,需设置为plugin。 inputType: plugin # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 configName: simple-stdout-example inputDetail: plugin: inputs: - # input type type: service_docker_stdout detail: # 指定采集stdout和stderr。 Stdout: true Stderr: true K8sNamespaceRegex: ^(default)$ K8sPodRegex: '^(nginx-log-demo.*)$' K8sContainerRegex: ^(nginx-log-demo-0)$
- 获取Kubernetes层级的信息。
Logtail配置示例(文本日志)
采集容器文本日志时,需将inputType
设置为file
,并将具体信息填写到inputDetail
内,具体字段及说明请参见通过DaemonSet-控制台方式采集容器文本日志。
极简模式采集
- 说明
通过极简模式采集环境变量中包含EnvKey为
ALIYUN_LOGTAIL_USER_DEFINED_ID
的容器的文本日志,日志文件路径为/data/logs/app_1/simple.LOG。 - 配置示例
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: simple-file-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-file # 设置Logtail配置。 logtailConfig: # 设置采集的数据源类型。采集文本日志时,需设置为file。 inputType: file # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 configName: simple-file-example inputDetail: # 指定通过极简模式采集文本日志。 logType: common_reg_log # 设置日志文件所在路径。 logPath: /data/logs/app_1 # 设置日志文件的名称。支持通配符星号(*)和半角问号(?),例如log_*.log。 filePattern: simple.LOG # 采集容器的文本日志时,需设置dockerFile为true。 dockerFile: true # 设置环境变量白名单。只采集环境变量中包含EnvKey为
ALIYUN_LOGTAIL_USER_DEFINED_ID
的容器的文本日志。 dockerIncludeEnv: ALIYUN_LOGTAIL_USER_DEFINED_ID: ""
完整正则模式采集
- 说明
某Java程序日志为多行日志,日志中包含错误堆栈信息。您可以通过完整正则模式进行采集,并在Logtail配置中指定置行首正则表达式。
- 日志样例
[2018-05-11T20:10:16,000] [INFO] [SessionTracker] [SessionTrackerImpl.java:148] Expiring sessions java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8E\x8F",...' for column 'data' at row 1 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) at org.springframework.jdbc.support.AbstractFallbackSQLException
- 配置示例
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: regex-file-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-file logtailConfig: # 设置采集的数据源类型。采集文本日志时,需设置为file。 inputType: file # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 configName: regex-file-example inputDetail: # 指定通过完整正则模式采集文本日志。 logType: common_reg_log # 设置日志文件的路径。 logPath: /app/logs # 设置日志文件的名称。支持通配符星号(*)和半角问号(?),例如log_*.log。 filePattern: error.LOG # 设置用于匹配日志行首的行首正则表达式。 logBeginRegex: '\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*' # 设置正则表达式,用于提取日志内容。 regex: '\[([^]]+)]\s\[(\w+)]\s\[(\w+)]\s\[([^:]+):(\d+)]\s(.*)' # 设置提取的字段列表。 key: ["time", "level", "method", "file", "line", "message"] # 使用完整正则模式采集日志时,默认从日志的time字段中提取时间。如果无需提取时间,可不设置该字段。如果您设置了timeFormat字段,则需配置adjustTimezone字段和logTimezone字段。 timeFormat: '%Y-%m-%dT%H:%M:%S' # 由于Logtail默认工作在零时区,因此需通过如下配置,强制设置时区。 adjustTimezone: true # 设置时区偏移量。日志时间为东八区,如果是其他时区,请调整该值。 logTimezone: "GMT+08:00" # 解析失败时,上传原始日志。 discardUnmatch: false # 采集容器的文本日志时,需设置dockerFile为true。 dockerFile: true # 设置环境变量白名单。只采集环境变量中包含EnvKey为ALIYUN_LOGTAIL_USER_DEFINED_ID的容器的文本日志。 dockerIncludeEnv: ALIYUN_LOGTAIL_USER_DEFINED_ID: ""
- 解析后的日志
分隔符模式
- 说明
如果您要采集的容器文本日志中有明确的分隔符,您可以使用通过分隔符模式采集容器文本日志。分隔符日志以换行符为边界,每一行都是一条日志。分隔符日志使用分隔符将一条日志分割成多个字段。
- 配置示例
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: delimiter-file-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-file logtailConfig: # 设置采集的数据源类型。采集文本日志时,需设置为file。 inputType: file configName: delimiter-file-example # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 inputDetail: # 指定通过分隔符模式采集日志。 logType: delimiter_log # 设置日志文件的路径。 logPath: /usr/local/ilogtail # 设置日志文件的名称。支持通配符星号(*)和半角问号(?),例如log_*.log。 filePattern: delimiter_log.LOG # 设置分隔符。 separator: '|&|' # 设置提取的字段列表。 key: ['time', 'level', 'method', 'file', 'line', 'message'] # 设置时间字段。 timeKey: 'time' # 使用分隔符模式采集日志时,默认从日志的time字段中提取时间。如果无需提取时间,可不设置该字段。如果您设置了timeFormat字段,则需配置adjustTimezone字段和logTimezone字段。 timeFormat: '%Y-%m-%dT%H:%M:%S' # 由于Logtail默认工作在零时区,因此需通过如下配置,强制设置时区。 adjustTimezone: true # 设置时区偏移量。日志时间为东八区,如果是其他时区,请调整该值。 logTimezone: "GMT+08:00" # 解析失败时,上传原始日志。 discardUnmatch: false # 采集容器的文本日志时,需设置dockerFile为true。 dockerFile: true # 设置环境变量白名单。只采集环境变量中包含EnvKey为ALIYUN_LOGTAIL_USER_DEFINED_ID的容器的文本日志。 dockerIncludeEnv: ALIYUN_LOGTAIL_USER_DEFINED_ID: ''
JSON模式采集
- 说明
如果您要采集的容器文本日志为Object类型的JSON日志,则您可以使用JSON模式进行采集。
- 日志样例
{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/Jan/2020:13:30:28"}
- 配置示例
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: json-file-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-file logtailConfig: # 设置采集的数据源类型。采集文本日志时,需设置为file。 inputType: file # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 configName: json-file-example inputDetail: # 指定通过JSON模式采集日志。 logType: json_log # 设置日志文件的路径。 logPath: /usr/local/ilogtail # 设置日志文件的名称。支持通配符星号(*)和半角问号(?),例如log_*.log。 filePattern: json_log.LOG # 设置时间字段,如果无指定需求,则设置为timeKey: ''。 timeKey: 'time' # 设置时间格式。如果无指定需求,则设置为timeFormat: ''。 timeFormat: '%Y-%m-%dT%H:%M:%S' # 采集容器的文本日志时,需设置dockerFile为true。 dockerFile: true # 设置环境变量白名单。只采集环境变量中包含EnvKey为ALIYUN_LOGTAIL_USER_DEFINED_ID的容器的文本日志。 dockerIncludeEnv: ALIYUN_LOGTAIL_USER_DEFINED_ID: ""
通过Kubernetes信息过滤容器
- 说明采集指定容器中/data/logs/app_1目录下simple.LOG文件中的日志。过滤容器的条件如下所示:
- default命名空间。
- 名称以nginx-log-demo开头的Pod。
- 名称为nginx-log-demo-0的容器。
- Kubernetes Label中Key为job-name,Value以nginx-log-demo为开头。
说明 Logtail 1.0.34及以上版本支持通过Kubernetes Namespace名称、Pod名称、容器名称或Kubernetes Label过滤容器。 - 配置示例
- 获取Kubernetes层级的信息。
- 获取Pod信息。
- 获取Namespace等信息。
- 获取Kubernetes Label。
- 获取Pod信息。
- 创建Logtail配置
配置示例如下所示。更多信息,请参见通过DaemonSet-控制台方式采集容器标准输出。
说明 IncludeK8sLabel、ExcludeK8sLabel、K8sNamespaceRegex、K8sPodRegex、K8sContainerRegex、ExternalEnvTag、ExternalK8sLabelTag等Kubernetes信息相关的参数,必须配置在advanced参数的k8s参数下。参数说明,请参见通过DaemonSet-控制台方式采集容器标准输出。apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # 设置资源名,在当前Kubernetes集群内唯一。 name: simple-file-example spec: # 设置Logstore名称。如果您所指定的Logstore不存在,日志服务会自动创建。 logstore: k8s-file # 设置Logtail配置。 logtailConfig: # 设置采集的数据源类型。采集文本日志时,需设置为file。 inputType: file # 设置Logtail配置的名称,必须与资源名(metadata.name)相同。 configName: simple-file-example inputDetail: # 指定通过极简模式采集文本日志。 logType: common_reg_log # 设置日志文件所在路径。 logPath: /data/logs/app_1 # 设置日志文件的名称。支持通配符星号(*)和半角问号(?),例如log_*.log。 filePattern: simple.LOG # 采集容器的文本日志时,需设置dockerFile为true。 dockerFile: true #设置容器过滤条件。 advanced: k8s: K8sNamespaceRegex: ^(default)$ K8sPodRegex: '^(nginx-log-demo.*)$' K8sContainerRegex: ^(nginx-log-demo-0)$ IncludeK8sLabel: job-name: "^(nginx-log-demo.*)$"
- 获取Kubernetes层级的信息。
问题排查
当您使用Logtail采集容器(标准容器、Kubernetes)日志遇到异常情况时,您可以参见如下内容进行排查。