默认情况下,一个文件只能匹配一个Logtail采集配置。本文介绍如何实现文件日志被采集多份。
背景信息
当多个Logtail采集配置匹配同一个文件时,会导致多倍的CPU、内存、磁盘IO和网络IO资源占用,将影响同一台服务器部署的其他服务性能,因此默认情况下,一个文件只能匹配一个Logtail采集配置。
解决方案
将日志数据存储到不同Logstore
不需要配置多个Logtail采集配置,可以使用日志服务数据加工功能对日志进行复制,避免对同主机的其他服务性能造成影响。具体操作,请参见复制Logstore数据。
创建多个Logtail采集配置
主机场景
创建目录软链接
为文件所在的目录创建软链接。在一个Logtail配置中使用原路径,在另一个Logtail配置中使用软链接路径。例如执行如下命令,为文件所在目录
/home/log/nginx/log
创建软链接/home/log/nginx/link_log
,通过软链接可以读取目录下的文件内容。ln -s /home/log/nginx/log /home/log/nginx/link_log
添加强制采集配置
在Logtail采集配置的输入配置中,打开允许文件多次采集开关。参见采集主机文本日志。
容器场景
采集容器日志的配置步骤,请参见通过DaemonSet方式采集Kubernetes容器文本日志和通过Sidecar方式采集Kubernetes容器文本日志。
控制台
在Logtail采集配置的输入配置中,打开允许文件多次采集开关。
CRD
定义多个CRD。