LoongCollector采集主机文本日志

本文将介绍在主机场景下手动安装日志服务LoongCollector采集文本日志的流程,阅读本文将帮助您在主机场景下完成LoongCollector文本日志的采集。

前提条件

操作步骤

步骤一:安装LoongCollector

请根据表格选择LoongCollector下载与安装方式:

说明

示例代码中${region_id}为日志服务Project所在地域,请参见开服地域后替换,例如华东 1(杭州)对应的${region_id}cn-hangzhou

主机类型

操作系统

下载方式

安装方式

Linux

ARM

主机可联网,直接下载:

wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh;

根据网络情况选择安装命令:

#公网方式安装
chmod +x loongcollector.sh; ./loongcollector.sh install ${region_id}-internet
#服务器分布在海外各地的自建机房或者来自海外云厂商,使用公网传输数据可能会出现网络延迟高、传输不稳定等问题,推荐选择传输加速传输数据。此方式不支持金融云地域
chmod +x loongcollector.sh; ./loongcollector.sh install ${region_id}-acceleration

x86-64

ARM

主机离线,需先在可以访问公网的服务器上下载安装脚本与安装包:

wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh;wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/aarch64/main/loongcollector-linux64.tar.gz;

将安装脚本和安装包拷贝至需要安装Logtail的服务器上后,根据网络情况选择安装命令:

#公网方式安装
chmod +x loongcollector.sh; ./loongcollector.sh install-local ${region_id}-internet
#服务器分布在海外各地的自建机房或者来自海外云厂商,使用公网传输数据可能会出现网络延迟高、传输不稳定等问题,推荐选择传输加速传输数据。此方式不支持金融云地域
chmod +x loongcollector.sh; ./loongcollector.sh install-local ${region_id}-acceleration

x86-64

主机离线,需先在可以访问公网的服务器上下载安装脚本与安装包:

wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh;wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/x86_64/main/loongcollector-linux64.tar.gz;

步骤二:配置机器组

说明

LoongCollectorLogtail的升级版,目前采集流程的区别仅在于安装组件时,因此后续流程与Logtail采集基本一致。

  1. 创建用户标识(阿里云账号ID文件):授权该阿里云账号的Project通过LoongCollector采集服务器日志。如果您的ECS与日志服务Project在同一个阿里云账号下,可跳过创建用户标识步骤。

    1. 登录日志服务控制台,鼠标悬浮在右上角用户头像,在弹出的标签页中查看并复制账号ID。若您使用RAM用户登录,请复制主账号ID

      imageimage

    2. 登录需要采集数据的服务器,通过以下方式配置用户标识。

      • /etc/ilogtail/users目录下,创建日志服务所属的阿里云账号ID文件。

        touch /etc/ilogtail/users/{阿里云账号ID} # 如果/etc/ilogtail/users目录不存在,请手动创建目录。用户标识配置文件只需配置文件名,无需配置文件后缀。
      • 当您使用多个阿里云账号下的日志服务Project对同一台服务器进行日志采集时,您可以在同一台服务器上创建多个阿里云账号ID文件。例如:

        touch /etc/ilogtail/users/{阿里云账号A ID}
        touch /etc/ilogtail/users/{阿里云账号B ID}
  2. 创建用户自定义标识(机器组标识):日志服务通过发现用户自定义标识与主机上LoongCollector建立心跳连接。

    在指定目录下创建用户自定义标识文件user_defined_id并配置用户自定义标识

    重要
    • 同一机器组中不允许同时存在LinuxWindows服务器,请勿在LinuxWindows服务器上配置相同的用户自定义标识

    • 一个服务器可配置多个用户自定义标识,标识之间以换行符分隔。

    1. Linux服务器配置用户自定义标识,可使用以下命令完成。

      echo "user-defined-1" > /etc/ilogtail/user_defined_id # 如果目录或文件不存在,请手动创建。
  3. 创建机器组:将主机添加到机器组中,日志服务通过机器组与主机上LoongCollector关联,以供后续下发采集配置。

    1. 登录日志服务控制台,在Project列表,单击打开目标Project后进入如下页面,按页面所示在资源的机器组下点击立即创建,在右边的弹框中输入机器组名称,机器组标识选择用户自定义标识,并在用户自定义标识中填入您在主机上配置的用户自定义标识,本例为user-defined-1。完成后点确定。image

    2. 在机器组列表下为您创建了一个机器组,您可以看到在主机上安装的LoongCollectorIP出现在机器状态列表中,并且心跳状态为OK,说明该LoongCollector已经成功启动并上报了心跳。若机器组状态下无机器或心跳为FAIL,请等待一分钟后刷新。image

步骤三:采集配置

  1. 点击日志存储下您的Logstore,在Logtail配置中添加Logtail配置,点击立即接入,本例使用正则-文本日志image

  2. 单击主机场景 > ECS,在下方选择您之前创建的机器组后单击>按钮添加到应用机器组中,点击下一步。image

  3. 全局配置中输入配置名称。

    image

  4. 输入配置中配置文件路径,代表日志采集的路径,日志路径必须以正斜线(/)开头,例如下图/data/wwwlogs/main/**/*.Log表示/data/wwwlogs/main目录下后缀名为.Log的文件。如果需要设置日志目录被监控的最大深度,即文件路径中通配符**匹配的最大目录深度。可以修改最大目录监控深度的取值,0代表只监控本层目录。

    image

  5. 处理配置中,设置日志样例多行模式以及处理模式image

    1. 建议您在日志样例中添加日志样例:日志样例可协助您配置日志处理相关参数,降低配置难度。若配置请务必使用实际场景中待采集日志的样例。

    2. 按需选择是否开启多行模式:多行日志是指每条日志占用了连续的多行,不开启则是单行模式,即每一行为一条日志。若开启多行模式请配置:

      • 类型:

        • 自定义:原始日志的格式不固定,则配置行首正则表达式,来标定每一条日志的起始行。例如我们使用行首正则表达式\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*,即可将示例中五行原始数据切分为两条日志。需要注意,行首正则表达式需要能够匹配完整的一行数据。

          [2023-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened
              at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
              at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
              at TestPrintStackTrace.main(TestPrintStackTrace.java:16)
          [2023-10-01T10:31:01,000] [INFO] java.lang.Exception: exception happened
        • 多行JSON:当原始日志均为标准JSON格式时,可以选择多行JSON,Logtail会自动处理单条JSON日志内部的换行。

      • 切分失败处理方式:

        • 丢弃:直接丢弃这段日志。

        • 保留单行:将每行日志文本单独保留为一条日志。

    3. 处理模式:处理模式配置的是对一条日志切割处理的方式。示例为正则-文本日志,因此处理插件中自动生成了一个正则解析插件,您也可以根据需要使用其他插件。

      以下为您介绍常用的插件配置方式:有关时间解析,过滤处理,脱敏处理等更多插件能力请参考处理插件概述。日志服务也提供了SPL处理方式,在实现类似于传统处理插件功能的前提下处理效率更高,详细了解请参考使用Logtail SPL解析日志

      正则解析

      单击正则解析可进入处理插件详细配置页面。image

      需要在此页面配置正则表达式,以及根据提取的value设置key值。您可以单击正则表达式下方的自动生成正则表达式,之后如图所示选中日志样例中的内容后,单击产生的生成正则,会自动生成选择内容的正则表达式。

      image

      生成对应的正则表达式后,您还需要对在日志提取字段中对应生成的value设置key值,这些键值对将有助于您后续设置日志索引。完成后点击确认并点击下一步。image

      JSON解析

      重要

      本模式适用于采集JSON日志。

      JSON日志有两种结构,Object类型(键值对的集合)和Array类型(值的有序列表)。Logtail JSON解析插件支持解析Object类型的JSON日志,提取为键值对,即提取Object首层的键作为Key,Object首层的值作为Value。但插件不支持解析Array类型的JSON日志。如需更细粒度请配合展开JSON字段进行处理。

      根据需要选择是否开启处理配置中的多行模式,如果开启,请使用以下选项:

      • 类型,选择多行JSON

      • 切分失败处理方式,选择保留单行

      删除处理模式中的正则解析插件,然后添加一个JSON解析插件后点击确认,点击下一步。image.png

      image

      APACHE模式解析

      说明

      Logtail Apache模式解析插件支持根据Apache日志配置文件中的定义将日志内容结构化并解析为多个键值对形式。

      删除处理模式中的正则解析插件,然后添加一个APACHE模式解析插件。image

      根据如下表格的配置说明进行插件配置,完成后点击确认,点击下一步。

      参数名称

      说明

      日志格式

      根据Apache日志配置文件中定义的日志格式进行选择,包括common、combined和自定义。

      APACHE配置字段

      Apache配置文件中的日志配置部分,通常以LogFormat开头。

      • 当配置日志格式commoncombined时,此处会自动填充对应格式的配置字段,请确认是否和Apache配置文件中定义的格式一致。

      • 当配置日志格式自定义时,请根据实际情况填写,例如LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized

      原始字段

      解析日志前,用于存放日志内容的原始字段,默认值为content。

      正则表达式

      用于提取Apache日志的正则表达式。日志服务会根据APACHE配置字段中的内容自动生成该正则表达式。

      日志提取字段

      根据APACHE配置字段中的内容自动生成日志字段(key)。

      解析失败时保留原始字段

      选中解析失败时保留原始字段,则解析失败时,将保留原始字段。

      解析成功时保留原始字段

      选中解析成功时保留原始字段,则解析成功时,将保留原始字段。

      重命名的原始字段

      选中解析失败时保留原始字段解析成功时保留原始字段后,可重命名原始字段名,用于存放原始的日志内容。

      NGINX模式解析

      说明

      Logtail Nginx模式插件支持根据log_format中的定义将日志内容结构化,解析为多个键值对形式。

      删除处理模式中的正则解析插件,然后添加一个NGINX模式解析插件。image根据如下表格的配置说明进行插件配置,完成后点击确认,点击下一步。

      参数名称

      说明

      NGINX日志配置

      Nginx配置文件中的日志配置部分,以log_format开头。例如:

      log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
                       '$request_time $request_length '
                       '$status $body_bytes_sent "$http_referer" '
                       '"$http_user_agent"';

      更多信息,请参见Nginx日志简介

      原始字段

      解析日志前,用于存放日志内容的原始字段,默认值为content。

      正则表达式

      用于提取Apache日志的正则表达式。日志服务会根据NGINX日志配置 中的内容自动生成该正则表达式。

      日志提取字段

      根据NGINX日志配置自动提取对应的日志字段(Key)。

      解析失败时保留原始字段

      选中解析失败时保留原始字段,则解析失败时,将保留原始字段。

      解析成功时保留原始字段

      选中解析成功时保留原始字段,则解析成功时,将保留原始字段。

      重命名的原始字段

      选中解析失败时保留原始字段解析成功时保留原始字段后,可重命名原始字段名,用于存放原始的日志内容。

      IIS模式解析

      说明

      Logtail IIS模式插件支持根据IIS日志格式定义将日志内容结构化,解析为多个键值对形式。

      删除处理模式中的正则解析插件,然后添加一个IIS模式解析插件。image

      根据如下表格的配置说明进行插件配置,完成后点击确认,点击下一步。

      参数名称

      说明

      日志格式

      选择您的IIS服务器日志采用的日志格式,具体说明如下:

      • IIS:Microsoft IIS日志文件格式。

      • NCSA:NCSA公用日志文件格式。

      • W3C:W3C扩展日志文件格式。

      IIS配置字段

      配置IIS配置字段,具体说明如下:

      • 日志格式为IISNCSA时,日志服务已默认设置了IIS配置字段。

      • 日志格式为W3C日志时,设置为IIS配置文件中logExtFileFlags参数中的内容,例如:

        logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"
        • IIS5配置文件默认路径:C:\WINNT\system32\inetsrv\MetaBase.bin

        • IIS6配置文件默认路径:C:\WINDOWS\system32\inetsrv\MetaBase.xml

        • IIS7配置文件默认路径:C:\Windows\System32\inetsrv\config\applicationHost.config

      原始字段

      解析日志前,用于存放日志内容的原始字段,默认值为content。

      正则表达式

      用于提取IIS日志的正则表达式。日志服务会根据IIS配置字段中的内容自动生成该正则表达式。

      日志提取字段

      根据IIS配置字段中的内容自动生成日志字段(Key)。

      解析失败时保留原始字段

      选中解析失败时保留原始字段,则解析失败时,将保留原始字段。

      解析成功时保留原始字段

      选中解析成功时保留原始字段,则解析成功时,将保留原始字段。

      重命名的原始字段

      选中解析失败时保留原始字段解析成功时保留原始字段后,可重命名原始字段名,用于存放原始的日志内容。

      分隔符解析

      说明

      Logtail分隔符模式解析插件支持通过分隔符将日志内容结构化,解析为多个键值对形式。

      删除处理模式中的正则解析插件,然后添加一个分隔符解析插件。image

      根据如下表格的配置说明进行插件配置,完成后点击确认,点击下一步。

      参数

      描述

      原始字段

      解析日志前,用于存放日志内容的原始字段,默认值为content。

      分隔符

      请根据您的日志内容选择正确的分隔符,例如竖线(|)。

      说明

      指定分隔符为不可见字符时,您需要查找不可见字符在ASCII码中对应的十六进制数,输入的格式为0x<不可见字符在ASCII码中对应的十六进制数>。例如ASCII码中排行为1的不可见字符为0x01

      引用符

      当日志字段内容中包含分隔符时,需要指定引用符进行包裹,被引用符包裹的内容会被日志服务解析为一个完整字段。请根据您的日志格式选择正确的引用符。

      说明

      指定引用符为不可见字符时,您需要查找不可见字符在ASCII码中对应的十六进制数,输入的格式为0x<不可见字符在ASCII码中对应的十六进制数>。例如ASCII码中排行为1的不可见字符为0x01

      日志提取字段

      • 当您配置了日志样例时,日志服务会根据您输入的日志样例及选择的分隔符提取日志内容,并将其定义为Value,您需要为各个Value指定对应的Key。

      • 当您未配置日志样例时,无Value列表,您需要根据实际日志及分隔符情况,输入对应的Key。

      Key只能包括字母、数字或下划线(_),且只能以字母或下划线(_)开头。最大长度为128字节。

      允许部分字段

      如果日志中实际提取出的Value数量少于Key数量,是否上传日志到日志服务。选中允许部分字段表示上传。

      例如日志为11|22|33|44,分隔符为竖线(|),KeyABCDE

      • 如果选中允许部分字段,则E字段的Value为空,该日志将被上传到日志服务

      • 如果未选中允许部分字段,该日志会被丢弃。

        说明

        Linux Logtail 1.0.28及以上版本或Windows Logtail 1.0.28.0及以上版本支持配置分隔符模式的允许部分字段参数。

      处理超出字段方式

      日志中提取的Value数量大于Key数量时的处理方法。

      • 展开:保留多余的Value内容,分别添加到__column$i__格式的字段中,其中$i代表多余字段序号,从0开始计数。例如__column0____column1__

      • 保留:保留多余的Value内容,并整体添加到名为__column0__的字段中。

      • 丢弃:丢弃多余的Value内容。

      解析失败时保留原始字段

      选中解析失败时保留原始字段,则解析失败时,将保留原始字段。

      解析成功时保留原始字段

      选中解析成功时保留原始字段,则解析成功时,将保留原始字段。

      重命名的原始字段

      选中解析失败时保留原始字段解析成功时保留原始字段后,可重命名原始字段名,用于存放原始的日志内容。

      SPL处理

      日志服务还提供了自定义SPL处理方式,与传统的处理插件相比,使用SPL不仅提高了处理速度和效率,还提供了更多智能化和易用性方面的优势,使得日志服务的整体能力得到了显著增强。通过编写SPL语句,您可以充分利用其计算能力来处理数据,请参考使用Logtail SPL解析日志

  6. 查询分析配置

    配置生效需要1分钟左右,若您是第一次为Logstore进行配置,自动刷新后,采集路径下文件有增量日志且出现预览数据,则说明配置生效。 配置生效后,单击下一步,采集配置全部完成。

    日志服务默认开启全文索引,此时查询会索引日志中所有字段。您也可以根据采集到的日志,手动创建字段索引,或者单击自动生成索引,日志服务将生成字段索引,通过此索引针对特定字段进行精确查询,从而减少索引费用和提高查询效率。更多信息请参见为什么需要创建索引image

    如果您选择了正则解析,此时您设置的键值对会自动填入,如下图:

    image