SLS智能告警-全局监控告警

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: SLS是一站式的云原生可观测分析平台,用户可以将Log, Metric, Trace数据接入到SLS;根据业务的需要,用户可能将数据存储在不同的账户、地域、Project下,在对数据进行监控分析时,如果只能对特定Project或者特定区域进行监控,往往会有一定的局限性,SLS智能告警可以提供跨Project,甚至跨地域,跨账号的监控,然后对告警进行统一降噪管理,通知管理等;实现对SLS资源的全局监控。本文将介绍如何使用SLS智能告警来进行全局监控,介绍全局监控需要的查询的三种授权方式,并通过一个跨账号监控的例子来介绍如果进行全局监控。

前言

SLS是一站式的云原生可观测分析平台,用户可以将Log, Metric, Trace数据接入到SLS;根据业务的需要,用户可能将数据存储在不同的账户、地域、Project下,在对数据进行监控分析时,如果只能对特定Project或者特定区域进行监控,往往会有一定的局限性,SLS智能告警可以提供跨Project,甚至跨地域,跨账号的监控,然后对告警进行统一降噪管理,通知管理等;实现对SLS资源的全局监控。


本文将介绍如何使用SLS智能告警来进行全局监控,介绍全局监控需要的查询的三种授权方式,并通过一个跨账号监控的例子来介绍如果进行全局监控。

全局监控概述

image.png

在SLS中可以将不同云产品的日志存储在SLS中,在不同的主账号下都可以有这些云产品的日志,除了云产品的日志,每个主账号下也会有个字的系统,中间件,服务的日志;对于一个企业来说,可能会因为业务的需要,使用不同的主账号来管理企业在阿里云的日志资源。SLS智能告警提供了一种对不同主账号下日志资源的全局监控机制,允许对不同账号,不同区域下的Project进行统一监控,不需要将数据同步到某一个特定的账号或者区域下面。


举例来说,比如某企业有主账号A和主账号B分别接入了各类云产品日志和业务日志,对这些日志的监控告警运维是专门的运维团队进行负责,比如有一个主账号C,每天监测被审计账号A、B的每日访问日志量正常,这时候就需要用到了跨账号、跨Project的查询;对查询的数据统一建立告警规则,统一进行告警的降噪管理,通知管理和事务管理。


使用SLS智能告警进行全局监控,会涉及到对不同账号不同区域的资源的授权,比如上述例子中的主账号C需要有账号A、B的授权才可以对其资源进行监控查询,以下将对告警权限和授权方式进行介绍。

告警规则权限

SLS智能告警的权限包括两部分

  • 告警规则的管理权限
  • 监控目标的查询权限

在SLS智能告警-访问控制与授权一文中,我们主要介绍了创建告警规则的管理权限,对于监控目标的查询权限直接使用了创建告警规则实体(RAM用户或者主账户)本身被赋予的权限。监控规则实体的权限在使用上会有一定的限制,只能对当前Project下的不同Logstore进行查询。如果需要进行跨Project,跨账号的查询需要使用告警查询的授权方式。

告警查询授权方式

告警查询的授权方式主要包括三类:

image.png

查询统计

关联报表

高级配置

类型:

日志库

授权方式:

默认

默认

区域:

内置角色

项目:

自定义角色

日志库:

请输入名称

15分钟(相对)

查询区间:

  • 默认:是指访问控制与授权文中使用的默认查询权限,只能查看当前告警规则所在Project下的资源。
  • 内置角色:使用SLS内置的角色AliyunSLSAlertMonitorRole进行查询,可以进行跨Project的查询,只有点击授权即可,操作简单。
  • 自定义角色:对于查询可以使用更精细的控制,支持跨账号,跨区域,跨Project的查询。


在介绍三种授权方式之前,先来看下阿里云RAM角色,RAM角色(RAM role)与RAM用户一样,都是RAM身份类型的一种。RAM角色是一种虚拟用户,没有确定的身份认证密钥,需要被一个受信的实体用户扮演才能正常使用。在告警中,告警查询用到的角色受信实体是阿里云SLS服务,也就是用户创建一个角色,配置相关的查询权限,允许SLS来扮演相关角色,SLS也就具有了角色中配置的查询权限,既可以对监控目标进行查询。

默认

默认授权方式表示可以对当前项目下的不同Logstore进行查询,即支持跨Logstore的监控;如图,某主账号A下拥有成都和呼和浩特两个区域的日志资源,在Project1下面创建告警规则时,可以对Logstore1和Logstore2进行监控,但是不能对Project2或者Project3下的Logstore进行监控;

默认授权方式也是最常见的创建告警规则中使用的方式,如果只需要对当前Project下的资源进行监控,可以使用这种授权方式。

image.png

内置角色

内置角色是授权方式中的第二个选择,内置角色是指SLS默认定义的系统角色,名称为AliyunSLSAlertMonitorRole,角色中定义了跨Project访问所需要的权限和受信实体阿里云SLS服务,角色ARN格式为acs:ram::主账号UID:role/aliyunslsalertmonitorrole


内置角色默认允许跨区域监控当前账号下Project,比如账号A可以对成都区域的Project1的Logstore1和呼和浩特区域的Project3下的Logstore1同时进行监控。

image.png

账号A

呼和浩特

成都

Project2

Project3

Project1

Logstore1

Logstore2

Logstore1

Logstore2

Logstore1


在配置告警规则时,点击查询统计,在弹出的查询统计框中,可以选择授权方式,这里选择内置角色。

如图所示,如果之前没有授权过内置角色,会出现点击授权的按钮,点击前往授权,会跳转到云资源访问授权页面;当前登录账号需要是主账号或者具有RAM写权限的子账号,可以点击同意授权按钮,授权完成后,再返回上一次一个面,点击完成授权,即可看到角色ARN已经自动填充好,并且区域列表会展开,可以选择当前账号下其他区域的Project及Logstore,通过输入查询分析语句即可完成对当前账号的跨区域,跨Project监控。

image.png

image.png

云资源访问授权

如背修致角色蚁服请前住RM控都台角色管理中没,要注的是铺的可能致caduamu无法取到必要的眼.

Log请求获取访问您云资源的权限.

下方是系统创建的可Log使用的角色,授权后,Log拥有对您云资源相应的访问权限.

AliyunSLSAIertMonitorRole

展开详情

同意授权

取消

image.png

查询统计

高级配置

关联报表

日志库

类型:

授权方式:

内置角色

角色ARN:

acs:ram:

role/aliyunslsalertmonitoole

华南2(河源)

区域:

华北5(呼和浩特)

项目:

华北6(乌兰察布)

华东1(杭州)

日志库:

华东2(上海)

查询区间:?

华东5(南京-本地地域)

华南1(深圳)

取消

预览

查询:

华南2(河源)

华南3(广州)

确认

取消

注意

如果使用内置角色需要对跨账号的资源进行监控,需要修改找到在RAM控制台找到内置角色,然后修改其信任策略;

例如主账号A需要监控主账号B下的Project,需要主账号B或者主账号B下具有RAM操作权限的子账号在界面执行上述前往授权的操作,然后账号B登录RAM控制台-RAM角色管理,找到AliyunSLSAlertMonitorRole,然后修改其信任策略,在Service中增加主账号A的UID@log.aliyuncs.com

image.png

RAM访问控制

RAM角色管理

RAM访问控制

RAM角色管理

概览

人员管理

什么是RAM角色?

RAM角色机制是向您信任的实体(例如:RAM用户,某个应

用户组

您云账户下的一个RAM用过户(可能是代表一个移动Apm

其他云账户中的RAM用过户(需要进行跨账户的资源访问

用户

ECS实例上运行的应用程序代码(需要对云资源执行操

某些阿里云服务(需要对您账户中的资源进行操作才能

设置

企业的身份提供商IdP,可以用于角色SSO.

SSO管理

RAM角色颁发短时有效的访问令牌(STS令牌),使其成为

特别说明:

权限管理

RAM角色不同于传统的教科书式角色(其含义是指一组权限

授权

创建RAM角色

8

slsalert

权限策略管理

RAM角色名称

RAM角色管理

AliyunSLSAIertMonitorRole

OAuth应用管理

image.png

自定义角色

自定义角色是在查询统计中可以选择的第三种授权方式,该授权方式允许用户自己定义一个角色,并对角色进行精细的权限管理和信任策略管理,其中权限管理可以设置不同的权限粒度,比如只有限制某个区域的Project可以被监控,其他区域的不能监控;信任策略允许用户的资源可以被哪些账户进行监控。


自定义角色可以最大限度的对资源进行全局监控,比如账号A和账号B,用于日志资源如下图,账号C需要同时对账号A下的成都-Project1下的Logstore1和账号B下的上海-Project6下的Logstore2进行监控;那么账号A和账号B可以创建自定义角色,权限策略分别设置成都Project下Logstore的查询权限和上海Project下Logstore的查询权限,信任策略设置为信任账号C;然后账号C就可以使用两个创建好的角色来配置告警规则中的查询统计,并对两个账号下的资源进行监控告警。

image.png

账号A

呼和浩特

成都

Project3

Project2

Project1

账号B

Logstore1

Logstore2

Logstore1

Logstorel

Logstore2

上海

杭州

Project5

Project6

Project7

Logstore1

Logstore2

Logstore1

Logstore1

Logstore2


跨账号监控告警配置示例

这里我们将提供了一个跨账号监控配置告警的示例,主要使用到了用户自定义角色的授权方式。

示例背景:我们在SLS智能告警-访问控制与授权一文中介绍了如何使用RAM账号创建告警规则,这里为了例子的简洁性,突出跨账号及自定义角色的定义,这里都使用主账号来完成。

假设账号A在成都有项目p1和nginx访问日志nginx-access-log,账号B在呼和浩特有项目p2和nginx访问日志nginx-access-log,需求是账号A需要同时监控项目p1下的nginx 500错误数和p2下的nginx 500错误数,在15分钟内两者错误数加起来大于10就告警。


账号B创建自定义角色

  • 登录RAM控制台,在权限管理-权限策略管理中,创建自定义权限策略,假设为p2-monitor-policy,策略内容参考如下,其中Statement中第二条限制了对p2项目的查询分析日志,不允许对其他项目进行监控。
{
"Version": "1",
"Statement": [
        {
"Effect": "Allow",
"Action": [
"log:ListProject"            ],
"Resource": [
"acs:log:*:*:*"            ]
        },
        {
"Effect": "Allow",
"Action": [
"log:ListLogStores",
"log:GetLogStoreLogs",
"log:GetIndex"            ],
"Resource": [
"acs:log:*:*:project/p2/*"            ]
        }
    ]
}
  • RAM角色管理中,创建RAM角色,类型选择阿里云服务,下一步中角色类型选择普通服务角色,角色名称为allow-a-monitor-role,选择受信服务日志服务,点击完成。
  • 添加权限,授权应用范围选择整个云账号,选择权限选择自定义策略,找到之前创建好的p2-monitor-policy,点击选中,点击确定


账号A配置告警规则

  • 登录SLS控制台,在p1项目下找到nginx-access-log,点击查询分析图标,输入查询分析语句status >= 500 | SELECT count(1) as p1_nginx_err_cnt,点击查询/分析,然后另存为告警-新版告警;
  • 点击查询统计后面的添加按钮,增加一条查询统计

image.png

  • 在弹出的查询统计中,授权方式选择自定义角色,角色ARN填写在账号B中创建的角色allow-a-monitor-role的ARN;区域选择呼和哈特,项目选择p2,日志库选择nginx-access-log,输入查询语句status >= 500 | SELECT count(1) as p2_nginx_err_cnt,点击预览

image.png

查询统计

关联报表

高级配置

类型:

日志库

授权方式:

自定义角色

角色ARN:

xrole/aliyuns/salertmonitorole

acs:ram.:1

区域:

华北5(呼和浩特)

项目:

demo

日志库:

nginx-access-log

查询区间:

(相对)

15分钟

取消

预览

查询:

status>-500ISELECTcount1)asp2

sp-nginx_err-cnt

  • 确认后,在告警规则配置页面,集合操作选择笛卡尔积,触发条件填写p1_nginx_err_cnt + p2_nginx_err_cnt > 10

image.png

  • 其余配置保持默认,告警策略选择极简模式,填写相应的渠道,等待告警的触发。如果数据中有满足告警条件,会触发告警,并发送通知到相应的渠道。说明账号A可以通过自定义角色的授权方式,实现了对账号B的日志资源的监控。


注意

如果是账号A下的RAM账号a需要监控账号B下的资源,需要对a赋予passrole的权限,在本例中,账号B的创建的自定义角色ARN假设是acs:ram::11*****:role/allow-a-monitor-role;

需要账号A登录RAM控制台,对RAM账号a进行增加权限如下:

{
"Statement": [
    {
"Action": "ram:PassRole",
"Effect": "Allow",
"Resource": "acs:ram::11*****:role/allow-a-monitor-role"    }
  ],
"Version": "1"}

总结

本文主要介绍了如何使用SLS智能告警来实现全局监控告警,对于跨账号、跨区域、跨Project的监控目标,通过使用不同的授权方式,可以实现不同粒度资源的监控。文中主要介绍了默认授权方式,内置角色授权方式和自定义角色授权方式,其中自定义角色授权方式最为灵活,配置也最为复杂。用户可以根据自身的需求来选择不同的授权方式和监控粒度。

参考

  • 日志告警介绍【链接
  • 授予RAM用户告警操作权限【链接
  • 配置访问控制【链接
  • RAM角色概览【链接

进一步参考


最后,如果您还想了解更多智能运维前沿资讯,欢迎您报名参加【数智创新行·智能运维专场】。

6月25日|上海·西岸国际人工智能中心

数智创新行上海站·智能运维专场

阿里云将带来云原生智能运维解决方案,满足海量事件有效感知、高效响应,可观测数据统一分析、故障定位,以及基于AI的异常检测等需求,助力企业构建自己的运维平台,成为开发、运维人员高效可靠的助手。

扫描海报二维码或点击下方链接报名, 期待您一起开启智能运维新时代!

https://www.aliyun.com/page-source//developer/special/osssalon

智能运维专场图片.jpg

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
8月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之sls日志告警调用函数计算,出现抛出的结果异常,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
9月前
|
机器学习/深度学习 运维 监控
用SLS配置日志关键字告警的N种方法
本文由日志关键词告警出发,介绍了使用SLS进行关键词监控告警配置,并且介绍了几种常见的配置方法,可以覆盖关键词监控的大部分场景。
479 0
用SLS配置日志关键字告警的N种方法
|
9月前
|
运维 监控 安全
SLS相同监控规则太多?试试告警监控模板
本文主要介绍了SLS自定义告警监控模板的使用场景以及最佳实践。
176 0
SLS相同监控规则太多?试试告警监控模板
|
9月前
|
存储 运维 监控
使用Terraform玩转SLS告警
本文主要介绍使用Terraform来操作SLS告警监控,告警管理。
133 0
使用Terraform玩转SLS告警
|
监控
限制SLS告警通知时段的几种常见方法
在对系统进行监控告警的过程中,有时候并非在任何时候都要接收告警通知,本文会介绍几种常见的限制告警通知时段的方法,以及它们各自所适用的场景。
447 0
限制SLS告警通知时段的几种常见方法
|
运维 监控 安全
SLS告警通知到Line
Line是一款由NHN Japan(韩国Naver Corporation公司的子公司)在日本推出的即时通信软件,在日韩拥有较大的用户规模。Line支持构建机器人,并且通过API给机器人推送消息,添加了机器人的用户以及群聊就可以接收到机器人推送的消息。但是由于Line的服务器位于海外,SLS的告警无法直接发送通知。因此本文介绍了如何利用阿里云的其他服务来将SLS的告警通知到Line。
577 2
|
运维 监控 安全
SLS相同监控规则太多?试试告警监控模板
随着使用SLS监控告警服务的用户越来越多,部分用户的业务数据因为一些原因(如不同区域、数据分流、按标签分类等原因)写入了不同Logstore,而这些业务数据的字段以及信息是完全一样的,对于这种数据,用户往往想要使用同样的一套监控规则来进行监控告警。
253 0
|
存储 JSON 运维
使用Terraform玩转SLS告警
Terraform是有HashiCorp公司开源的IT基础架构的自动化编排工具,“Write,Plan and Create Infrastructure as Code”,Terraform的命令行接口(CLI)提供了一种简单的机制,用于将配置文件部署到阿里云或者其他任意支持的云上,并对其进行版本控制。 SLS告警告警是一站式告警监控、降噪、事务管理、通知分派的智能运维平台。包含日志/时序存储、告警监控、告警管理、通知管理等模块;强大的功能当然也有自动化配置的需求,本文将介绍如何使用Terraform进行简单的配置,即可完成在无界面的告警配置。
794 0
使用Terraform玩转SLS告警
|
存储 监控 索引
SLS告警最佳实践——自定义分析告警历史
在SLS告警评估、触发到通知的整个生命周期过程中,都会有一些日志记录,通过这些日志我们可以借助告警对系统的整体健康状况、稳定性等有一个相对全面的了解。
591 0
|
存储 Prometheus 运维
顺滑迁移Prometheus告警到SLS告警
Prometheus作为一个开源的云原生监控系统,具有很广泛的应用场景,通过各种Exporter收集各类设备,应用的指标,将各类指标抽象为时序数据,在Prometheus上可以使用PromQL进行高效的指标查询和分析。SLS告警是云上的一站式告警监控运维平台,支持各种Ops场景。SLS告警系统主要包括指标采集,监控系统,告警管理,通知管理等子系统。本文介绍如何将Prometheus告警无缝转换为SLS告警,并使用SLS告警的管理功能。
855 0

相关产品

  • 日志服务