如何在Ubuntu 18.04
上安裝Elasticsearch
Elasticsearch
是一個開源的分布式全文本搜索和分析引擎。它支持RESTful
操作,並允許您實時存儲,搜索和分析大量數據。
Elasticsearch
是最流行的搜索引擎之一,為具有復雜搜索要求的應用程序提供動力,例如大型電子商務商店和分析應用程序。
在本教程中,我們將向您展示如何在
Ubuntu 18.04
上安裝Elasticsearch
。相同的說明適用於Ubuntu 16.04
和任何基於Ubuntu
的發行版,包括Linux Mint
,Kubuntu
和Elementary OS
。
先決條件
您需要以具有[sudo]
權限的用戶身份登錄,才能在Ubuntu
系統上安裝軟件包。
安裝Elasticsearch
在Ubuntu 18.04
上安裝Elasticsearch
的最簡單方法是從官方Elasticsearch
存儲庫中安裝deb
軟件包。
在撰寫本文時,Elasticsearch
的最新版本為7.0.0
,並且要求在系統上安裝Java8
。
首先,更新軟件包索引並安裝通過HTTPS
訪問存儲庫所需的apt-transport-https
軟件包:
sudo apt update
sudo apt install apt-transport-https
sudo apt install openjdk-8-jdk
通過運行以下命令來驗證Java
安裝,該命令將打印Java
版本:
java -version
輸出應如下所示:
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
現在已安裝Java
,下一步是添加Elasticsearch
存儲庫。
使用以下 wget
命令導入存儲庫的GPG
:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
上面的命令應該輸出OK
,這意味着密鑰已成功導入,並且來自此存儲庫的軟件包將被視為受信任的。
接下來,通過發出以下命令將Elasticsearch
存儲庫添加到系統中:
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
如果要安裝Elasticsearch
的先前版本,請在上面的命令中將7.x
更改為所需的版本。
啟用存儲庫后,更新apt
軟件包列表並輸入以下內容來安裝Elasticsearch
引擎:
sudo apt update
sudo apt install elasticsearch
安裝過程完成后,Elasticsearch
服務將不會自動啟動。要啟動該服務並啟用該服務,請運行:
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
您可以使用以下 curl命令,通過向本地主機上的端口9200發送HTTP請求來驗證Elasticsearch
是否正在運行:
curl -X GET "localhost:9200/"
您應該會看到類似的內容:
{
"name" : "lihouqi",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "EUWHmKDfQ7m8BetKuQDUOQ",
"version" : {
"number" : "7.13.1",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "9a7758028e4ea59bcab41c12004603c5a7dd84a9",
"build_date" : "2021-05-28T17:40:59.346932922Z",
"build_snapshot" : false,
"lucene_version" : "8.8.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
服務需要5到10秒鍾才能啟動。如果看到curl: (7) Failed to connect to localhost port 9200: Connection refused
,請等待幾秒鍾,然后重試。
如果要查看Elasticsearch
服務記錄的消息,可以使用以下命令:
sudo journalctl -u elasticsearch
恭喜,這時您已經在Ubuntu
服務器上安裝了Elasticsearch
。
以下可作了解,操作完上面步驟已經安裝好了Elasticsearch
配置Elasticsearch
Elasticsearch
數據存儲在/var/lib/elasticsearch
目錄中,配置文件位於/etc/elasticsearch
中,並且Java
啟動選項可以在/etc/default/elasticsearch
文件中進行配置。
默認情況下,Elasticsearch
配置為僅在本地主機上偵聽。如果連接到數據庫的客戶端也正在同一主機上運行,並且您正在設置單個節點群集,則無需更改默認配置文件。
遠程訪問
開箱即用的Elasticsearch
,不實現身份驗證,因此任何可以訪問HTTP API
的人都可以訪問它。如果要允許遠程訪問您的Elasticsearch
服務器,則需要配置防火牆,並僅允許從受信任的客戶端訪問Elasticsearch
端口9200。
Ubuntu
帶有一個稱為 UFW 的防火牆配置工具。默認情況下,UFW
已安裝但未啟用。在啟用UFW
防火牆之前,首先添加一條規則,該規則將允許傳入的SSH連接:
sudo ufw allow 22
允許從遠程可信IP
地址進行評估:
sudo ufw allow from 192.168.100.20 to any port 9200
不要忘記用遠程IP
地址更改192.168.100.20
。
通過鍵入以下內容來啟用UFW
:
sudo ufw enable
最后,檢查防火牆的狀態:
sudo ufw status
輸出應如下所示:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
9200 ALLOW 192.168.100.20
22 (v6) ALLOW Anywhere (v6)
配置好防火牆后,下一步就是編輯Elasticsearch
配置並允許Elasticsearch
監聽外部連接。
為此,請打開elasticsearch.yml
配置文件:
sudo nano /etc/elasticsearch/elasticsearch.yml
搜索包含network.host
的行,取消注釋,然后將值更改為0.0.0.0
:
/etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
如果您的計算機上有多個網絡接口,則可以指定接口IP
地址,這將使Elasticsearch
僅在指定的接口上偵聽。
重新啟動Elasticsearch
服務以使更改生效:
sudo systemctl restart elasticsearch
就是這樣。您現在可以從遠程位置連接到Elasticsearch
服務器。
結論
您已成功在Ubuntu 18.04
上安裝Elasticsearch
。您現在可以訪問 Elasticsearch文檔官方頁面,並學習如何開始使用Elasticsearch
。