容器标准输出
简介
input_docker_stdout
input
插件可以实现从容器标准输出/标准错误流中采集日志,采集的日志内容将会保存在content
字段中。支持通过容器元信息筛选待采集容器,并支持多行文本切分、添加容器Meta信息等数据处理操作,概览如下:
容器筛选,每项筛选条件之间为AND关系
支持通过容器Label白名单指定待采集的容器,多个白名单之间关系为OR。
支持通过容器Label黑名单排除不要采集的容器,多个黑名单之间关系为OR。
支持通过环境变量白名单指定待采集的容器,多个白名单之间关系为OR。
支持通过环境变量黑名单排除不要采集的容器,多个黑名单之间关系为OR。
支持通过Kubernetes Namespace名称指定待采集的容器。
支持通过Kubernetes Pod名称指定待采集的容器。
支持通过Kubernetes容器名称指定待采集的容器。
支持通过Kubernetes Label白名单指定待采集的容器,多个白名单之间关系为OR。
支持通过Kubernetes Label黑名单排除不要采集的容器,多个黑名单之间关系为OR。
数据处理
支持采集多行日志(例如Java Stack日志等)。
支持上报时自动关联Kubernetes Label信息。
支持上报时自动关联容器Meta信息(例如容器名、IP、镜像、Pod、Namespace、环境变量等)。
支持上报时自动关联宿主机Meta信息(例如宿主机名、IP、环境变量等)。
配置参数
基本参数
筛选容器参数
数据处理参数
数据处理环境变量
默认日志字段
所有使用本插件上报的日志均额外携带下列字段。目前暂不支持更改。
样例
示例1:通过容器环境变量黑白名单过滤容器
采集环境变量含NGINX_SERVICE_PORT=80
且不含POD_NAMESPACE=kube-system
的容器的标准输出。
1. 获取环境变量。
您可以登录容器所在的宿主机查看容器的环境变量。具体操作,请参见获取容器环境变量。
命令提示:
docker inspect
crictl inspect
ctr -n k8s.io containers info
2. 创建iLogtail采集配置。
iLogtail采集配置示例如下所示。
示例2:通过容器Label黑白名单过滤容器
采集容器Label含io.kubernetes.container.name:nginx
且不含io.kubernetes.pod.namespace:kube-system
容器的标准输出。
1. 获取容器Label。
您可以登录容器所在的宿主机查看容器的Label。具体操作,请参见获取容器Label。
2. 创建Logtail采集配置。
Logtail采集配置示例如下所示。
示例3:通过Kubernetes Namespace名称、Pod名称和容器名称过滤容器
采集default命名空间下以nginx-开头的Pod中的nginx容器的标准输出。
1. 获取Kubernetes层级的信息。
命令提示:
kubectl describe
2. 创建Logtail采集配置。 Logtail采集配置示例如下所示。
示例4:通过Kubernetes Label过滤容器
采集Kubernetes Label含app=nginx且不含env=test开头的所有容器的标准输出。
1. 获取Kubernetes层级的信息。
2. 创建Logtail采集配置。 Logtail采集配置示例如下所示。
示例5:多行日志的iLogtail采集配置
采集输出在标准错误流的Java异常堆栈(多行日志)。
1. 获取日志样例。
根据有区分度的行首编写正则。
行首:2021-02-03 ...
正则:\d+-\d+-\d+.*
2. 创建Logtail采集配置。 Logtail采集配置示例如下所示。
Last updated