当前位置:主页 > 查看内容

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

发布时间:2021-06-15 00:00| 位朋友查看

简介:前言 SLS是一站式的云原生可观测分析平台 用户可以将Log, Metric, Trace数据接入到SLS 根据业务的需要 用户可能将数据存储在不同的账户、地域、Project下 在对数据进行监控分析时 如果只能对特定Project或者特定区域进行监控 往往会有一定的局限性 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

默认 是指访问控制与授权文中使用的默认查询权限 只能查看当前告警规则所在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


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

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

image.png

image.png

image.png

注意

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

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

image.png

image.png

自定义角色

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


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

image.png


跨账号监控告警配置示例

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

示例背景 我们在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

确认后 在告警规则配置页面 集合操作选择笛卡尔积 触发条件填写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角色概览【链接】进一步参考SLS 日志服务 云原生观测分析平台 https://www.aliyun.com/product/slsSLS新版告警文档首页 https://help.aliyun.com/document_detail/207609.html欢迎扫群加入阿里云-日志服务 SLS 技术交流 集团同学请直接搜索群号11702236加入 ,?获得第一手资料与支持后续系列直播与培训视频会同步到B站 敬请留意

image


本文转自网络,原文链接:https://developer.aliyun.com/article/784693
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:SLS新版告警入门——分组评估 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐