在 日志服务运行日志使用指南 一文中我们已经介绍了关于如何使用日志服务(SLS)的服务日志功能。本文将介绍新版的服务日志具体有哪些变化。
新功能介绍
1. 更丰富的日志类型
本次升级增加了Logtail状态日志。Logtail每分钟会上报一次进程和操作系统的状态信息,如内存,CPU,系统负载等信息。可以根据该日志监控Logtail进程是否存活,运行状态是否正常。
2. Logstore个数精简,费用免费
在之前的版本中,服务日志需要使用5个Logstore用于分别存储操作日志,消费组日志,Logtail采集日志,Logtail错误日志和计量日志,且这5个Logstore采用与正常的Logstore一致的收费策略。
在新版中,仅需两个Logstore:
- internal-diagnostic_log: 存储状态/监控日志的日志,各种日志根据topic进行区分。这个Logstore完全免费,而且不支持用户删除或者写入其他日志。各种日志对应的topic:
(1)计量日志:metering;
(2)Logtail状态日志:logtail_status;
(3)Logtail采集日志:logtail_profile;
(4)Logtail错误日志:logtail_alarm;
(5)消费组日志:consumergroup_log。
- internal-operation_log: 存储所有操作日志(包含管控类,数据类所有API),由于数据量比较大,会按标准logstore模式计费。
3. 日志种类支持按需开通
新版的服务日志开通界面将服务日志分为操作日志和其他日志,用户可以根据需求选择开通的日志类型。如图-1所示。
图-1 支持选择开通的日志类型
4. 全新的默认仪表盘
结合日志服务服务仪表盘的新功能,本次升级对开通服务日志时创建的默认仪表盘进行了全面改版。参考服务日志默认仪表盘。
5. 支持子账户开通
子账户开通服务日志需要具备如下RAM权限:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:CreateDashboard",
"log:UpdateDashboard"
],
"Resource": "acs:log:*:*:project/{存储日志的Project}/dashboard/*",
"Effect": "Allow"
},
{
"Action": [
"log:GetProject",
"log:CreateProject",
"log:ListProject"
],
"Resource": "acs:log:*:*:project/*",
"Effect": "Allow"
},
{
"Action": [
"log:List*",
"log:Create*"
"log:Get*",
"log:Update*",
],
"Resource": "acs:log:*:*:project/{存储日志的Project}/logstore/*",
"Effect": "Allow"
},
{
"Action": [
"log:*"
],
"Resource": "acs:log:*:*:project/{开通日志的Project}/logging",
"Effect": "Allow"
}
]
}
如用户有foo和bar两个Project,为 foo 开通服务日志,并将服务日志保存到 bar 中,则所需的RAM权限为:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:CreateDashboard",
"log:UpdateDashboard"
],
"Resource": "acs:log:*:*:project/bar/dashboard/*",
"Effect": "Allow"
},
{
"Action": [
"log:GetProject",
"log:CreateProject",
"log:ListProject"
],
"Resource": "acs:log:*:*:project/*",
"Effect": "Allow"
},
{
"Action": [
"log:List*",
"log:Create*"
"log:Get*",
"log:Update*",
],
"Resource": "acs:log:*:*:project/bar/logstore/*",
"Effect": "Allow"
},
{
"Action": [
"log:*"
],
"Resource": "acs:log:*:*:project/foo/logging",
"Effect": "Allow"
}
]
}
子账户授权参考 RAM授权。
6. 支持默认的存储project
日志存储位置增加 自动创建 选项,如果选择该选项,日志服务自动在Project所在地域创建一个Project名称格式为 log-service-{aliuid}-{region} 的Project作为日志存储位置,如用户aliuid为1234567,地域为杭州,则该Project名称为 log-service-1234567-cn-hangzhou。推荐用户在为每个project开通服务日志时都选择该选项,这样就能将同一个地域的服务日志集中在一个Logstore和仪表盘中一起分析,同时也能减少收费的Logstore个数,降低成本。
开通方式
1. 全新开通
如果Project尚未开通服务日志,可通过如下步骤开通:
(1)进入日志服务控制台,找到需要开通的project,如图-2所示:
图-2 控制台Project列表
(2)找到想要开通的project,在操作栏点击服务日志,如图-3所示:
图-3 开通服务日志
选择需要开通的日志类型和日志存储位置,推荐使用默认的选项。
2. 已开通的Project如何升级
如果已经开通了服务日志,需要手动升级到新版,否则仍然会按照原来的方式进行存储和计费。只需通过如下步骤即可升级到新版:
(1)进入日志服务控制台,找到需要开通的project,如上图2所示。
(2)选择需要开通的日志类型,如果已经开通,此处会勾选全部类型。点击确定完成升级,如图-4所示。
图-4 升级已经开通的服务日志
(3)旧版中的internal-metering, internal-logtail_profile, internal-logtail_alarm, internal-consumergroup_log 这几个Logstore如果不再需要可以手动删除。
服务日志应用举例
1. Logtail异常监控
对于使用Logtail采集日志的用户,logtail采集状态是否健康关系到日志采集是否正常进行。开通服务日志后,Logtail的错误日志保存在internal-diagnostic_log 这个Logstore中,对应的topic为logtail_alarm,我们通过监控logtail的错误日志条数来设置告警,如下图-5所示:
图-5
查询语句:
__topic__: logtail_alarm | select sum(alarm_count) as errorCount
2. 订阅仪表盘
开通服务日志时,将自动创建对应的仪表盘,用户可以配置订阅任务,日志服务将会定期将仪表盘以图片的形式发送到用户的邮箱或者钉钉群里。以计量统计仪表盘为例:
图-7