精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

StreamAlert:無服務器實時數據分析

責任編輯:editor004

作者:麥克周

2017-08-09 11:13:23

摘自:INFOQ

Airbnb公司需要一種產品可以基于它們公司的實際運行環境,強化工程師和管理員的能力,特別是針對實時數據的獲取、分析和告警。

2017年2月1日,Airbub安全團隊宣布開源框架StreamAlert發布了,它是一種實時數據分析框架,附帶伴隨時間點的報警功能。StreamAlert屬于無服務化開源框架,每小時可以橫向擴展到TB級別數據支撐力度,自動化的基礎設施部署以及默認開啟安全保護機制。

下面這張圖是StreamAlert的功能示意圖。

  為什么會有StreamAlert?

Airbnb公司需要一種產品可以基于它們公司的實際運行環境,強化工程師和管理員的能力,特別是針對實時數據的獲取、分析和告警。

當安全團隊設計用戶用例,并且尋找各種可行性方案之后,團隊根據需求進行編碼,需要實現的需求包括:

針對任何AWS賬戶的簡單、安全、可重復的部署方式每天輕松從兆擴展為百萬兆最小化基礎設施維護,不需要專家級的devops人員默認開啟基礎設施安全機制,不需要安全專家支持從不同環境過來的數據(例如IT、PCI、工程部門)支持不同的環境類型的數據(例如云、數據中心、辦公室)支持數據的不同類型(例如JSON、CSV、Key-Value、Syslog)支持使用類似于安全、基礎設施、尊重以及其他方面的測試用例

Airbub安全團隊因為找不到這樣一款適配所有需求的產品,所以他們決定自己構建一個。因為團隊需要的產品與環境無關,也就是說具有通用型,自然而然就滿足了成為開源項目的基礎。

優點

就像上面提到的,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,Airbub的安全團隊預計會加強StreamAlert的分散流量處理能力,進一步提升告警的上下文關聯度。

對于歷史數據的檢索,StreamAlert預計在2017年年底實現功能,通過使用AWS Athena(一種S3提供的無服務器交互式查詢服務),這種方式將會允許用戶使用SQL語句進行實時和定時的分析數據查詢。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 余姚市| 银川市| 九龙县| 新平| 达州市| 铁岭市| 区。| 马关县| 凯里市| 潮安县| 驻马店市| 林周县| 公主岭市| 民乐县| 芜湖县| 旬邑县| 清丰县| 高雄县| 吉林市| 井冈山市| 隆化县| 石台县| 信阳市| 民权县| 黎川县| 枣阳市| 新密市| 寿光市| 甘德县| 钟祥市| 庐江县| 苏尼特左旗| 灵川县| 阿鲁科尔沁旗| 宝应县| 谷城县| 新闻| 舟山市| 灵宝市| 广丰县| 峡江县|