什么是Logtail?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

什么是Logtail?

轩墨 2017-10-20 14:53:18 2640

Logtail接入服务是日志服务提供的日志采集Agent,通过控制台方式帮助您实时采集阿里云ECS等服务器上的日志。

配置流程



通过Logtail采集服务器日志可以通过以下步骤完成:
  1. 安装Logtail。在需要采集日志的源服务器上安装Logtail操作请参见安装Logtail(Windows)安装Logtail(Linux)
  2. 创建用户标识(非阿里云ECS)。从阿里云ECS采集日志不需要执行此步骤。
  3. 创建机器组。日志服务通过机器组的方式管理所有需要通过Logtail客户端采集日志的服务器。日志服务支持通过IP或者自定义标识的方式定义机器组。您也可以在应用Logtail配置到机器组时,根据提示创建机器组。
  4. 创建Logtail配置,并应用到机器组。您可以通过创建Logtail配置以 采集文本文件收集syslog日志,并将该Logtail配置应用到机器组。

您可以参考 样例 了解如何配置Logtail收集配置中的日志提取规则。

在完成如上流程后,您的ECS服务器上需要收集的新增日志会被主动收集、发送到对应Logstore中,历史数据不会被收集。您可以通过日志服务控制台或者SDK及API查询到这些日志。您还可以通过日志服务控制查询到所有ECS服务器上的Logtail收集日志状态,例如是否在正常收集,是否有错误等。
Logtail接入服务在日志服务控制台上的完整操作请参考 Logtail 收集日志

Docker

  • 阿里云容器服务:参见 集成日志服务
  • ECS/IDC自建Docker(需要把容器中日志目录Mount到宿主机上)
    1. 安装Logtail(Windows)安装Logtail(Linux)
    2. 将容器中日志目录Mount到宿主机目录。选择 1:使用命令(例如宿主机目录为 /log/webapp,容器中日志目录为 /opt/webapp/log)。[backcolor=transparent]docker run [backcolor=transparent]-[backcolor=transparent]d [backcolor=transparent]-[backcolor=transparent]P [backcolor=transparent]--[backcolor=transparent]name web [backcolor=transparent]-[backcolor=transparent]v [backcolor=transparent]/[backcolor=transparent]src[backcolor=transparent]/[backcolor=transparent]webapp[backcolor=transparent]:[backcolor=transparent]/opt/[backcolor=transparent]webapp training[backcolor=transparent]/[backcolor=transparent]webapp python app[backcolor=transparent].[backcolor=transparent]py
  • 选择 2:使用编排模板Mount。


核心概念


  • [backcolor=transparent]机器组:一个机器组包含一或多台需要收集一类日志的机器。通过绑定一组Logtail配置到一个机器组,可以让日志服务根据同样的Logtail配置采集一个机器组内所有服务器上的日志。您也可以通过日志服务控制台方便地对机器组进行管理(包括创建、删除机器组,添加、移除机器等)。同一个机器组内不可同时包含 Windows和 Linux机器,但可以包含不同版本的Windows Server或者不同发行版本的Linux机器。

  • [backcolor=transparent]Logtail客户端:Logtail是运行在需要收集日志的服务器上上执行日志收集工作的Agent。请参照 安装Logtail(Windows)安装Logtail(Linux)。 在服务器上安装Logtail后,需要配置Logtail并应用到机器组。[backcolor=transparent]Linux 下,Logtail安装在 /usr/local/ilogtail 目录下并启动两以 ilogtail 开头的个独立进程,一个为收集进程,另外一个为守护进程,程序运行日志为 /usr/local/ilogtail/ilogtail.LOG。
  • [backcolor=transparent]Windows 下,Logtail安装在目录 C:\Program Files\Alibaba\Logtail(32 位系统)或 C:\Program Files (x86)\Alibaba\Logtail(64 位系统)。您可以通过Windows管理工具-服务查看到两个Windows Service,LogtailWorker负责收集日志,LogtailDaemon负责守护工作程序。程序运行日志为安装目录下的 logtail_*.log。

[backcolor=transparent]Logtail配置:是Logtail收集日志的策略集合。通过为Logtail配置数据源、收集模式等参数,来对机器组内所有服务器进行定制化的收集策略。描述如何在机器上收集一类日志并解析、发送到日志服务的指定日志库。您可以通过控制台对每个Logstore添加Logtail配置,表示该Logstore接收以此Logtail配置收集的日志。

基本功能


Logtail接入服务提供如下功能:

  • [backcolor=transparent]实时收集日志:动态监控日志文件,实时地读取、解析增量日志。日志从生成到发往服务端一般在3秒延迟内。

    [backcolor=transparent]注意:Logtail接入服务不支持对历史数据的收集。对于一条日志,读取该日志的时刻减去日志产生的时刻,差值超过5分钟的会被丢弃。

  • [backcolor=transparent]自动处理日志轮转:很多应用会按照文件大小或者日期对日志文件进行轮转(rotation),把原日志文件重命名,并新建一个空日志文件等待写入。例如:监控app.LOG,日志轮转会产生 app.LOG.1,app.LOG.2 等。您可以指定收集日志写入的文件,如 app.LOG,Logtail会自动检测到日志轮转过程,保证这个过程中不会出现日志数据丢失。

    [backcolor=transparent]注意:如果日志文件秒级别时间范围内多次发生轮转,可能会丢失数据。

  • [backcolor=transparent]自动处理收集异常:因为服务端错误、网络措施、Quota超限等各种异常导致数据发送失败,Logtail会按场景主动重试。如果重试失败则会将数据写入本地缓存,稍后自动重发。

    [backcolor=transparent]注意:本地缓存位于用户服务器的磁盘上,如果本地缓存的数据24小时内仍无法成功被服务端接收,缓存数据会被丢弃并从本地缓存删除。

  • [backcolor=transparent]灵活配置收集策略:可以通过Logtail配置来非常灵活地指定如何在一台ECS服务器上收集日志。具体来说,您可以根据实际场景选择日志目录、文件,既可精确匹配,也可通过通配符模糊匹配。您可以自定义日志收集提取的方式和各个提取字段的名称,日志服务支持正则表达式方式的日志提取。另外,由于日志服务日志数据模型要求每条日志必须有精确的时间戳信息,Logtail提供了自定义的日志时间格式,方便您从不同格式的日志数据中提取必须要的日志时间戳信息。

  • [backcolor=transparent]自动同步收集配置:您在日志服务控制台上新建或更新配置,Logtail一般在3分钟时间内即可自动接受并使之生效,更新配置过程中数据收集不丢失。

  • [backcolor=transparent]自动升级客户端:在您手动安装Logtail到服务器后,日志服务负责Logtail 自动运维升级,此过程无需您参与。在整个Logtail升级过程中日志数据不丢失。

  • [backcolor=transparent]自我监控状态:为避免Logtail客户端消耗您太多资源而影响您其他服务。Logtail客户端会实时监控自身CPU和内存消耗。如果Logtail客户端在运行过程中,资源使用超出限制将会自动重启,避免影响机器上的其它作业。同时,该客户端也会有主动的网络限流保护措施,防止过度消耗用户带宽。

    [backcolor=transparent]注意:Logtail客户端在重启期间日志数据可能会丢失。
  • 如果Logtail客户端自身处理逻辑出现异常导致退出,相应的保护机制会触发并重新启动该客户端继续收集日志。但在重新启动之前的日志数据可能丢失。

[backcolor=transparent]签名数据发送:为保证您的数据在发送过程中不会被篡改,Logtail客户端会主动获取用户的阿里云访问秘钥并对所有发送日志的数据包进行数据签名。

[backcolor=transparent]注意: Logtail客户端在获取您的阿里云访问秘钥时采用HTTPS通道,保障您的访问秘钥安全性。


功能优势

  • 基于日志文件、无侵入式的收集日志。用户无需修改应用程序代码,且日志收集不会影响用户应用程序的运行逻辑。
  • 能够稳定地处理日志收集过程中各种异常。当遇到网络异常、服务端异常,用户数据临时超预留写入带宽限制等问题时会主动重试、本地缓存等措施保障数据安全。
  • 基于服务端的集中管理能力。用户在安装Logtail后(参见 安装Logtail(Windows)安装Logtail(Linux)),只需要在服务端集中配置需要收集的机器、收集方式等信息即可,无需逐个登录服务器进行配置。
  • 完善的自我保护机制。为保证运行在客户机器上的收集Agent不会明显影响用户自身服务的性能,Logtail客户端在CPU、内存及网络使用方面都做了严格的限制和保护机制。


处理能力与限制


Logtail接入服务在每台服务器上的处理能力及限制如下:
项目能力与限制
文件编码支持UTF8/GBK编码日志文件,如果日志文件是其它编码则会出现乱码、丢数据等未定义行为。建议使用UTF8编码以获得更好的处理性能。
日志处理吞吐能力原始日志流量默认限制为1MB/s,通过阿里云内部网络发送数据。超过该日志流量则有可能丢失日志,可根据 文档调整参数,最大支持约50MB/s。
网络错误处理支持本地缓存,最多使用500MB本地存储空间。在出现网络异常或者临时服务端超限,会主动缓存数据到本地并在之后尽快重试。
配置更新用户的配置更新生效的延时约30秒。
状态自检支持异常情况下自动重启,例如程序异常退出及使用资源超限等。
监控目录数主动限制可以监控的目录格式,避免出现过多消耗用户资源。如果监控上限已到,则放弃监控更多目录和日志文件。限制最多3000个目录(含子目录)。
软链接支持支持监控目录为软链接。
日志文件大小无限制。
[tr=rgb(239, 251, 255)][td]单条日志大小 单条日志大小限制为512KB。超出512KB的日志将不被采集。多行日志按行首正则表达式划分后,每条日志大小限制仍为512KB。 正则表达式类型使用Perl兼容正则表达式。
缓存 弹性计算 运维 监控 Linux 数据安全/隐私保护 Docker Windows Python 容器
分享到
取消 提交回答
全部回答(0)
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题