開發與維運

阿里巴巴飛天大數據平臺Elasticsearch最新特性

摘要:
阿里雲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受到了廣泛的認可,並且也有大量的開發者正在使用。
image.png

阿里雲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的價格也具有較強的優勢,並且具有更加豐富的產品能力,同時也具有比較高的性價比。

image.png

基於以上的目標能力,阿里雲Elasticsearch也具有非常豐富的目標場景,主要集中在IT運維、信息檢索以及日誌分析等方面。在IT運維方面,用戶可以做Metric監控、網絡日誌分析等相關工作。信息檢索方面,不僅支持APP檢索,也可以用於數據庫加速以及聚合搜索等場景。在日誌分析方面,可以用於Web日誌分析、風控/審計/分析、用戶行為分析/用戶畫像以及BI分析和Ad-hoc等場景下。最後,阿里雲Elasticsearch的主要購買方式就是包年包月預付費和按量後付費兩種。

產品輸出形式

對於阿里雲Elasticsearch產品的輸出形式而言,主要在公共雲和專有云這兩個方面。在公共雲上,阿里雲Elasticsearch支持了金融雲、零售雲以及菜鳥雲,並且在日本站和國際站進行了售賣。在專有云方面,8月底的時候阿里雲Elasticsearch也提供了輕量PaaS獨立輸出,並且可以在企業版On ECS和企業版On物理機上進行部署。
image.png

產品架構

image.png

在產品架構部分,阿里雲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除了美東、英國和迪拜三個區域還沒有部署售賣之外,在全球範圍內的其他阿里雲數據中心都已經部署售賣了,未來也會在更多的區域進行開放。
image.png

金融持久化數據審計方案
這裡介紹一個實際案例,這是阿里云為一家信用卡結算公司設計的金融持久化數據庫審計方案。該客戶存在金融數據監管需求,因此數據需要存儲的時間較長,因此造成數據量非常大。因此,阿里雲提供了金融持久化數據庫審計方案中為用戶提供了一個三層的數據存儲方案,用戶近期的Hot Data會在第一層ECS存儲大約2個月的時間,當變成Warm Data或者更老的數據之後,就會存儲到下層的ECS或者OSS之上,這樣一方面保障了用戶在使用阿里雲Elasticsearch時的數據查詢時效性,使得其不會被大數據量所影響,另外一方面也大大降低了用戶的存儲成本。
image.png

場景示例-日誌分析

這裡針對於日誌分析場景進行更進一步的介紹。在日誌分析方面,會採集用戶在網站/遊戲/應用內的行為日誌數據,分為離線和在線兩個部分分別投遞給Hadoop及Elasticsearch,以滿足用戶(離線部分)標籤、畫像的加工,和(在線部分)用戶行為實時統計和狀態查詢。阿里雲Elasticsearch在日誌分析場景下提供了很多對應的能力,面向日誌分析場景,提供聚合搜索、實時查詢、增量數據快速索引歸檔等分析必備能力。除此之外,阿里雲Elasticsearch基於X-Pack服務提供了基於LBS的地理位置搜索、可視化分析報表、數據可視化展現等高級分析能力。進一步可以實現用戶留存分析,瀏覽路徑分析,基於地理圍欄的用戶畫像,用戶標籤體系等數據查詢、統計以及分析場景。
image.png

Elasticsearch如何處理日誌
日誌數據的來源有很多,比如日誌文件、數據庫、傳感器以及Web API等,而利用這些日誌數據實現日誌搜索和日誌分析會存在很多常見的需求,主要包括五點,即集中收集與存儲、日誌搜索、分析聚合及可視化、安全、角色管理以及可伸縮性。

image.png

• 在集中收集與存儲日誌數據方面,阿里雲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可以幫助用戶更好地實現數據的可視化管理。

image.png

Leave a Reply

Your email address will not be published. Required fields are marked *