Logtail是日志服务提供的日志采集Agent,用于采集阿里云ECS、自建IDC、其他云厂商等服务器上的日志。本文介绍Logtail的功能、优势、使用限制及配置流程等信息。
Logtail多年来一直承载着阿里巴巴集团重要服务的数据采集。每天采集数百万服务器上的实时数据,日流量数十PB,并历经多次双十一挑战。
相关性能指标,请参见Logtail提升采集性能。
相关技术分享,请参见 Logtail技术分享一和Logtail技术分享二。
配置流程
在服务器上安装Logtail。
如何为阿里云ECS实例安装Logtail,请参见安装Logtail(ECS实例)。
如何为Linux系统安装Logtail,请参见安装Logtail(Linux系统)。
如何为Windows系统安装Logtail,安装Logtail(Windows系统)。
如果您的服务器是非本账号的ECS、本地IDC或其他云厂商服务器,您需要为服务器配置用户标识。
具体操作,请参见配置用户标识。
创建机器组。
如何创建支持创建IP地址类型的机器组,请参见创建IP地址机器组。
如何创建用户自定义标识类型的机器组,请参见创建用户自定义标识机器组。
创建Logtail采集配置,并应用到机器组。
完成上述操作后,Logtail开始采集您服务器上的日志,并发送到对应的Logstore中。您可以通过日志服务控制台、API、SDK或CLI查询日志。
功能优势
基于日志文件,无侵入式采集日志。您无需修改应用程序代码,且采集日志不会影响您的应用程序运行。
除采集文本日志外,还支持采集binlog、http数据、容器日志等。
对容器支持友好,支持标准容器、Kubernetes集群等容器集群的数据采集。
阿里云容器服务Kubernetes:请参见K8s容器日志提取。
自建Kubernetes:请参见K8s容器日志提取。
自建其他Docker集群:请参见采集标准Docker容器日志。
稳定处理日志采集过程中的各种异常。当遇到网络异常、服务端异常等问题时会采用主动重试、本地缓存数据等措施保障数据安全。
基于日志服务的集中管理能力。安装Logtail后,只需要在日志服务上配置机器组、Logtail采集配置等信息即可。
完善的自我保护机制。为保证运行在服务器上的Logtail,不会明显影响您服务器上其他服务的性能,Logtail在CPU、内存及网络使用方面都做了严格的限制和保护机制。
处理能力与限制
Logtail处理能力与限制,请参见Logtail限制说明。
核心概念
机器组:一个机器组包含一台或多台待采集同类日志的服务器。将Logtail采集配置应用到机器组上后,日志服务会根据Logtail采集配置采集机器组内所有服务器上的日志。
日志服务通过机器组管理所有需要通过Logtail采集日志的服务器,支持通过IP地址或者用户自定义标识的方式定义机器组。您可以通过日志服务控制台管理机器组(包括创建、删除机器组,添加、移除机器等操作)。 更多信息,请参见机器组简介。
Logtail:日志服务提供的日志采集Agent,运行在待采集日志的服务器上。
Linux操作系统:Logtail安装在/usr/local/ilogtail目录下,启动两个以ilogtail开头的独立进程,一个为采集进程,另外一个为守护进程,程序运行日志保存在/usr/local/ilogtail/ilogtail.LOG文件中。更多信息,请参见安装Logtail(Linux系统)。
Windows操作系统
Logtail(32位程序)
安装在Windows 32位操作系统中时,对应的安装目录为C:\Program Files\Alibaba\Logtail。
安装在Windows 64位操作系统中时,对应的安装目录为C:\Program Files (x86)\Alibaba\Logtail。
说明Windows 64位操作系统支持运行32/64位应用程序,但是出于兼容性考虑,在Windows 64位操作系统上,Windows会使用单独的x86目录来存放32位应用程序。
Logtail(64位程序)
只支持安装在Windows 64位操作系统中,对应的安装目录为C:\Program Files\Alibaba\Logtail。
您可以通过
,查看LogtailDaemon服务(Logtail 1.0.0.0及以上版本)或LogtailWorker服务(Logtail 0.x.x.x版本),确认Logtail的运行状态。程序运行日志保存在安装目录下的ilogtail.LOG
文件中。更多信息,请参见安装Logtail(Windows系统)。
Logtail采集配置:Logtail采集日志的策略集合。通过在创建Logtail采集配置时设置数据源、采集模式等参数,实现定制化的采集策略。Logtail采集配置定义了如何在服务器上采集同类日志并解析、发送到指定的日志服务Logstore上。
基本功能
功能 | 说明 |
实时采集日志 | 动态监控日志文件,实时读取、解析增量日志。日志从生成到发送到日志服务的延迟一般在3秒内。更多信息,请参见Logtail采集详情。 说明 Logtail不支持采集历史日志,对于一条日志,读取该日志的时间减去日志中记录的时间,差值超过12小时会被丢弃。如果您要采集历史日志文件,请参见导入历史日志文件。 |
自动处理日志轮转 | 很多应用会按照文件大小或者日期对日志文件进行轮转(rotation),把原日志文件重命名,并新建一个空日志文件等待写入。例如:app.LOG文件,通过日志轮转会生成 app.LOG.1、app.LOG.2 等。您可以指定采集日志写入的文件,如app.LOG,Logtail会自动检测到日志轮转过程,保证这个过程中不会丢失日志数据。 |
多种采集输入源 | Logtail除支持采集文本日志外,还支持syslog、http、MySQL binlog等数据源。更多信息,请参见数据采集概述。 |
兼容开源采集Agent | Logtail支持Logstash、Beats等开源软件采集的数据作为数据源。更多信息,请参见数据采集概述。 |
自动处理采集异常 | 因为服务端错误、网络措施、配额超限等各种异常导致数据发送失败,Logtail会按场景主动重试。如果重试失败则将数据写入本地缓存,等待3秒自动重发。更多信息,请参见如何使用Logtail自动诊断工具。 |
灵活配置采集策略 | 可以通过Logtail采集配置非常灵活地采集日志。您可以根据实际场景指定日志目录和文件,支持精确匹配,也支持通配符模糊匹配。您也可以自定义提取日志的方式和提取字段的名称,日志服务支持通过正则表达式提取日志。 由于日志服务中的日志数据模型要求每条日志必须有精确的时间戳信息,Logtail提供了自定义的日志时间格式,方便您从不同格式的日志数据中提取必要的日志时间戳信息。 |
自动同步Logtail采集配置 | 您在日志服务控制台上新建或更新Logtail采集配置,一般情况下,Logtail在3分钟时间内即可接收并生效。更新过程中不会丢失日志数据。 |
自我监控状态 | Logtail会实时监控自身CPU和内存消耗,避免Logtail消耗您太多资源而影响您的其他服务。Logtail在运行过程中,如果资源使用超出限制将会自动重启,避免影响服务器上的其他服务。同时,Logtail有主动的网络限流保护措施,防止过度消耗带宽。更多信息,请参见启动参数配置文件(ilogtail_config.json)。 |
签名数据发送 | 为保证您的数据在发送过程中不会被篡改,Logtail会通过可信通道从服务端获取私密Token,并对所有发送日志的数据包进行数据签名。 说明 Logtail在获取私密Token时采用HTTPS通道,保障相关安全性。 |
数据采集可靠性
Logtail在采集日志时,定期将采集的点位(CheckPoint)信息保存到本地,如果遇到服务器意外关闭、进程崩溃等异常情况时,Logtail重启后会从上一次记录的位置开始采集数据,尽可能保证数据不丢失。Logtail会根据启动参数配置文件中配置进行工作,如果资源占用超过限定值5分钟以上,则Logtail会强制重启。重启后可能会产生一定的数据重复。
Logtail内部采用了很多机制提升日志采集可靠性,但并不能保证日志一定不会丢失。以下情况可能造成日志丢失:
Logtail未运行且日志轮转多次。
日志轮转速度极快,例如1秒轮转1次。
日志采集速度长期无法达到日志产生速度。