Elasticsearch 入門&設定

2020-09-19 14:00:30

Elasticsearch 入門&設定

Elasticsearch 是什麼?

​ Elasticsearch 是 Elastic Stack(什麼是 Elastic Stack?) 的核心的分散式搜尋和分析引擎。Logstash 和 Beats 便於收集、聚合和豐富您的資料並將其儲存在 Elasticsearch 中。Kibana 讓你能夠互動式地探索、視覺化和分享對資料的見解,管理和監控堆疊。

​ Elasticsearch 為所有型別的資料提供近乎實時的搜尋和分析。無論你有結構化或非結構化的文字、數位資料或地理空間資料,Elasticsearch 都能以支援快速搜尋的方式有效地儲存和索引這些資料。你可以遠遠超越簡單的資料檢索和彙總資訊,便於發現資料的趨勢和模式。而且隨著你的資料和查詢量的增長,Elasticsearch 的分散式特性使你的部署能夠與之無縫對接。

Elasticsearch 解決下面的問題:

  • 在應用程式或網站上新增搜尋方塊
  • 儲存和分析紀錄檔、度量和安全事件資料。
  • 使用機器學習來實時自動模擬您的資料行為。
  • 使用 Elasticsearch 作為儲存引擎,實現業務工作流的自動化。
  • 使用 Elasticsearch 作為地理資訊系統(GIS)管理、整合和分析空間資訊。
  • 使用 Elasticsearch 作為生物資訊學研究工具儲存和處理基因資料。
  • etc…

具體更多簡介請看 官網介紹,這裡不再敘述。

為什麼使用 Elasticsearch ?

  • 可以執行和組合各種資料型別的搜尋,包括結構化、非結構化、地理和度量資料型別。
  • 查詢功能 可以以任何形式檢索所需的資料。
  • 可以在幾秒鐘內分析幾十億條記錄。
  • 它還提供了彙總功能,可以探索資料的趨勢和模式。

安裝 Elasticsearch

這裡以 centos 8 為例

檢查 java 版本

Elasticsearch 是一個 java 應用程式,所以第一步是檢查本機是否安裝 java

java -version

java 版本號

⚠️jdk 版本必須大於 1.8

如果沒有裝 openjdk,請看 How to Install Java on CentOS 8

下載 Elasticsearch

由於 Elasticsearch 在標準的 CentOS 8 資源庫中是不可用的,我們將從 Elasticsearch RPM 倉庫中安裝它。

使用 rpm 命令匯入倉庫的 GPG:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

開啟文字編輯器,建立儲存庫檔案/etc/yum. reposit.d 目錄:

sudo nano /etc/yum.repos.d/elasticsearch.repo

將以下內容寫入檔案:

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

儲存關閉,現在版本庫已經啟用,通過鍵入安裝 Elasticsearch 包:

sudo yum install elasticsearch

安裝完成後,啟動服務:

sudo systemctl enable elasticsearch.service --now

如果要驗證 Elasticsearch 是否在執行,可以使用 curl 向 localhost 的 9200 埠傳送 HTTP 請求:

curl -X GET "localhost:9200/"

輸出如下表示成功:

success

如果要檢視 Elasticsearch 服務記錄的訊息,可以使用命令:

sudo journalctl -u elasticsearch

設定 Elasticsearch

Elasticsearch 資料儲存在/var/lib/elasticsearch目錄下,組態檔位於/etc/elasticsearch中。

預設情況下,Elasticsearch 被設定為只在 localhost 上監聽。
如果連線資料庫的使用者端也在同一臺主機上執行,並且你正在建立一個單節點叢集,你不需要改變預設的組態檔。

遠端存取

開箱即用的 Elasticsearch,並沒有實現身份驗證,所以任何人都可以存取它的 HTTP API。

如果你想允許遠端存取你的 Elasticsearch 伺服器,你需要設定你的防火牆,只允許受信任的客戶存取 Elasticsearch 埠 9200。

vi /etc/elasticsearch/elasticsearch.yml

在組態檔中新增如下命令:

network.host: 0.0.0.0
  • 預設情況下,Elasticsearch 只允許本機存取,如果需要遠端存取,可以修改 Elasticsearch 安裝目錄中的 config/elasticsearch.yml 檔案,去掉 network.host 的註釋,將它的值改成 0.0.0.0,讓任何人都可以存取,然後重新啟動 Elasticsearch 。

我們來試試:

exit
curl -GET 你的伺服器 ip :9200

這樣,遠端部署也就好了。

總結

Elasticsearch 就安裝好啦,歡迎評論區討論