如何在Linux下安裝部署分布式全文搜索引擎
Elasticsearch是一個開源的分布式全文本搜索和分析引擎。它支持RESTful操作,并允許您實時存儲,搜索和分析大量數(shù)據(jù)。Elasticsearch是最流行的搜索引擎之一,可為具有復(fù)雜搜索要求的應(yīng)用程序提供動力,例如大型電子商務(wù)商店和分析應(yīng)用程序。
本指南說明了如何在Ubuntu 20.04上安裝Elasticsearch。
安裝Elasticsearch
在Ubuntu上安裝Elasticsearch非常簡單。我們將啟用Elasticsearch存儲庫,導(dǎo)入存儲庫GPG密鑰,然后安裝Elasticsearch服務(wù)器。
Elasticsearch軟件包隨附OpenJDK的捆綁版本,因此您不必安裝Java。
首先,更新程序包索引并安裝添加新的HTTPS存儲庫所需的依賴項:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install apt-transport-https ca-certificates wget
導(dǎo)入存儲庫的GPG密鑰:
- linuxmi@linuxmi:~/www.linuxmi.com$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
上面的命令應(yīng)該輸出OK,這意味著密鑰已經(jīng)成功導(dǎo)入,并且來自此存儲庫的軟件包將被視為受信任的軟件包。
接下來,通過發(fā)出以下命令將Elasticsearch存儲庫添加到系統(tǒng)中:
- linuxmi@linuxmi:~/www.linuxmi.com$ 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在上面的命令中更改所需的版本。
啟用存儲庫后,通過輸入以下命令安裝Elasticsearch:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install elasticsearch
安裝過程完成后,Elasticsearch服務(wù)將不會自動啟動。要啟動服務(wù)并啟用服務(wù)運行,請執(zhí)行以下操作:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable --now elasticsearch.service
- Synchronizing state of elasticsearch.service with SysV service script with /lib/systemd/systemd-sysv-install.
- Executing: /lib/systemd/systemd-sysv-install enable elasticsearch
- Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /lib/systemd/system/elasticsearch.service.
要驗證Elasticsearch是否正在運行,請使用curl將HTTP請求發(fā)送到localhost 上的9200端口:
- linuxmi@linuxmi:~/www.linuxmi.com$ curl -X GET "localhost:9200/"
您應(yīng)該看到類似以下內(nèi)容:
- {
- "name" : "linuxmi",
- "cluster_name" : "elasticsearch",
- "cluster_uuid" : "VnSPAJorQXiyYUTtCzoEQQ",
- "version" : {
- "number" : "7.8.1",
- "build_flavor" : "default",
- "build_type" : "deb",
- "build_hash" : "b5ca9c58fb664ca8bf9e4057fc229b3396bf3a89",
- "build_date" : "2020-07-21T16:40:44.668009Z",
- "build_snapshot" : false,
- "lucene_version" : "8.5.1",
- "minimum_wire_compatibility_version" : "6.8.0",
- "minimum_index_compatibility_version" : "6.0.0-beta1"
- },
- "tagline" : "You Know, for Search"
- }
服務(wù)可能需要5到10秒才能啟動。如果看到curl: (7) Failed to connect to localhost port 9200: Connection refused,請等待幾秒鐘,然后重試。
要查看Elasticsearch服務(wù)記錄的消息,請使用以下命令:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo journalctl -u elasticsearch
[sudo] linuxmi 的密碼:
- -- Logs begin at Thu 2020-05-28 14:51:20 CST, end at Thu 2020-07-30 04:03:45 CS>
- 7月 30 03:43:33 linuxmi systemd[1]: Starting Elasticsearch...
- 7月 30 03:44:30 linuxmi systemd[1]: Started Elasticsearch.
OK,就這樣。Elasticsearch已安裝在您的Ubuntu服務(wù)器上。
配置Elasticsearch
Elasticsearch數(shù)據(jù)存儲在/var/lib/Elasticsearch目錄中。配置文件位于/etc/elasticsearch中,Java啟動選項可以在/etc/default/elasticsearch文件中配置。
默認(rèn)情況下,Elasticsearch配置為僅在本地主機上偵聽。如果連接到數(shù)據(jù)庫的客戶端也正在同一主機上運行,并且您正在設(shè)置一個單節(jié)點群集,則無需更改默認(rèn)配置文件。
遠(yuǎn)程訪問
開箱即用的Elasticsearch不實現(xiàn)身份驗證,因此任何可以訪問HTTP API的人都可以訪問它。
要允許遠(yuǎn)程訪問您的Elasticsearch服務(wù)器,您將需要配置防火墻并打開TCP端口6379。
通常,您只希望允許從特定IP地址或IP范圍訪問Redis服務(wù)器。例如,要僅允許來自192.168.135.0/24子網(wǎng)的連接,可以運行以下命令:
- sudo ufw allow proto tcp from 192.168.135.0/24 to any port 6379
一旦配置了防火墻,下一步就是編輯Elasticsearch配置并允許Elasticsearch偵聽外部連接。
為此,請打開elasticsearch.yml配置文件:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo nano /etc/elasticsearch/elasticsearch.yml
搜索包含的行network.host,取消注釋,然后將值更改為0.0.0.0:
network.host: 0.0.0.0
如果您的計算機上有多個網(wǎng)絡(luò)接口,請指定接口IP地址以強制Elasticsearch僅偵聽給定的接口。
重新啟動Elasticsearch服務(wù),以使更改生效:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl restart elasticsearch
OK。您現(xiàn)在可以從遠(yuǎn)程位置連接到Elasticsearch服務(wù)器。
總結(jié)
我們已經(jīng)向您展示了如何在Ubuntu 20.04上安裝Elasticsearch。
要了解有關(guān)Elasticsearch的更多信息,請訪問官方文檔頁面。