本文介绍Logtail的功能、优势、使用限制及配置流程等信息。

Logtail是日志服务提供的日志采集Agent,用于采集阿里云ECS、自建IDC、其他云厂商等服务器上的日志。

配置流程

Logtail采集功能
  1. 在服务器上安装Logtail,详情请参见安装Logtail(Linux系统)安装Logtail(Windows系统)

    如果您的服务器是非本账号的ECS、本地IDC、其他云厂商服务器,还需要配置用户标识,详情请参见配置用户标识

  2. 创建机器组。

    支持创建IP地址类型的机器组和用户自定义标识类型的机器组,详情请参见创建IP地址机器组创建用户自定义标识机器组

  3. 创建Logtail采集配置,并应用到机器组。

    您可以通过日志服务控制台配置向导完成操作,详情请参见概述

完成上述操作后,Logtail开始采集您服务器上的日志,并发送到对应的Logstore中,您可以通过日志服务控制台、API及SDK查询日志。

功能优势

  • 基于日志文件,无侵入式采集日志。您无需修改应用程序代码,且采集日志不会影响您的应用程序运行。
  • 除采集文本日志外,还支持采集binlog、http数据、容器日志等。
  • 对容器支持友好,支持标准容器、swarm集群、Kubernetes集群等容器集群的数据采集。
  • 稳定处理日志采集过程中的各种异常。当遇到网络异常、服务端异常等问题时会采用主动重试、本地缓存数据等措施保障数据安全。
  • 基于日志服务的集中管理能力。安装Logtail后,只需要在日志服务上配置机器组、Logtail采集配置等信息即可。
  • 完善的自我保护机制。为保证运行在服务器上的Logtail,不会明显影响您服务器上其他服务的性能,Logtail在CPU、内存及网络使用方面都做了严格的限制和保护机制。

处理能力与限制

Logtail处理能力与限制,请参见Logtail限制说明

核心概念

  • 机器组:一个机器组包含一台或多台待采集同类日志的服务器。将Logtail采集配置应用到机器组上后,日志服务会根据Logtail采集配置采集机器组内所有服务器上的日志。

    日志服务通过机器组管理所有需要通过Logtail采集日志的服务器,支持通过IP地址或者用户自定义标识的方式定义机器组。您可以通过日志服务控制台管理机器组(包括创建、删除机器组,添加、移除机器等操作)。

  • Logtail:日志服务提供的日志采集Agent,运行在待采集日志的服务器上,安装步骤请参见安装Logtail(Linux系统)安装Logtail(Windows系统)
    • Linux服务器:Logtail安装在/usr/local/ilogtail目录下,启动两个以ilogtail开头的独立进程,一个为采集进程,另外一个为守护进程,程序运行日志保存在/usr/local/ilogtail/ilogtail.LOG文件中。
    • Windows服务器:Logtail安装在C:\Program Files\Alibaba\Logtail目录下 (32位系统)或C:\Program Files (x86)\Alibaba\Logtail 目录下(64位系统)。您可以通过控制面板 > 管理工具 > 服务查看LogtailDaemon服务。程序运行日志保存在安装目录下的 ilogtail.LOG文件中。
  • Logtail采集配置:Logtail采集日志的策略集合。通过在创建Logtail采集配置时设置数据源、采集模式等参数,实现定制化的采集策略。Logtail采集配置定义了如何在服务器上采集同类日志并解析、发送到指定的日志服务Logstore上。

基本功能

功能 说明
实时采集日志 动态监控日志文件,实时读取、解析增量日志。日志从生成到发送到日志服务的延迟一般在3秒内,详情请参见Logtail采集原理
说明 Logtail不支持采集历史日志,对于一条日志,读取该日志的时间减去日志中记录的时间,差值超过12小时会被丢弃。
自动处理日志轮转 很多应用会按照文件大小或者日期对日志文件进行轮转(rotation),把原日志文件重命名,并新建一个空日志文件等待写入。例如:app.LOG文件,通过日志轮转会生成 app.LOG.1app.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会主动获取您的阿里云AK信息并对所有发送日志的数据包进行数据签名。
说明 Logtail在获取您的阿里云AK信息时采用HTTPS通道,保障您AK信息的安全性。

数据采集可靠性

Logtail在采集日志时,定期将采集的点位(CheckPoint)信息保存到本地,如果遇到服务器意外关闭、进程崩溃等异常情况时,Logtail重启后会从上一次记录的位置开始采集数据,尽可能保证数据不丢失。Logtail会根据启动参数配置文件中配置进行工作,如果资源占用超过限定值5分钟以上,则Logtail会强制重启。重启后可能会产生一定的数据重复。

Logtail内部采用了很多机制提升日志采集可靠性,但并不能保证日志一定不会丢失。以下情况可能造成日志丢失:
  • Logtail未运行且日志轮转多次。
  • 日志轮转速度极快,例如1秒轮转1次。
  • 日志采集速度长期无法达到日志产生速度。