天天看點

雲上Elasticsearch初體驗

前段時間有客戶找我咨詢在雲上購買Elasticsearch服務的問題,但我此前對此了解的不多,不能提供太多有價值的建議,是以在這個假期抽時間研究了一下阿裡雲上的Elasticsearch服務。

阿裡雲是Elastic公司在中國的簽約合作夥伴,Elastic授權阿裡雲提供托管的ELK(Elasticsearch、Logstash、Kibana)服務,阿裡雲上的Elasticsearch 都帶有Elastic公司的X-Pack白金版插件包許可。

Elasticsearch的主要應用場景有兩個:

  • 搜尋、主要是對海量資訊提供快速的全文檢索服務,資訊的變化量相對不大,但需要對大量的使用者請求進行快速響應。
  • 日志、對海量的日志進行存儲和檢索服務,日志帶有時序資訊且寫入量巨大,對日志進行檢索的使用者通常不會太多。

這兩個應用場景阿裡雲都有對應的“自研”解決方案,那就是開放搜尋服務Opensearch和日志服務SLS,其中Opensearch的核心引擎為包括淘寶、天貓在内的大量阿裡巴巴業務提供搜素服務,而SLS服務在阿裡巴巴更是無處不在,所有的阿裡雲服務預設情況下都會使用SLS日志服務,甚至包括雲上的Elasticsearch服務本身的日志資訊都是存在SLS日志服務中,Opensearch和SLS對于像淘寶天貓、阿裡雲這樣的要求超大規模、低成本、多租戶的應用場景非常合适,但對于大多數的非阿裡系使用者來說靈活性、應用生态、使用者社群可能更加重要一些,其實即便是阿裡内部也在大量的使用Elasticsearch服務。

對于阿裡内部也在大量使用Elasticsearch通過兩點可以佐證:

  • 智能運維工具、阿裡雲提供了一個名為EYou(智能運維)的Elasticsearch運維工具,能夠對叢集的運維狀态提供全方位的健康診斷和優化建議,可以定期對叢集的運作狀态進行體檢,并根據體檢結果的進行有針對性的優化。
  • 豐富的節點類型、阿裡雲提供資料節點、Kibana節點、專有主節點、冷資料節點、協調節點、彈性節點 供使用者選擇。

更豐富的節點類型本來是一件好事,但對于有選擇困難的使用者來說也意味着更多的糾結,下面是我對這些節點功能的介紹以及選擇建議。

  • 資料節點、存儲資料、并通過選舉産生Master主節點來管理叢集狀态,正常情況下根據需要選擇資料節點即可,資料節點的規格和資料要視應用場景和資料量而定,通常搜尋類型的業務建議選擇磁盤性能更強的節點,且單個節點不建議配置過大的存儲空間,日志類型的業務則可以選擇少量大存儲空間的節點。
  • Kibana節點、ELK中K,提供資料可視化支援,其開發工具子產品也是Elasticsearch最重要的互動式運維工具,阿裡雲使用者可免費使用一個1核2G規格的Kibana節點,也可以根據需要選擇更高配置的節點,假如隻作為互動工具使用,使用免費規格的Kibana節點即可。
  • 專有主節點、當主節點出現資源緊張或失效時,将對整個叢集的運作産生嚴重影響,是以當叢集的規模較大時可以考慮配置專門的主節點而不是由資料節點通過選舉來兼任主節點。
  • 冷資料節點、Elasticsearch 支援通過标簽選擇來進行冷熱資料的分離存儲,冷資料節點隻使用高效雲盤以降低存儲成本。
  • 協調節點、當在查詢時使用複雜的合并聚合時,就需要多個節點進行“協調”,正常情況下資料節點可以充當協調的角色,但這種協調勢必帶來額外的資源開銷,假如查詢的量比較大,就有必要設定專門的協調節點了,另外要使用https協定通路Elasticsearch也需要開通協調節點,假如應用程式隻是在VPC内網通路Elasticsearch,大可不必為了https來開通協調節點,因為運維用的Kibana 無論是否開通協調節點都支援https通路。
  • 彈性節點、對于一些周期性波動的業務可以選擇定時拉起一定數量的彈性節點來對叢集進行臨時的擴容,Elasticsearch的彈性節點有些類似于RDS的隻讀節點的作用,而且彈性節點的計費方式和RDS隻讀節點一樣也是隻支援按量付費。

以下是選擇三個資料節點、兩個協調節點、一個Kibana節點的狀态:

雲上Elasticsearch初體驗

在開通協調節點後,就可以使用https協定對Elasticsearch進行通路,但在此之前需要確定所有的程式均以修改使用https協定通路:

雲上Elasticsearch初體驗

Elasticsearch作為一款開源軟體,可以自行購買ECS搭建和運維,那麼使用阿裡雲的托管服務有哪些理由呢?

從我目前的使用體驗來看,有如下理由:

  • EYou智能運維工具,凝結了阿裡雲運維和使用Elasticsearch的一些經驗教訓,讓我們少走彎路。
  • 升降配不停機、Elasticsearch在運作過程中難免要對節點的類型、數量、配置進行調整,阿裡雲上的托管叢集在對叢集進行更新、降級配置時叢集可以繼續對外提供服務。
  • 自帶X-Pack收費插件、X-Pack是Elastic 公司進行商業營運重要的收入來源,是以一些像機器學習、身份認證等重要的功能都放在X-Pack包中,單獨購買也意味着一筆不菲的投入。
  • 日志增強版執行個體、阿裡雲針對高IO吞吐的日志型業務提供日志優化增強型的執行個體,可以提升100%的寫入性能。
  • 專屬插件、阿裡雲提供專屬的中文分詞插件aliws。

在進行Elastic購買時可以通過選型工具對叢集的配置進行容量規劃,假如寫入的吞吐達到一定的量級,阿裡雲就會建議使用增強型的叢集:

雲上Elasticsearch初體驗

以下是一些aliws分詞器和icu分詞器的對比:

ICU:我——為人——人——人人——為我

雲上Elasticsearch初體驗

Aliws:我——為——人人——人人——為我

雲上Elasticsearch初體驗

以上就是我對阿裡雲上的Elasticsearch的初步體驗,希望對準備在雲上開通Elasticsearch的使用者有所幫助。

繼續閱讀