文档中心 > 聚石塔

SLS日志采集接入

更新时间:2023/04/19 访问次数:6961

一、日志接入流程

1. 集群中安装日志组件


聚石塔控制台-运维中心-插件管理,SLS日志采集,后台会在集群上安装SLS组件。

 

成功集成后:

1)SLS侧会创建一个k8s-log-{集群id}的project;

2)集群中运行一个alibaba-log-controller;

3)集群中运行一个logtail的DaemonSet,每个ECS节点上都会起一个logtail进程。


image


点击安装,然后选择一个集群进行安装部署。

 

2. 日志采集配置


已迁移到新版控制台,旧版的部署配置中配置无效。


image

 

采集配置的操作说明:

1)创建/修改,会直接生效。如果状态变为"已生效",说明底层logtail创建完毕,可以点击"查看日志"跳转到sls控制台查看logstore中的日志。如果状态异常,则说明配置有问题,可以根据错误提示进行调整

2)禁用,对于已生效的配置,禁用后状态变为"已保存",此时不再进行日志收集

3)启用,对于状态为"已保存"的配置,启用后重新创建底层logtail,开始日志收集

4)删除,同时删除该条配置记录和底层logtail配置,不再进行日志收集

 

注:

1)project可选,如果不填就是默认的project k8s-log-集群id。

建议自定义project以及logstore,比如每个应用一个project,应用的每个环境一个logstore。

① project名称仅支持小写字母、数字、连字符(-);

② 必须以小写字母和数字开头和结尾;

③ 名称长度为3-63个字符;


2)logstore名称要符合阿里云SLS的标准。

① 日志库名称仅支持小写字母、数字、连字符(-);

② 必须以小写字母和数字开头和结尾;

③ 名称长度为3-63个字符;


3)日志路径要符合阿里云SLS的标准。

指定文件夹下所有符合文件名称的文件都会被监控到(包含所有层次的目录),文件名称可以是完整名,也支持通配符模式匹配。

Linux文件路径只支持/开头,例:/apsara/nuwa/.../app.Log,

Windows文件路径只支持盘符开头,例如:C:\Program Files\Intel\...\*.Log;


4)特别的,如果要采集容器标准输出,日志路径填写stdout。

5)容器标准输出暂时只支持"极简模式"。

 

二、采集模式

1. 极简模式


简模式默认每行为一条日志,每条日志时间使用采集时机器系统时间。通常情况下,极简模式可以满足大部分的日志采集需求。

 

2. 正则模式


1)日志样例

某Java程序日志样例如下所示,日志中由于包含错误堆栈信息,可能一条日志会被分解成多行,因此需要设置行首正则表达式。


[2018-05-11T20:10:16,000] [INFO] [SessionTracker] [SessionTrackerImpl.java:148] Expiring sessions
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8E\x8F",...' for column 'data' at row 1
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
at org.springframework.jdbc.support.AbstractFallbackSQLException


2)采集配置

扩展配置示例:


//注意,下面的内容为json字符串格式。目前只支持配置logBeginRegex,regex,key三个字段
//logBeginRegex匹配样例的Java错误堆栈格式,正则表达式为 \[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*
//regex和key将匹配到的日志,再通过正则分析,提取成key-value的形式;
//举个例子,文本中的 [2018-05-11T20:10:16,000]被regex中的\[([^]]+)]匹配,最后变成了日志中的time字段
{
"logBeginRegex":"\[\d+-\d+-\d+\w+\d+:\d+:\d+,\d+]\s\[\w+]\s.*",
"regex":"\[([^]]+)]\s\[(\w+)]\s\[(\w+)]\s\[([^:]+):(\d+)]\s(.*)",
"key":["time", "level", "method", "file", "line", "message"]
}


注意:

① 目前只支持配置logBeginRegex,regex,key三个字段;logBeginRegex必填;

② regex和key为选填,且二者要一起使用;

③ 正则表达式要根据应用具体打的日志来设置,如何调试正则表达式

④ 关于参数更多细节:https://help.aliyun.com/document_detail/137902.html

 

再举个例子,tomcat的catalina日志打印如下格式:
05-Aug-2020 18:38:04.954 INFO xxx

那么,logBeginRegex行首表达式可以这么配置:
"\d+-\w+-\d+\s\d+:\d+:\d+\.\d+\s.*"


3)日志解析


image


3. JSON模式


Logtail支持的JSON日志是Object类型,可以自动提取Object首层的键作为字段名称,Object首层的值作为字段值。字段值可以是Object、Array或基本类型,如String、Number等。


1)日志样例


{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/May/2016:13:30:28"}
{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.210", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "10204"}, "time": "05/May/2016:13:30:29"}


2)采集配置


采集模式选择JSON模式,扩展配置则无需配置。


image


3)日志解析


image

 

4. 分隔符模式


1)日志样例


# '&&'分隔了两部分内容
aaa&&bbb


2)采集配置

采集模式选择分隔符模式,扩展配置指定。


//注意,下面的内容为json字符串格式;目前仅支持separator和key;key的值为list
{"separator":"&&","key":["key1","key2"]}


3)日志解析


image


FAQ

关于此文档暂时还没有FAQ
返回
顶部