本文将介绍在主机场景下手动安装日志服务LoongCollector采集文本日志的流程,阅读本文将帮助您在主机场景下完成LoongCollector文本日志的采集。
前提条件
已开通日志服务。具体操作,请参见开通日志服务。
LoongCollector当前仅支持Project地域:华南2(河源)。其他地域需安装Logtail进行采集,详情请参考主机文本日志采集(手动安装)。
已创建Project和Logstore。更多信息,请参见创建项目Project和创建Logstore。
如果您没有自备的主机,则需要准备可用的ECS。更多信息,请参见云服务器ECS快速入门。
主机或ECS需开放80和443端口,供LoongCollector上传数据。
若您使用的不是阿里云主账号,而是使用RAM用户,需要为RAM用户开通权限。
如果您的ECS与日志服务Project属于同一个阿里云账号且处于同一个地域,请您参考LoongCollector采集主机文本日志(自动安装)进行快速采集配置。
操作步骤
步骤一:安装LoongCollector
请根据表格选择LoongCollector下载与安装方式:
示例代码中${region_id}
为日志服务Project所在地域,请参见开服地域后替换,例如华东 1(杭州)对应的${region_id}
为cn-hangzhou
。
主机类型 | 操作系统 | 下载方式 | 安装方式 |
Linux | ARM | 主机可联网,直接下载:
| 根据网络情况选择安装命令:
|
x86-64 | |||
ARM | 主机离线,需先在可以访问公网的服务器上下载安装脚本与安装包:
| 请将安装脚本和安装包拷贝至需要安装Logtail的服务器上后,根据网络情况选择安装命令:
| |
x86-64 | 主机离线,需先在可以访问公网的服务器上下载安装脚本与安装包:
|
步骤二:配置机器组
LoongCollector是Logtail的升级版,目前采集流程的区别仅在于安装组件时,因此后续流程与Logtail采集基本一致。
创建用户标识(阿里云账号ID文件):授权该阿里云账号的Project通过LoongCollector采集服务器日志。如果您的ECS与日志服务Project在同一个阿里云账号下,可跳过创建用户标识步骤。
登录日志服务控制台,鼠标悬浮在右上角用户头像,在弹出的标签页中查看并复制账号ID。若您使用RAM用户登录,请复制主账号ID。
登录需要采集数据的服务器,通过以下方式配置用户标识。
在
/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}
创建用户自定义标识(机器组标识):日志服务通过发现用户自定义标识与主机上LoongCollector建立心跳连接。
在指定目录下创建用户自定义标识文件
user_defined_id
并配置用户自定义标识。重要同一机器组中不允许同时存在Linux和Windows服务器,请勿在Linux和Windows服务器上配置相同的用户自定义标识。
一个服务器可配置多个用户自定义标识,标识之间以换行符分隔。
在Linux服务器配置用户自定义标识,可使用以下命令完成。
echo "user-defined-1" > /etc/ilogtail/user_defined_id # 如果目录或文件不存在,请手动创建。
创建机器组:将主机添加到机器组中,日志服务通过机器组与主机上LoongCollector关联,以供后续下发采集配置。
登录日志服务控制台,在Project列表,单击打开目标Project后进入如下页面,按页面所示在资源的机器组下点击立即创建,在右边的弹框中输入机器组名称,机器组标识选择用户自定义标识,并在用户自定义标识中填入您在主机上配置的用户自定义标识,本例为
user-defined-1
。完成后点确定。在机器组列表下为您创建了一个机器组,您可以看到在主机上安装的LoongCollector的IP出现在机器状态列表中,并且心跳状态为OK,说明该LoongCollector已经成功启动并上报了心跳。若机器组状态下无机器或心跳为FAIL,请等待一分钟后刷新。
步骤三:采集配置
点击日志存储下您的Logstore,在Logtail配置中添加Logtail配置,点击立即接入,本例使用正则-文本日志。
单击
,在下方选择您之前创建的机器组后单击>按钮添加到应用机器组中,点击下一步。在全局配置中输入配置名称。
在输入配置中配置文件路径,代表日志采集的路径,日志路径必须以正斜线(/)开头,例如下图
/data/wwwlogs/main/**/*.Log
表示/data/wwwlogs/main
目录下后缀名为.Log的文件。如果需要设置日志目录被监控的最大深度,即文件路径中通配符**
匹配的最大目录深度。可以修改最大目录监控深度的取值,0代表只监控本层目录。在处理配置中,设置日志样例,多行模式以及处理模式。
建议您在日志样例中添加日志样例:日志样例可协助您配置日志处理相关参数,降低配置难度。若配置请务必使用实际场景中待采集日志的样例。
按需选择是否开启多行模式:多行日志是指每条日志占用了连续的多行,不开启则是单行模式,即每一行为一条日志。若开启多行模式请配置:
类型:
自定义:原始日志的格式不固定,则配置行首正则表达式,来标定每一条日志的起始行。例如我们使用行首正则表达式
\[\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日志内部的换行。
切分失败处理方式:
丢弃:直接丢弃这段日志。
保留单行:将每行日志文本单独保留为一条日志。
处理模式:处理模式配置的是对一条日志切割处理的方式。示例为正则-文本日志,因此处理插件中自动生成了一个正则解析插件,您也可以根据需要使用其他插件。
以下为您介绍常用的插件配置方式:有关时间解析,过滤处理,脱敏处理等更多插件能力请参考处理插件概述。日志服务也提供了SPL处理方式,在实现类似于传统处理插件功能的前提下处理效率更高,详细了解请参考使用Logtail SPL解析日志。
正则解析
单击正则解析可进入处理插件详细配置页面。
需要在此页面配置正则表达式,以及根据提取的value设置key值。您可以单击正则表达式下方的自动生成正则表达式,之后如图所示选中日志样例中的内容后,单击产生的生成正则,会自动生成选择内容的正则表达式。
生成对应的正则表达式后,您还需要对在日志提取字段中对应生成的value设置key值,这些键值对将有助于您后续设置日志索引。完成后点击确认并点击下一步。
JSON解析
重要本模式适用于采集JSON日志。
JSON日志有两种结构,Object类型(键值对的集合)和Array类型(值的有序列表)。Logtail JSON解析插件支持解析Object类型的JSON日志,提取为键值对,即提取Object首层的键作为Key,Object首层的值作为Value。但插件不支持解析Array类型的JSON日志。如需更细粒度请配合展开JSON字段进行处理。
根据需要选择是否开启处理配置中的多行模式,如果开启,请使用以下选项:
类型,选择多行JSON。
切分失败处理方式,选择保留单行。
删除处理模式中的正则解析插件,然后添加一个JSON解析插件后点击确认,点击下一步。
APACHE模式解析
说明Logtail Apache模式解析插件支持根据Apache日志配置文件中的定义将日志内容结构化并解析为多个键值对形式。
删除处理模式中的正则解析插件,然后添加一个APACHE模式解析插件。
根据如下表格的配置说明进行插件配置,完成后点击确认,点击下一步。
参数名称
说明
日志格式
根据Apache日志配置文件中定义的日志格式进行选择,包括common、combined和自定义。
APACHE配置字段
Apache配置文件中的日志配置部分,通常以LogFormat开头。
当配置日志格式为common或combined时,此处会自动填充对应格式的配置字段,请确认是否和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模式解析插件。根据如下表格的配置说明进行插件配置,完成后点击确认,点击下一步。
参数名称
说明
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模式解析插件。
根据如下表格的配置说明进行插件配置,完成后点击确认,点击下一步。
参数名称
说明
日志格式
选择您的IIS服务器日志采用的日志格式,具体说明如下:
IIS:Microsoft IIS日志文件格式。
NCSA:NCSA公用日志文件格式。
W3C:W3C扩展日志文件格式。
IIS配置字段
配置IIS配置字段,具体说明如下:
日志格式为IIS或NCSA时,日志服务已默认设置了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分隔符模式解析插件支持通过分隔符将日志内容结构化,解析为多个键值对形式。
删除处理模式中的正则解析插件,然后添加一个分隔符解析插件。
根据如下表格的配置说明进行插件配置,完成后点击确认,点击下一步。
参数
描述
原始字段
解析日志前,用于存放日志内容的原始字段,默认值为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
,分隔符为竖线(|),Key为A
、B
、C
、D
和E
。如果选中允许部分字段,则
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解析日志。
查询分析配置
配置生效需要1分钟左右,若您是第一次为Logstore进行配置,自动刷新后,采集路径下文件有增量日志且出现预览数据,则说明配置生效。 配置生效后,单击下一步,采集配置全部完成。
日志服务默认开启全文索引,此时查询会索引日志中所有字段。您也可以根据采集到的日志,手动创建字段索引,或者单击自动生成索引,日志服务将生成字段索引,通过此索引针对特定字段进行精确查询,从而减少索引费用和提高查询效率。更多信息请参见为什么需要创建索引。
如果您选择了正则解析,此时您设置的键值对会自动填入,如下图: