聚石塔控制台-运维中心-集群管理,一键集成SLS,后台会在集群上安装SLS组件(集群管理的logtail)
成功集成后:
1.SLS侧会创建一个k8s-log-{集群id}的project
2.集群中运行一个alibaba-log-controller;
3.集群中运行一个logtail的DaemonSet,每个ECS节点上都会起一个logtail进程
应用-发布-部署配置(编辑)
每一行代表一个日志采集任务,将容器日志采集到对应的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"] }
注意:
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模式,扩展配置则无需配置
# '&&'分隔了两部分内存 aa&&bb
采集模式选择分隔符模式,扩展配置指定
//注意,下面的内容为json字符串格式;目前仅支持separator和key;key的值为list {"separator":"&&","key":["key1","key2"]}