本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
Serverless 应用引擎 SAE(Serverless App Engine)实时日志功能支持查看最新的500行日志信息。为满足更高的查阅需求,SAE还提供了文件日志收集功能,支持将业务文件日志(容器内日志路径)、容器标准输出日志(stdout)无限制行数地收集至SLS,便于您聚合分析。启用日志收集到SLS功能后,SAE将自动在部署、扩容时与SLS对接日志采集,您即可在SLS控制台根据关键字检索日志。
前提条件
确保应用中每个实例至少预留0.25 Core CPU和250 MB内存的可用资源。
注意事项
配置文件日志收集
在创建应用过程中配置文件日志收集
登录SAE控制台。
在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击创建应用。
在应用基本信息配置向导,配置相关信息,然后单击下一步:应用部署配置。
在应用部署配置配置向导,选择技术栈语言和应用部署方式,配置相关信息。
展开日志收集服务区域,在默认显示的日志采集到SLS页签,打开开通日志收集到SLS日志服务功能开关,并配置相关配置项。
按需选择新建SLS资源或使用已有的SLS资源,单击+添加并配置相关配置项。
配置项
说明
以下配置项供选择新建SLS资源和使用已有的SLS资源时通用。
采集日志类型
选择日志类型。
文件日志(容器内日志路径):可以设置多条,默认显示。
容器标准输出日志:仅可以设置一条。当您的vSwitch属于推荐可用区时,下拉列表才会显示该选项。更多信息,请参见切换安全组和vSwitch。
日志源
输入日志源存放的文件目录。目录须包含日志的文件名,例如/tmp0/cjsc.log。容器标准输出无需设置此选项。文件名与路径支持正则匹配,同一目录下,如果日志文件数量多,且文件格式相同,可以输入例如/xxx/xxx/xxx/*.log的格式。
重要请勿在日志源的存放目录中存放其他重要文件,避免目录内的文件被覆盖。
以下配置项仅供选择使用已有的SLS资源时设置。
使用已有的SLS Project
选择需要存放日志的Project。
logstore
选择Logstore。
logtail
选择Logtail。更多信息,请参见什么是Logtail。
单击下一步:确认规格。
在确认规格配置向导,查看您所创建应用的详细信息以及配置费用情况,并单击确认创建。
页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。
验证结果。
应用部署完成后,SAE依据所配的日志收集规则收集日志并存放到指定的文件内。
您可以在应用详情页面左侧导航栏,选择
,在持久化日志页面查看所收集的日志信息。如果存在日志数据,表示日志收集配置成功,您可以依据日志信息进行相关业务分析。
在部署应用过程中配置文件日志收集
重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。
更新应用配置的路径因实例数的不同而不同。本文以实例数大于等于1为例,介绍如何配置目标功能。当实例数等于0时的操作路径,请参见更新应用。
登录SAE控制台。
在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击具体应用名称。
在基本信息页面右上角,单击部署应用。
在部署应用页面下方,展开日志收集服务区域,在默认显示的日志采集到SLS页签,打开开通日志收集到SLS日志服务功能开关,并配置相关配置项。
按需选择新建SLS资源或使用已有的SLS资源,单击+添加并配置相关配置项。
配置项
说明
以下配置项供选择新建SLS资源和使用已有的SLS资源时通用。
采集日志类型
选择日志类型。
文件日志(容器内日志路径):可以设置多条,默认显示。
容器标准输出日志:仅可以设置一条。当您的vSwitch属于推荐可用区时,下拉列表才会显示该选项。更多信息,请参见切换安全组和vSwitch。
日志源
输入日志源存放的文件目录。目录须包含日志的文件名,例如/tmp0/cjsc.log。容器标准输出无需设置此选项。文件名与路径支持正则匹配,同一目录下,如果日志文件数量多,且文件格式相同,可以输入例如/xxx/xxx/xxx/*.log的格式。
重要请勿在日志源的存放目录中存放其他重要文件,避免目录内的文件被覆盖。
以下配置项仅供选择使用已有的SLS资源时设置。
使用已有的SLS Project
选择需要存放日志的Project。
logstore
选择Logstore。
logtail
选择Logtail。更多信息,请参见什么是Logtail。
配置完成后,单击确认。
说明如果您在应用部署时采用分批发布或者灰度发布策略,同时您配置的日志源不变,只改变日志收集的Project或者Logstore,那么在所有批次的部署流程成功完成之前,您的日志仍被收集到旧的Project与Logstore中。因为SLS不支持同一个文件被同时采集到不同的Project或Logstore中。
验证结果。
应用部署完成后,SAE依据所配的日志收集规则收集日志并存放到指定的文件内。
您可以在应用详情页面左侧导航栏,选择
,在持久化日志页面查看所收集的日志信息。如果存在日志数据,表示日志收集配置成功,您可以依据日志信息进行相关业务分析。
设置环境变量提升Logtail采集性能
您可以在SAE控制台通过设置环境变量的方式来配置Logtail启动参数。配置后,在开启日志收集服务的基础上,Logtail采集性能将得到提升,有效解决日志文件占用内存大、日志数据流量大和Logtail发送数据速率高等影响日志采集的瓶颈问题。
您需要在环境变量设置区域内,选择自定义或引用配置项的方式,并填写变量名称和变量值/变量引用。具体操作,请参见设置环境变量。
变量名称的填写规则
在需要配置的Logtail环境变量前增加sls_前缀。如下图所示,如果您需要添加Logtail参数max_read_buffer_size,则配置的环境变量为sls_max_read_buffer_size。图例表示每条日志读取的最大值为524288,单位:Byte。更多参数,请参见设置Logtail启动参数。
环境变量与Logtail启动参数对应关系
具体信息,请参见环境变量说明。
SLS采集标准输出去除前缀
如果您需要对SLS日志内容做更多个性化的字段提取设置,例如,去除标准输出日志的前缀,可选择完整正则模式,并配置如下信息。
行首正则表达式
\d+-\d+-\d+T\d+:\d+:\d+.\d+\+\d+.*
正则
\d+-\d+-\d+T\d+:\d+:\d+.\d+\+\d+:\d+\s\w+\s\w\s(.*)
如果您还需要展开JSON,可以添加插件配置。
{
"global": {
"DefaultLogQueueSize": 10
},
"processors": [
{
"type": "processor_split_log_regex",
"detail": {
"PreserveOthers": true,
"SplitKey": "content",
"SplitRegex": "\\d+-\\d+-\\d+T\\d+:\\d+:\\d+.\\d+\\+\\d+.*"
}
},
{
"type": "processor_regex",
"detail": {
"SourceKey": "content",
"Regex": "\\d+-\\d+-\\d+T\\d+:\\d+:\\d+.\\d+\\+\\d+:\\d+\\s\\w+\\s\\w\\s(.*)",
"Keys": [
"newline"
]
}
},
{
"detail": {
"SourceKey": "newline",
"KeepSource": true,
"ExpandDepth": 0,
"NoKeyError": true,
"ExpandConnector": "-"
},
"type": "processor_json"
}
]
}
更多信息,请参见使用完整正则模式采集日志和管理Logtail采集配置。
常见问题
SAE日志功能是否支持滚动日志?
支持。您可以通过给日志文件名称添加通配符的方式滚动日志。
文件名称通配符支持星号(*)和问号(?)。
查看文件日志时,在SLS控制台无数据展示,如何处理?
通常SLS默认查询最近15分钟内的查询结果。如果SLS无数据显示,建议使用Webshell查看您的应用是否有文件日志信息。详细操作,请参见使用Webshell诊断应用。
如果有日志信息,请加入钉群(钉群号:32874633),联系产品技术专家进行咨询。
如果没有日志信息,请检查您的应用信息。