详情页标题前

阿里云日志服务SLSLogtail限制说明-云淘科技

详情页1

本文简介Logtail采集数据时在运行环境、文件采集、容器采集、CheckPoint管理、Logtail采集配置、机器组、性能、错误处理等方面的限制。

运行环境

限制项 限制说明
体系结构
  • Linux Logtail版本支持x86_64和arm64。
  • Windows Logtail版本支持x86_32和x86_64。
内存 负载为空时,不开启插件最少需要20 MB内存,开启插件最少需要120 MB内存。

实际使用量与采集速率、监控目录和文件数量、发送阻塞程度有关。

系统环境
  • Linux Kernel 2.6.32及以上版本。
  • glibc 2.5及以上版本。
  • Windows Server 2004及以上版本。
Kubernetes
  • 使用DaemonSet方式采集日志时,要求Kubernetes为1.10.0及以上版本(支持Mount propagation: HostToContainer)。
  • 使用CRD方式(alibaba-log-controller组件)采集日志时,要求Kubernetes为1.16.0及以上版本。

    Kubernetes 1.7.0及以上版本提供的apiextensions.k8s.io/v1beta1 API也支持CRD能力,但Beta版本的API稳定性取决于具体的Kubernetes版本,稳定性未知。

Docker 采集容器标准输出的限制说明如下:

  • 必须在Docker的配置文件daemon.json中添加"log-driver": "json-file"
  • 如果是Centos 7.4及以上版本(除Centos 8.0以外),需设置fs.may_detach_mounts=1。更多信息,请参见Bug 1468249、Bug 1441737和issue 34538。
ACK logtail-ds组件
  • logtail-ds:每个节点至少预留0.1 Core ,256 MB内存。
  • alibaba-log-controller:每个节点至少预留0.05 Core CPU,100 MB内存。

重要 以上组件均为system-cluster-critical优先级,集群资源不足时请勿部署,否则可能驱逐节点上原有的Pod。

文件采集

限制项限制说明
单条日志长度默认限制为512 KB。您可通过启动参数max_read_buffer_size进行调整,最大不能超过8 MB。具体操作,请参见设置Logtail启动参数。

多行日志按行首正则表达式划分后,每条日志大小限制仍为512 KB。如果日志超过512 KB,会被强制拆分为多条进行采集。例如:单条日志大小为1025 KB,则第一次处理512 KB,第二次处理512 KB,第三次处理1 KB,最终采集结果为多条不完整的日志。

文件编码 支持UTF8或GBK的编码日志文件,建议使用UTF8编码获得更好的处理性能。警告 如果日志文件为其它编码格式则会出现乱码、数据丢失等问题。
日志文件大小 无限制。
日志文件轮转 日志轮转队列大小默认为20。您可通过启动参数logreader_max_rotate_queue_size进行调整。具体操作,请参见设置Logtail启动参数。支持设置采集路径为xxx.logxxx.log*形式。重要 同一个Logtail实例中请勿混用两种形式,否则可能导致同一文件匹配多个Logtail采集配置,出现重复采集。

如果未处理完成的文件超过20个,将导致新生成的日志丢失。此类情况,请优先排查Logstore Shard写入Quota是否超限,并调整Logtail并发水平。具体操作,请推荐参数值。

更多信息,请参见相关技术文章。

日志解析阻塞时采集行为 日志解析阻塞时,Logtail会保持该日志文件描述符为打开状态,避免阻塞期间文件被删除,导致日志丢失。

如果解析阻塞期间出现多次日志文件轮转,Logtail会将文件放入轮转队列。

正则表达式 支持Perl兼容正则表达式。
JSON 完全支持标准JSON(RFC7159、ECMA-404)。不支持非标准JSON,例如{"name": "å­¦"}
同一文件对应多个Logtail配置 默认一个文件只能匹配一个Logtail采集配置。如果文件中的日志需要被采集多份,请参见如何实现文件中的日志被采集多份。重要 采集多份时,文件读取的IO、计算资源和网络IO都会线性增加。
文件打开行为 Logtail会保持被采集的文件和轮转队列中待采集的文件处于打开状态,以保证采集数据完整性。出现以下情况,会关闭文件。

  • 文件超过5分钟未被修改。
  • 发生轮转且采集完毕。
  • Logtail采集配置发生变更。

如果无论文件是否采集完成或仍有日志写入文件,您都希望文件在删除后的可控时间内释放文件句柄,则您可通过启动参数force_release_deleted_file_fd_timeout设置超时时间。具体操作,请参见设置Logtail启动参数。

首次日志采集行为 Logtail只采集增量的日志文件。首次发现文件被修改后,如果文件大小超过1 MB(容器标准输出为512 KB),则从最后1 MB处开始采集,否则从开始位置采集。

您可通过Logtail采集配置中的tail_size_kb参数调整新文件首次采集的大小。具体操作,请参见Logtail配置。

如果下发Logtail采集配置后,日志文件一直无修改,则Logtail不会采集该文件。如果需要采集历史文件,请参见导入历史日志文件。

文件发生覆盖的行为 Logtail采用inode+文件中前1024字节的Hash识别文件。文件被覆盖后,如果inode或文件前1024字节Hash发生变化,则文件会作为新文件从头开始采集,否则不会被采集。
文件发生移动的行为 文件发生移动后,如果匹配Logtail采集配置,且该Logtail采集配置之前从未匹配过该文件,则移动后的文档将被当成新文件从头开始采集,否则不会被采集。
文件采集历史 Logtail会在内存中保留文件采集历史进度,保证文件发生变化后仅采集增量部分,超过保留范围的日志如果发生写入,会导致重复采集。

  • 默认最多保留1个月内的历史文件。
  • 如果同一目录下历史文件超过5,000个时,仅保留最近1周的记录。
  • 如果同一目录下历史文件超过10,000个时,仅保留1天内的记录。
  • 如果在Logtail采集配置中设置了超时属性,则仅保留30分钟内的历史记录。更多信息,请参见高级配置。
非标准文本日志 对于日志中包含\0的行,该条日志会被截断到第一个\0处,之后部分丢弃。对于其他转义字符(如ASCII颜色)或不可见字符,Logtail将按原样上报。

容器采集

说明 通过Logtail采集容器日志时,除上述文件采集的限制项外,还存在如下限制项。

限制项 限制说明
单条日志长度 如果采集的是容器标准输出,则单条日志长度不可超过容器日志截断阈值。阿里云ACK、ECI等产品的日志截断阈值为16 KB。
首次日志采集行为 如果采集的是容器标准输出,则首次发现文件修改后,默认如果文件大小超过512 KB,则从最后512 K处开始采集,否则从头采集。您可通过Logtail采集配置中的StartLogMaxOffset参数调整。具体操作,请参见通过DaemonSet-控制台方式采集容器标准输出。
软链接 采集容器文件中的日志时,不支持目录及文件的软连接。
容器生命周期 默认情况下,容器生命周期至少在10秒以上,Logtail才能采集到日志。在容器文件采集场景下,出于性能因素,Logtail将限制3分钟内容器更新次数为10次。您可通过启动参数docker_config_update_interval和max_docker_config_update_times进行调整。具体操作,请设置Logtail启动参数。
标准输出日志轮转 容器的标准输出文件由docker或kubelet进行轮转,kubelet日志文件轮转默认大小为10 MB(docker日志轮转在ACK上被设置为100 MB),如果容器每秒输出标准输出的速率大于10 MB/s,将导致文件快速轮转,建议改用容器文件方式采集或修改kubelet的containerLogMaxSize参数以避免日志丢失。
标准输出日志驱动 如果使用Docker作为容器运行时,必须在Docker的配置文件daemon.json中添加"log-driver": "json-file"

CheckPoint管理

限制项 限制说明
CheckPoint超时时间 默认情况下,如果文件超过30天未被修改,该Checkpoint将被删除。如果在Logtail采集配置中设置了preserve:false,则文件超过30分钟未被修改,该Checkpoint将被删除。
CheckPoint保存策略 定期保存(15分钟),程序退出时会自动保存。您可以通过启动参数check_point_dump_interval进行调整。具体操作,请参见设置Logtail启动参数。
CheckPoint保存位置 保存路径默认为/tmp/logtail_checkpoint。您可以通过启动参数check_point_filename进行调整。具体操作,请参见设置Logtail启动参数。
宕机时的处理 由于CheckPoint是定期保存,因此宕机恢复时将从上一个完整保存的CheckPoint开始恢复,可能导致数据采集重复。调整Checkpoint保存策略以减少数据被重复采集。

Logtail采集配置

限制项 限制说明
配置更新生效的延时 从通过控制台或API更新配置到Logtail客户端配置生效的延时约为30秒。
配置动态加载 支持,且其中某一配置更新不影响其他配置。
单个Logtail实例的总体可加载配置数 理论上无限制。建议一台服务器中的Logtail采集配置数不超过100个。
第三方Flusher输出 通过日志服务控制台或者API创建的配置会与Logstore建立关联,因此,当您在插件配置中使用第三方Flusher时,Logtail会默认往当前Logstore发送一份数据。
多账号、跨账号 支持。更多信息,请参见多账号场景和通过Logtail跨阿里云账号采集容器日志。
多地域 默认不支持,如有需求请提工单申请。
全球加速 支持。需在服务侧开启后,在客户端设置全球加速。更多信息,请参见开启全球加速服务。

机器组

限制项 限制说明
机器数量 理论上无限制,建议配置不超过100,000个,否则心跳无法正常获取。
应用配置数 理论上无限制,建议配置数不超过1,000个。

性能

限制项 限制说明
日志处理吞吐能力 原始日志流量默认限制为20 MB/s(数据被编码压缩后上传,一般压缩率为5~10倍)。超过该日志流量则有可能丢失日志,您可启动参数max_bytes_per_sec进行调整。具体操作,请参见设置Logtail启动参数。
最大性能 单核的能力如下:

  • 极简模式日志最大处理能力为100 MB/s。
  • 正则默认最大处理能力为20 MB/s(与正则表达式的复杂度有关)。
  • 分隔符日志最大处理能力为40 MB/s。
  • JSON日志最大处理能力为30 MB/s。

通过启动参数process_thread_count设置多个处理线程,可提升1.5~3倍性能。

最大监控目录及文件数 与内存使用限制参数mem_usage_limit有关(主机场景默认为384 MB,容器场景默认为2048 MB),分为以下四个层级:

  • 最大监控目录总数:⌊mem_usage_limit/100⌋×5000(目录不包含Logtail采集配置中指定的目录黑名单)。
  • 最大监控目录和文件总数:⌊mem_usage_limit/100⌋×50000(目录不包含Logtail采集配置中指定的目录黑名单,文件包含未被Logtail采集配置匹配的文件)。
  • 单个采集配置监控目录和文件总数:⌊mem_usage_limit/100⌋×5000(目录不包含Logtail采集配置中指定的目录黑名单,文件包含未被Logtail采集配置匹配的文件)。
  • 单个目录中被监控的子目录和文件总数:⌊mem_usage_limit/100⌋×5000(目录包含Logtail采集配置中指定的目录黑名单,文件包含未被Logtail采集配置匹配的文件)。

当上述任一层级所监控的目录及文件数达到上限时,Logtail不再对该层级中剩余的目录和文件进行监控。您可以通过提高Logtail采集配置监控目录的精度或调整启动参数mem_usage_limit来提高监控上限。关于mem_usage_limit参数的更多信息,请参见设置Logtail启动参数。

另外,针对Linux系统,Logtail还支持通过inotify机制对目录进行监听,从而减少日志采集的延时。inotify机制所能监控的最大目录数(含子目录)由启动参数default_max_inotify_watch_num指定,默认为3000。

当被inotify机制监控的目录数达到上限时,将使用常规机制对剩余目录进行监控,不影响日志采集。您可以通过提高Logtail采集配置监控目录的精度或调整启动参数default_max_inotify_watch_num来提高inotify的监控上限。关于default_max_inotify_watch_num参数的更多信息,请参见设置Logtail启动参数。

资源超限处理策略 如果Logtail占用相关资源超过最大限制的时间5分钟,则Logtail会强制重启,此时数据可能会丢失或重复。
多租户隔离 Logtail在配置级别实现隔离,即单个Logtail采集配置出现异常不影响其他Logtail采集配置。更多信息,请参见相关技术文章。
日志采集延迟 正常情况下从日志写入磁盘到Logtail采集到日志的延迟不超过1秒。
日志上传策略 Logtail会将同一文件的日志自动聚合上传,聚合条件为日志超过2000条、日志总大小超过2 MB或者日志采集时间超过3秒。任一条件满足则触发上传行为。

错误处理

限制项 限制说明
网络错误处理 在出现网络异常时会主动重试并自动调整重试间隔。在极端情况下,可能存在日志重复采集或丢弃的风险:

  • 客户端发出的包被服务端接收,而服务端回应的包未能在15秒内被客户端接收时,客户端的重试将导致数据的重复采集。
  • 网络链路异常导致客户端收到的包损坏,连续产生5次错误,最终导致数据被丢弃。
资源配额超限处理 如果数据发送速率超出Logstore最大配额,Logtail会阻塞采集并自动重试。请尝试扩大Logstore的Shard数量。更多信息,请参见相关技术文章。
客户端时间异常 可能因为请求时间和服务端时间差别超过15分钟,导致最大重试5次仍然不成功,数据被丢弃。请修正客户端机器时间。
Project或Logstore不存在 重试5次仍然不成功后丢弃数据。这种情况可能是因为您通过API删除了Logstore。请通过API删除对应Logtail采集配置和配置应用。
鉴权失败 重试5次仍然不成功后丢弃数据。这种情况通常有2种可能。

  • 在Logtail刚启动时出现,与网络不稳定,无法获得鉴权有关。
  • 如果持续出现,与机器无法通过HTTPS协议与日志服务Endpoint建立连接获得鉴权有关。
其他未知错误 重试5次仍然不成功后丢弃数据。
超时最大尝试时间 如果数据持续发送失败超过6小时,该数据将被丢弃。
状态自检 支持异常情况下自动重启,例如程序异常退出及使用资源超限等。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/162276.html

(0)
上一篇 2023年12月10日 上午4:07
下一篇 2023年12月10日 上午4:08
详情页2

相关推荐

  • 阿里云日志服务SLS创建索引-云淘科技

    索引是一种倒排的数据存储结构,由关键词和指向实际数据的逻辑指针组成,用于快速根据关键词定位到具体数据行,类似于数据的目录。您只有创建索引后,才能进行查询和分析操作。 前提条件 已采集日志。具体操作,请参见数据采集。 重要 进行日志分析前,需要先将日志采集到Standard Logstore中。更多信息,请参见管理Logstore。注意事项若当前Logstor…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云人工智能平台PAI高级配置:服务存储挂载-云淘科技

    本文为您介绍OSS、NAS、Git代码仓库、Docker镜像和EmptyDir四种形式的存储挂载,帮助您灵活选择挂载的存储类型。 背景信息 当前EAS支持四种形式的存储挂载:OSS、NAS、Git代码仓库、Docker镜像和EmptyDir。在服务运行时将指定的存储路径挂载到服务的实例中,用户可根据场景需求灵活选择挂载的存储类型,也支持多种存储类型同时挂载。…

    阿里云人工智能平台PAI 2023年12月10日
  • 阿里云ECS云服务器DescribePrice-云淘科技

    调用DescribePrice查询云服务器ECS资源的最新价格。 接口说明 查询不同类型资源的价格时,必需参数也有所不同,具体说明如下: 参数ResourceType=instance时,您必须同时指定参数InstanceType。 参数ResourceType=disk时,您必须同时指定参数DataDisk.1.Category和DataDisk.1.Si…

    阿里云服务器 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS使用前须知-云淘科技

    日志服务联合云数据库Redis推出CloudLens for Redis,用于集中管理Redis实例以及采集Redis运行日志、慢日志和审计日志。本文介绍CloudLens for Redis的功能、资产、费用、使用限制等相关信息。 功能说明 CloudLens for Redis支持如下功能: 支持集中管理当前阿里云账号下所有符合条件的Redis实例。条件…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云负载均衡添加UDP监听-云淘科技

    UDP协议多用于关注实时性而对可靠性要求相对较低的场景,如视频聊天和金融实时行情推送等。您可以添加一个UDP监听转发来自UDP协议的请求。 背景信息 在添加UDP监听前,注意以下限制: UDP监听的250、4789和4790三个端口为系统保留端口,暂时不对外开放。 暂不支持分片包。 经典网络负载均衡实例的UDP监听暂不支持查看源地址。 在以下两种情况下,UD…

    阿里云负载均衡 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。