摘要: 阿里雲Elasticsearch提供100%兼容開源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商業功能,致力於數據分析、數據搜索等場景服務。與開源社區背後商業公司Elastic戰略合做,爲客戶提供企業級權限管控、安全監控告警、自動報表生成等場景服務。本文中,阿里雲產品專家沐澤爲你們介紹了阿里雲Elasticsearch產品的相關狀況。
產品介紹
Elasticsearch(簡稱ES)是2010年推出的一款開源產品,本質上是一個實時的分佈式實時搜索與分析引擎。隨着這些年來Elasticsearch生態的演進,逐漸發展成爲ELK即Elasticsearch、Logstash、Kibana的生態。Elasticsearch屬於搜索引擎,Logstash負責數據的採集、轉化以及輸出,Kibana則提供了強大的數據可視化功能。對於Elasticsearch而言,其在DB-Engines中的開源數據庫排行榜中位列第一。能夠看出,Elasticsearch受到了普遍的承認,而且也有大量的開發者正在使用。
阿里雲Elasticsearch提供了全託管的Elasticsearch服務,而且100%兼容開源版本,而且對於內核進行了針對性優化,提供了商業功能(原‘X-Pack’),即開即用,高可用服務,彈性伸縮,按需付費。在下圖中,在阿里雲Elasticsearch的可靠性、安全性、系統託管等方面與友商的產品進行了對比。在可靠性方面,阿里雲Elasticsearch具備99.9%的數據可靠性,而且會定時地向OSS進行數據備份,方便用戶在數據出現問題的時候進行恢復。此外,經過同城多活,提供了較強的容災能力。在開源差別部分,阿里雲Elasticsearch也作了大量的工做。在內核性能優化部分,不只作了存儲與計算分離,還提供了ECS自己的調優。在Index Build服務部分,Elasticsearch自己支持高併發的數據寫入加速,這樣會使得數據的寫入和查詢相互影響,阿里雲Elasticsearch則經過Index Build服務離線地構建索引,並將原生索引切換成比較小的片並與線上索引進行Merge,這樣就避免了用戶線上集羣的I/O開銷,在必定場景下保障了高併發寫入場景下的查詢服務的穩定性。在智能運維方面,阿里雲Elasticsearch提供了EU智能運維繫統,可以幫助用戶運維和監控集羣而且進行智能分析,方便用戶更好地瞭解集羣的健康情況,而且還提供了預警以及改進建議等功能。此外,阿里雲Elasticsearch近期還集成了阿里達摩院的NLP分詞器和分析器,可以更好地完成業務的分析和檢索任務。在商業插件部分,X-Pack服務自己集成在Elasticsearch和Kibana裏面的。以往這樣的商業版插件包對於用戶而言,須要付費使用,阿里雲Elasticsearch經過這樣的方式爲用戶提供了不少功能,如認證受權、權限管理、報表可視化以及機器學習等。整體來看,相比友商的ES方案以及用戶自建ES,阿里雲Elasticsearch的價格也具備較強的優點,而且具備更加豐富的產品能力,同時也具備比較高的性價比。
基於以上的目標能力,阿里雲Elasticsearch也具備很是豐富的目標場景,主要集中在IT運維、信息檢索以及日誌分析等方面。在IT運維方面,用戶能夠作Metric監控、網絡日誌分析等相關工做。信息檢索方面,不只支持APP檢索,也能夠用於數據庫加速以及聚合搜索等場景。在日誌分析方面,能夠用於Web日誌分析、風控/審計/分析、用戶行爲分析/用戶畫像以及BI分析和Ad-hoc等場景下。最後,阿里雲Elasticsearch的主要購買方式就是包年包月預付費和按量後付費兩種。
產品輸出形式
對於阿里雲Elasticsearch產品的輸出形式而言,主要在公共雲和專有云這兩個方面。在公共雲上,阿里雲Elasticsearch支持了金融雲、零售雲以及菜鳥雲,而且在日本站和國際站進行了售賣。在專有云方面,8月底的時候阿里雲Elasticsearch也提供了輕量PaaS獨立輸出,而且能夠在企業版On ECS和企業版On物理機上進行部署。
產品架構
在產品架構部分,阿里雲Elasticsearch部署在ECS網段,至關於購買了大量的ECS服務器拉起了ES鏡像。對用戶而言,能夠購買不少的ES集羣,每一個ES集羣中都會有不少的Node,每一個Node就是一臺ECS。整個ECS部署在系統方VPC內,而且支持跨可用區的同城容災能力,也就是說在同一個區域下面,能夠在不一樣的可用區內部署服務,經過阿里雲VPC和用戶VPC之間的IP映射使得每一個集羣的Node分佈在不一樣的可用區以內。
除此以外,在保證容災方面,用戶的數據節點會定時地向OSS作快照備份,當用戶的數據出現問題的時候,能夠快速地經過OSS實現數據恢復。總體的數據存儲類型支持高效雲盤、SSD雲盤以及本地磁盤。在存儲計算分離方面,阿里雲Elasticsearch近期也在內核方面進行了優化。自己Elasticsearch索引爲了方便存儲須要作分片,爲了提高查詢效率,每一個分片會有多個副本,可是這樣屬於用空間換時間的方式,所以會形成大量的數據冗餘,爲用戶帶來很高的存儲成本。另一方面,爲了提高查詢效率,用戶在寫入數據的時候,就會增長更多的內存開銷,進而形成寫入速度較慢。在這樣的背景之下,阿里雲Elasticsearch作了存儲與計算分離的內核優化,將用戶數據的多個副本進行分片映射到同一塊的物理介質之上,與原生的ES相比,阿里雲Elasticsearch的存儲成本下降至少50%,數據寫入實時性能提高70%,Replica/Shard變動性能提高99%,以上這些能力都是開源版本的ES所不具有的。
公共雲可售賣區域
目前,阿里雲Elasticsearch除了美東、英國和迪拜三個區域尚未部署售賣以外,在全球範圍內的其餘阿里雲數據中心都已經部署售賣了,將來也會在更多的區域進行開放。
金融持久化數據審計方案
這裏介紹一個實際案例,這是阿里云爲一家信用卡結算公司設計的金融持久化數據庫審計方案。該客戶存在金融數據監管需求,所以數據須要存儲的時間較長,所以形成數據量很是大。所以,阿里雲提供了金融持久化數據庫審計方案中爲用戶提供了一個三層的數據存儲方案,用戶近期的Hot Data會在第一層ECS存儲大約2個月的時間,當變成Warm Data或者更老的數據以後,就會存儲到下層的ECS或者OSS之上,這樣一方面保障了用戶在使用阿里雲Elasticsearch時的數據查詢時效性,使得其不會被大數據量所影響,另一方面也大大下降了用戶的存儲成本。
場景示例-日誌分析
這裏針對於日誌分析場景進行更進一步的介紹。在日誌分析方面,會採集用戶在網站/遊戲/應用內的行爲日誌數據,分爲離線和在線兩個部分分別投遞給Hadoop及Elasticsearch,以知足用戶(離線部分)標籤、畫像的加工,和(在線部分)用戶行爲實時統計和狀態查詢。阿里雲Elasticsearch在日誌分析場景下提供了不少對應的能力,面向日誌分析場景,提供聚合搜索、實時查詢、增量數據快速索引歸檔等分析必備能力。除此以外,阿里雲Elasticsearch基於X-Pack服務提供了基於LBS的地理位置搜索、可視化分析報表、數據可視化展示等高級分析能力。進一步能夠實現用戶留存分析,瀏覽路徑分析,基於地理圍欄的用戶畫像,用戶標籤體系等數據查詢、統計以及分析場景。
Elasticsearch如何處理日誌
日誌數據的來源有不少,好比日誌文件、數據庫、傳感器以及Web API等,而利用這些日誌數據實現日誌搜索和日誌分析會存在不少常見的需求,主要包括五點,即集中收集與存儲、日誌搜索、分析聚合及可視化、安全、角色管理以及可伸縮性。
-
在集中收集與存儲日誌數據方面,阿里雲Elasticsearch會對於常規日誌數據進行採集,包括日誌文件、日誌系統、網絡擁堵等其餘常見的日誌數據。阿里雲Elasticsearch經過收集和匯攏數據以及離線Hadoop數據遷移可以比較快捷地集中日誌數據並存儲到Elasticsearch中構建索引。
-
在日誌搜索方面,阿里雲Elasticsearch可以支持全文檢索、元數據搜索、指標/標籤搜索以及地理位置搜索等。
-
在分析聚合和可視化方面,當數據聚合到阿里雲Elasticsearch裏面去以後,能夠經過sum、average、min/max等聚合函數實現聚合分析,而且能夠經過X-Pack實現機器學習分析,也能夠藉助Kibana實如今線數據可視化。而且在阿里雲Elasticsearch中,用戶能夠直接經過Kibana控制檯實現配置以及可視化面板的建立。
-
在安全和角色管理方面,阿里雲Elasticsearch提供了RBAC的用戶權限以及TLS/SSL交互式安全協議,而且可以實現實時監控和觸發告警,可以幫助用戶進行實時預防。此外,基於X-Pack的商業功能可以提供自動數據報表以及觸發式報表等服務,幫助用戶更好地進行數據管理和查詢。
-
在可伸縮性方面,阿里雲Elasticsearch可以支持彈性擴容,由於ES的節點是對等的,所以可以實現快速拷貝和彈性擴容,實現不一樣規模下的數據管理。
阿里巴巴Elasticsearch的產品生態架構
數據會從RDS等數據存儲中過來,經過Flume、EMR、MaxCompute等下游計算引擎進行加工和處理,完成畫像或者標籤的工做,最後索引到Elasticsearch中去。阿里雲Elasticsearch是兼容整個大數據生態的,而且也可以無縫地對接整個阿里雲的產品生態,進而很是方便地完成數據的處理工做。此外,還能夠經過Kibana能夠幫助用戶更好地實現數據的可視化管理。