阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

StreamAlert:无服务器实时数据分析

  • 2017-08-08
  • 本文字数:2148 字

    阅读完需:约 7 分钟

2017 年 2 月 1 日,Airbnb 安全团队宣布开源框架 StreamAlert 发布了,它是一种实时数据分析框架,附带伴随时间点的报警功能。StreamAlert 属于无服务化开源框架,每小时可以横向扩展到 TB 级别数据支撑力度,自动化的基础设施部署以及默认开启安全保护机制。

下面这张图是 StreamAlert 的功能示意图。

为什么会有 StreamAlert?

Airbnb 公司需要一种产品可以基于它们公司的实际运行环境,强化工程师和管理员的能力,特别是针对实时数据的获取、分析和告警。

当安全团队设计用户用例,并且寻找各种可行性方案之后,团队根据需求进行编码,需要实现的需求包括:

  • 针对任何 AWS 账户的简单、安全、可重复的部署方式
  • 每天轻松从兆扩展为百万兆
  • 最小化基础设施维护,不需要专家级的 devops 人员
  • 默认开启基础设施安全机制,不需要安全专家
  • 支持从不同环境过来的数据(例如 IT、PCI、工程部门)
  • 支持不同的环境类型的数据(例如云、数据中心、办公室)
  • 支持数据的不同类型(例如 JSON、CSV、Key-Value、Syslog)
  • 支持使用类似于安全、基础设施、尊重以及其他方面的测试用例

Airbnb 安全团队因为找不到这样一款适配所有需求的产品,所以他们决定自己构建一个。因为团队需要的产品与环境无关,也就是说具有通用型,自然而然就满足了成为开源项目的基础。

优点

就像上面提到的,StreamAlert 有一些特定的优点:

  • 无服务器:StreamAlert 利用了 AWS 的 Lambda,这种做的好处是你不再需要自己管理服务器,不再需要对服务器打补丁,不再需要了解服务器的硬件配置差别
  • 可扩展性:StreamAlert 利用 AWS 的 Kinesis Streams 特性,这样做的好处是支持“流量每小时从兆扩展为百万兆,每秒的写入记录数从千级扩展到百万级”
  • 自动化:StreamAlert 利用 Terraform,支持基础设施和支持服务以代码的形式呈现出来,并支持自动化部署
  • 安全机制: StreamAlert 使用安全传输(TLS),在容器 / 沙盒内进行数据分析,根据自定义的环境进行数据切分,支持基于角色的访问控制(RBAC)
  • 开放源代码:任何人都可以使用或者贡献 StreamAlert 源代码

用户用例

下面这张图解释了 StreamAlert 可以分析的一些数据集范例:

StreamAlert 的产品目标是尽可能地支撑未知用户需求,也就是说对于数据的分析和告警用户用例,应该支撑得最为广泛。

更高层次来说,StreamAlert 支持如下:

任意源:StreamAlert 可以接收从 S3 的 bucket 过来的数据,也可以接收来自任意支持亚马逊 Kinesis

  • Stream 的第三方服务的数据。例如:fluentd、logstash、aws-kinesis-agent、osquery、Java、JavaScript、Ruby、PHP,以及任何被 AWS SDK 支持的语言。
  • 任何操作系统,StreamAlert 可以接收从任何设备过来的数据,只要它们支持日志转发功能,包括 Linux、MacOS、Windows,等等。
  • 任何环境,StreamAlert 可以接收从任何环境发送过来的数据,只要它们可以连接到互联网,包括云、数据中心、办公室,等等。

从数据的角度考虑,StreamAlert 支持例如 JSON、CSV、Key-Value,以及 Syslog 等多种格式。

如果你是一个 AWS 客户,可以通过 S3 的 bucket 方式压缩数据格式。相应地,StreamAlert 也支持 CloudTrail、AWS Config,以及 S3 服务访问日志。

如果你不是 AWS 客户,StreamAlert 也支持如下数据:

  • 主机日志(例如 Syslog、osquery、auditd)
  • 网络日志(例如 Palo Alto Networks、Cisco)
  • Web 应用日志(例如 Apache、nginx)
  • SaaS 提供者(例如 Box、OneLogin)

需要注意的是,SmartAlert 并不是为了解决分析指标或者时间序列的用户用例设计的,在这个领域已经有很多很棒的开源框架或者商业软件存在了,例如 Prometheus、DataDog,以及 NewRelic。

数据分析

使用 Python 编写的规则包括数据分析和告警逻辑。以下是一段 Python 代码,示范在 PCI 环境下对 sudo 的使用进行告警:

复制代码
@rule('production_sudo',
logs=['osquery'],
matchers=['pci'],
outputs=['s3', 'pagerduty', 'slack'])
def production_sudo(record):
table_name = record['name']
tag = record['columns']['tag']
return (
table_name == 'linux_syslog_auth' and
fnmatch(tag, 'sudo*')
)

告警

如上图可见,StreamAlert 配置了灵活的告警框架,可以和全新的或者已经存在的故障管理工具集成在一起使用。StreamAlert 可以启用规则,实现发送给多个告警输出。

架构

StreamAlert 使用如下的设备:

  • AWS Kinesis Streams:数据流、AWS Lambda 流(基于流的模型)
  • AWS Kinesis Firehose:加载流数据到 S3 数据存储层
  • AWS Lambda (Python):数据分析和告警
  • AWS SNS:告警队列
  • AWS S3:可选的数据源、长期数据存储层、长期告警存储层
  • AWS Cloudwatch:基础设施指标
  • AWS KMS:应用密码的加密和解密
  • AWS IAM:基于规则的访问控制(RBAC)

下一步计划

在 2017 年的 Q2,Airbnb 的安全团队预计会加强 StreamAlert 的分散流量处理能力,进一步提升告警的上下文关联度。

对于历史数据的检索,StreamAlert 预计在 2017 年年底实现功能,通过使用 AWS Athena(一种 S3 提供的无服务器交互式查询服务),这种方式将会允许用户使用 SQL 语句进行实时和定时的分析数据查询。


感谢丁晓昀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-08-08 19:001523
用户头像

发布了 50 篇内容, 共 27.4 次阅读, 收获喜欢 40 次。

关注

评论

发布
暂无评论
发现更多内容

创意飞轮

俞凡

创业

GraphPad Prism 10 for Mac破解,支持macOS Sonoma

影影绰绰一往直前

prism破解版 Prism 9 Prism下载

Nevercenter CameraBag Pro 2023.4.0破解版(mac照片滤镜工具)

iMac小白

CameraBag Pro下载 CameraBag Pro破解版

Util 应用框架开发环境搭建(三)- 安装 Docker Desktop

何镇汐

开源 后端 软件开发 .net core

数据库管理工具Navicat Premium 16 mac完美激活版

iMac小白

Navicat Premium下载 Navicat Premium破解版 Navicat Premium 16

PDF Search for Mac(pdf文件搜索工具) 13.6激活版

影影绰绰一往直前

PDF Search下载 PDF Search mac PDF Search中文版 PDF Search破解版

Tableau Desktop 2019 for Mac(全能数据分析工具) v2019.1.0完美激活版

mac

数据分析工具 Tableau Desktop 2019 苹果mac Windows软件

2023-11-04:用go语言,如果n = 1,打印 1*** 如果n = 2,打印 1*** 3*** 2*** 如果n = 3,打印

福大大架构师每日一题

福大大架构师每日一题

自由职业者的心路历程:我是如何找到自我的

少油少糖八分饱

自由职业 副业 职场 工作 远程工作

用纯CPU环境搭建大模型环境

SkyFire

大模型 LLM ChatGLM.cpp

Util应用框架文档目录

何镇汐

后端 开源框架 目录结构

破解版Archicad 26 for Mac(BIM建模软件)

影影绰绰一往直前

Archicad 26下载 Archicad 26破解版 Archicad 26 mac

Photoshop 2024 (ps)中文激活版下载mac/win

影影绰绰一往直前

Photoshop 2024下载 Photoshop 2024破解版 PS2024破解

AutoCAD 2024 for Mac完美破解版 支持M(cad设计绘图工具)

iMac小白

AutoCAD 2024 Mac版 AutoCAD 2024下载 AutoCAD 2024破解

花了三年时间开发的开源项目,终于500 个 Star 了!快收藏

越长大越悲伤

开源

助力鸿蒙生态建设|坚果派6位华为HDE以及若干成员喜获HarmonyOS专业证书

坚果

鸿蒙 HarmonyOS OpenHarmony 坚果派

一图读懂k8s informer

良凯尔

云原生 k8s Serverless Kubernetes Client-go

Nevercenter CameraBag Photo for Mac(照片滤镜软件) 2023.4.0完整激活版

mac

苹果mac Windows软件 Nevercenter CameraBag 照片滤镜软件

Util应用框架开发环境搭建(一)- 安装 Visual Studio

何镇汐

软件开发 .net core 开源框架 #前端

Python 用户输入和字符串格式化指南

小万哥

Python 程序员 软件 后端 开发

CollageIt Pro mac (照片拼图软件) v3.6.12中文激活版

mac

苹果mac Windows软件 CollageIt Pro 拼图软件

如何有效呈现竞品差异

俞凡

创业

Keep It for mac(Mac笔记软件)v2.3.3中文激活版

mac

苹果mac Windows软件 Keep It 笔记软件

AlDente Pro for Mac(电池最大充电限制工具)v1.22.3激活版

影影绰绰一往直前

AlDente Pro下载 AlDente Pro破解版 AlDente Pro mac

Util 应用框架开发环境搭建(二)- 安装 Resharper

何镇汐

后端 软件开发 .net core 开源框架

StreamAlert:无服务器实时数据分析_语言 & 开发_麦克周_InfoQ精选文章