文档中心 > 容器服务

SLS日志采集接入

更新时间:2020/03/17 访问次数:8771

日志接入流程

一、集群中安装日志组件

聚石塔控制台-运维中心-集群管理,一键集成SLS,后台会在集群上安装SLS组件(集群管理的logtail)

成功集成后:

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

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

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

image.png

 

二、部署配置中配置采集

应用-发布-部署配置(编辑)

image.png

每一行代表一个日志采集任务,将容器日志采集到对应的project和logstore中。

采集模式和扩展配置非必填,不选择的时候默认为"极简模式",更多采集模式的细节见文档下方

注:

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

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

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

1.日志库名称仅支持小写字母、数字、连字符(-)
2.必须以小写字母和数字开头和结尾
3.名称长度为3-63个字符

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

指定文件夹下所有符合文件名称的文件都会被监控到(包含所有层次的目录),文件名称可以是完整名,也支持通配符模式匹配。
Linux文件路径只支持/开头,例:/apsara/nuwa/.../app.Log,
Windows文件路径只支持盘符开头,例如:C:\Program Files\Intel\...\*.Log

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

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

 

 

采集模式

极简模式

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

 

正则模式

日志样例

某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

采集配置

扩展配置示例

//注意,下面的内容为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+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*",
"regex":"\[([^]]+)]\s\[(\w+)]\s\[(\w+)]\s\[([^:]+):(\d+)]\s(.*)",
"key":["time", "level", "method", "file", "line", "message"]
}

注意:

 

日志解析

image.png

 

JSON模式

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

日志样例

{"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"}

采集配置

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

image.png

 

日志解析

image.png

 

分隔符模式

日志样例

# '&&'分隔了两部分内存
aa&&bb

采集配置

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

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

日志解析

image.png

FAQ

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