SLS告警响应升级——通知对接FC进行自动化操作

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 阿里云SLS告警响应升级,通知渠道新增了对函数计算的支持,从而可以在告警触发的时候进行一定的自动化响应操作,以便进行故障自愈,减轻手动运维压力,提高系统的可用性。

前言

所谓监控,直白来说就是“监测并进行控制”。通过对数据的监测,我们可以发现其中的异常,例如机器的CPU使用率异常。异常会触发告警,然后告警会被通知到相应的负责人,以便进行后续的处理。通常我们对告警会有多种方式进行通知,例如通过短信、电话、钉钉等方式。

但是告警并不是目的,异常产生后最终的目的是消除异常,因此除了人为接收通知之外,在某些场景下,我们还需要程序去接收,然后做一些自动化的事情。例如发送通知到一个 Web 服务,然后根据告警详情进行后续的自动操作(比如根据业务规则做一些自动运维操作)等。但是如果从头开始编写一个Web服务然后部署,又是一件比较麻烦的事情,SLS告警加入了对函数计算(FC)的支持,让告警的自动化响应变得简单。

告警通知对接FC

1. 授权RAM访问角色

为了告警触发后,日志服务可以调用你的函数计算里的函数,需要授权日志服务相应的权限。进入告警中心后,可以“点击授权”进行一键授权。

也可以在配置行动策略的时候进行授权:

这里需要注意,如果登录的是子账号,需要具备如下RAM权限才可以授权成功,否则会有相应的错误提示。

{
"Statement": [{
"Action": "ram:CreateServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "alert.log.aliyuncs.com"      }
    }
  }],
"Version": "1"}


2. 创建FC函数

需要在函数计算控制台创建函数,这里需要注意的是:

  • SLS告警通知渠道中,FC通知仅支持非HTTP函数,如果是HTTP函数,直接使用自定义Webhook通知渠道就可以了。
  • 由于安全限制,因此SLS仅能访问名称以 "sls-ops-" 开头的函数,例如 "sls-ops-test",而例如 "test-function" 这样的函数则无权限访问。

这里我们创建一个非常简单的函数,示例代码如下:

'use strict';
exports.handler= (event, context, callback) => {
console.log(event.toString());
callback(null, 'hello world');
}

3. 创建行动策略

我们可以创建一个行动策略,在行动组中配置相应的函数,例如:

4. 创建告警规则

在通知中选择刚才创建的行动策略。

告警触发后可以看到函数的调用日志里已经有相应的记录:

这里需要注意的是,告警通知对接到FC函数默认都是异步调用的方式。

案例:限制OSS Bucket必须为私有访问

考虑一个场景,无论是新建 OSS Bucket 还是修改 Bucket 的 ACL权限,都必须限制为私有访问,如果发现有公共读或者公共读写,就需要快速发现并立即自动修复。在这个场景下,如果完全依赖于人工去修复,就会比较麻烦,因此我们的解决思路如下:

  • 开通 OSS 操作审计日志
  • 由于新建 Bucket 或者修改 Bucket 的 ACL 权限,最终都是一条 PutBucket 的审计日志,因此我们可以检测该日志,然后抽取出地域、Bucket名称等信息,触发一条告警。
  • 告警通知发送到FC函数,FC对该Bucket的ACL权限进行检测,如果发现是不合规的,则自动修复。

1. 新建FC函数

我们可以新建一个FC函数,用来检测 Bucket 的 ACL 权限设置是否为私有,如果不是私有,则将其修改为私有。示例代码如下:

constOSS=require('ali-oss')
constaccessKeyId='**********'constaccessKeySecret='**********'asyncfunctioncheckBucketAcl(region, bucket) {
constclient=newOSS({
region: `oss-${region}`,
accessKeyId,
accessKeySecret  })
constresult=awaitclient.getBucketACL(bucket)
if (result.acl!=='private') {
awaitclient.putBucketACL(bucket, 'private')
  }
}
exports.handler=async (event, context, callback) => {
constalert=JSON.parse(event.toString())
for (constresultofalert.fire_results) {
const { region, bucket } =resultawaitcheckBucketAcl(region, bucket)
  }
callback(null, '')
}


2. 开通OSS操作审计日志

打开日志服务控制台,进入日志审计服务,开启OSS访问日志。

3. 新建告警

在操作审计日志里,我们可以看到,创建 Bucket 或者修改 Bucket ACL 会记录如下日志:

因此我们可以通过如下查询分析语句筛选出 Bucket 的地域和名称:

event.ServiceName: Oss and  event.eventName: PutBucket |select"event.acsRegion"as region, split("event.eventSource",'.')[1]as bucket

然后新建告警:

4. 事件触发

我们将 Bucket 的 ACL 修改为公共读:

然后会发现有一条告警触发:

FC的函数调用日志可以看到调用记录:

再回到 OSS 看,Bucket 的 ACL 已经是私有:


进一步参考

对我们工作感兴趣的,可以通过如下方式了解更多,谢谢关注!

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
安全 Linux 虚拟化
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
390 0
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
1256 69
|
数据采集 运维 监控
数据采集监控与告警:错误重试、日志分析与自动化运维
本文探讨了数据采集技术从“简单采集”到自动化运维的演进。传统方式因反爬策略和网络波动常导致数据丢失,而引入错误重试、日志分析与自动化告警机制可显著提升系统稳定性与时效性。正方强调健全监控体系的重要性,反方则担忧复杂化带来的成本与安全风险。未来,结合AI与大数据技术,数据采集将向智能化、全自动方向发展,实现动态调整与智能识别反爬策略,降低人工干预需求。附带的Python示例展示了如何通过代理IP、重试策略及日志记录实现高效的数据采集程序。
630 7
数据采集监控与告警:错误重试、日志分析与自动化运维
|
人工智能 Cloud Native Serverless
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
328 3
|
机器学习/深度学习 人工智能 运维
基于AI的自动化事件响应:智慧运维新时代
基于AI的自动化事件响应:智慧运维新时代
669 11
|
SQL 存储 缓存
EMR Serverless StarRocks 全面升级:重新定义实时湖仓分析
本文介绍了EMR Serverless StarRocks的发展路径及其架构演进。首先回顾了Serverless Spark在EMR中的发展,并指出2021年9月StarRocks开源后,OLAP引擎迅速向其靠拢。随后,EMR引入StarRocks并推出全托管产品,至2023年8月商业化,已有500家客户使用,覆盖20多个行业。 文章重点阐述了EMR Serverless StarRocks 1.0的存算一体架构,包括健康诊断、SQL调优和物化视图等核心功能。接着分析了存算一体架构的挑战,如湖访问不优雅、资源隔离不足及冷热数据分层困难等。
|
人工智能 Serverless 数据处理
极速启动,函数计算弹性降本能力再升级
在数字化转型的大潮中,云计算成为推动创新和优化业务流程的关键力量。作为阿里巴巴集团的核心产品之一,函数计算(Function Compute)引领着 Serverless 计算的新时代。本文将深入探讨函数计算如何通过技术革新实现提效降本,以及其在 AI 业务、数据处理和 Web 应用等多个领域的广泛应用。
662 31
|
人工智能 Cloud Native Serverless
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
Serverless Devs 官网迎来全新升级,主站以 AI 应用开发的叙事透出项目特性和解决方案。应用中心(Registry)将各类热门 AI 应用模版、实用 AI 工具以及 AI 工作流等呈现给用户。本次升级主题为“一站式 AI/函数/应用开发”,希望为开发者提供更加便利的应用模版搜索和展示服务,本文将对本次升级的三大看点进行整理,欢迎您来体验!
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
427 0
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录

热门文章

最新文章

相关产品

  • 日志服务