認識Elasticsearch

一、概述

簡介

Elasticsearch 是一個分佈式、RESTful 風格的搜索和數據分析引擎。它是基於Apache Lucene開發的,開發語言爲Java,使用Apache 開源協議進行開源。Elasticsearch的特點是:分佈式存儲,近實時數據搜索和分析,穩定,可靠,快速,且安裝使用方便。

同類型項目:
Apache Solr:一個開源的搜索服務,使用Java語言開發,主要基於HTTP和Apache Lucene實現的
Splunk:一個託管的日誌文件管理工具,可收集、索引和利用所有應用程序、服務器和設備生成的快速移動型計算機數據

Apache Lucene

Apache Lucene 創建於1999年,2005年成爲Apache的頂級開源項目。Lucene 的創始人是 Doug Cutting,他也是 Hadoop 的作者。

Lucene 的目的是爲軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者是以此爲基礎建立起完整的全文檢索引擎。有以下特點:

  • 基於Java語言開發,屬於搜索引擎類庫

  • 高性能、易拓展

  • 侷限性:

    • 1、只能基於Java語言;

    • 2、類庫接口學習曲線陡峭;

    • 3、原生不支持水平拓展

Elasticsearch

Elasticsearch的核心功能:

  • 海量數據的分佈式存儲和集羣管理

  • 高性能的近實時搜索

  • 海量數據的近實時分析

Elasticsearch 有以下特點:

  • 支持分佈式,可水平拓展

  • 可以被多語言調用,降低全文檢索的學習曲線

  • 集羣規模可以從單個節點拓展至數百個節點

  • 在服務和數據兩個維度都支持高可用且水平易擴展

  • 支持不同的節點類型

  • 提供 RESTful API 和 Transport API(官方建議使用Rest API,從Elasticsearch 8.0 版本開始 Transport API將會被移除 )

  • 支持jdbc(java 數據庫連接)和odbc(開放數據庫連接)

Elasticsearch大版本更新新特性

5.x 新特性

  • Lucene 6.x

  • 默認評分機制從TF-IDF改爲BM25

  • 內部引擎級別移除了避免同一文檔併發更新的競爭鎖,性能提升15%-20%

  • Instant aggregation,支持分片上聚合的緩存

  • 新增 Painless 腳本引擎

  • 新增 Completion Suggested 搜索提示功能

  • 新增原生的Java rest客戶端

  • 新增Ingest Node,數據預處理節點

  • 新增 Profile API 用於查詢優化

6.x 新特性

  • Lucene 7.x

  • 新增跨集羣複製(Cross Cluster Replication)

  • 新增索引生命週期管理

  • 新增Sql支持

  • 主要版本之間的升級和遷移更爲簡化

  • 全新的基於操作的數據複製框架,加快恢復數據

  • 有效存儲稀疏字段的新方法,降低了存儲成本

  • 在索引的過程中進行排序,可提高排序的查詢性能

7.x 新特性

  • Lucene 8.0

  • 廢除單個索引下多個Type的支持

  • 從7.1開始Security免費使用

  • ECK——基於 Kubernetes Operator 模式,擴展了 Kubernetes 的編排功能,支持在 Kubernetes 上設置和管理 Elasticsearch 和 Kibana

  • 新的集羣協調管理

  • 完整的 High Level Rest API

  • Script Score Query,使用腳本爲返回的文檔提供自定義分數

  • 主分片(Primary Shard)默認數從5改爲1

  • 更快的Top K

二、Elastic家族其他成員

Elastic Stack生態圈

Elastic Stack生態圈

Logstash

Logstash 是一個開源的服務端數據處理管道,支持從不同的數據來源採集數據、轉換數據,並將數據發送到不同的數據存儲庫中。Logstash 誕生於2009年,它的作者是 Jordan Sisel,最初 Logstash 是用來做日誌採集和處理的,後來隨着不斷改進 Logstash 的功能得到了越來越多的拓展,在2013年 Elasticsearch 收購了 Logstash ,Logstash 也就成爲了 Elastic 家族的一員

Logstash的特點:

  • 實時解析和轉換數據

    • 對事件字段執行常規轉換,重命名,刪除,替換和修改事件中的字段,例如:從Ip地址解析地理座標、將PII(personally identifiable information 個人驗證信息)數據匿名化,排除敏感字段
  • 可拓展

    • 200多個插件(日誌,數據庫,Arcsigh,Netflow)
  • 可靠性和安全性

    • Logstash 通過持久化隊列來保證至少將運行中的事件送達一次

    • 數據傳輸和加密

kibana

Kibana是一個爲Elasticsearch設計的開源的數據分析可視化平臺,可用來搜索、查看存儲在Elasticsearch中的數據並與之交互。

Kibana特點:

  • 自由地選擇如何呈現自己的數據

  • 可以簡單直觀的構建可視化

  • 配置簡單、接口靈活,可以更便捷分享數據

  • 與Elasticsearch無縫對接,可視化的與Elasticsearch REST API交互

Beats

Beats是開源的輕量級數據採集器,這些採集器作爲安裝在不同服務器上的代理,用於收集日誌或指標,採用Go語言開發。

Beats可以使用多種方式採集數據,主要包括如下:

  • Filebeat:用於收集和傳送日誌文件

  • Packetbeat:捕獲服務器之間的網絡流量,可用於應用程序和性能監視。

  • Metricbeat:收集並報告系統和平臺的各種系統級度量

  • Heartbeat:探測服務以檢查它們是否可訪問

  • Auditbeat:用於審覈Linux服務器上的用戶和進程活動

  • Winlogbeat:專門爲收集Windows事件日誌而設計

  • Functionbeat:爲監視雲環境而設計,收集數據並將其發送到ELK堆棧

X-Pack

X-Pack 是一個 Elastic Stack 的擴展,將安全,警報,監視,報告和圖形功能包含在一個易於安裝的軟件包中。使用X-pack通過Kibana可以實時查看集羣的健康和性能,以及分析過去的集羣、索引和節點度量,還可以監視Kibana本身性能。6.3之前 X-Pack 以插件方式安裝,在 X-Pack 開源後,提供了兩個版本:白金版和黃金版,部分 X-Pack 功能免費使用,從6.8和7.1開始 Security 功能免費使用

三、Elasticsearch發展

  • 2004年Shay Banon基於Lucene開發Compass

  • 2010年Shay Banon重寫Compass,取名字爲ElasticSearch

  • 2010年2月第一次發佈0.4版本

  • 2012年Elasticsearch商業公司成立

  • 2014年1月發佈1.0版本

  • 2014年10月發佈2.0版本

  • 2015年3月,Elasticsearch 收購 Elastic Cloud,開始提供 Cloud 服務。

  • 2015年3月,收購PacketBeat

  • 2016年9月,收購PreAlert-Machine Learning異常檢測

  • 2016年10月,Elasticsearch發佈5.0版本

  • 2017年6月,收購Opbeat進軍APM

  • 2017年10月,Elasticsearch 發佈6.0版本

  • 2017年11月,收購Saas廠商Swiftype,提供網站和App搜索

  • 2018年X-pack開源

  • 2019年4月Elasticsearch發佈7.0版本

文章歡迎轉載,轉載請註明出處,個人公衆號【愛做夢的錘子】,全網同id,個站 http://te-amo.site,歡迎關注,裏面會分享更多有用知識,還有我的私密照片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章