如何在 Debian 12、11 或 10 Linux 上安裝 Elasticsearch 8

Elasticsearch 8 是一款強大且靈活的開源搜尋和分析引擎,以其可擴展性、速度和即時資料索引功能而聞名。 8.x 版本帶來了重大增強,包括改進的安全功能、簡單的憑證管理、豐富的文字搜尋功能以及更有效率的查詢執行。它還引入了對運行時字段的本機支持,從而可以更輕鬆地自訂資料的索引和搜尋方式,而無需更改底層架構。這些進步使 Elasticsearch 8.x 成為管理和分析大量資料的強大解決方案。

要在 Debian 12、11 或 10 上安裝 Elasticsearch 8,您可以使用 Elasticsearch 提供的官方 APT 儲存庫。本指南將引導您完成設定 Elasticsearch 的步驟,確保您能夠存取最新的功能和改進。

在安裝 Elasticsearch 之前更新 Debian

第一步,您需要確保您的 Debian Linux 系統已更新。此步驟會將所有現有軟體更新至最新版本,並準備您的系統進行安裝。

執行以下命令來更新您的 Debian 系統:

sudo apt update && sudo apt upgrade

安裝必要的軟體包

在 Debian 上安裝 Elasticsearch 8 之前,我們必須滿足特定的先決條件。這涉及安裝一些必需的軟體包,例如 software-properties-common、apt-transport-https 和 curl。這些軟體包有助於透過網路進行軟體管理和資料傳輸。

透過執行以下命令來安裝必要的軟體包:

sudo apt install software-properties-common apt-transport-https curl -y

在 Debian 上新增 Elasticsearch 8 APT 儲存庫

接下來,我們將 Elasticsearch APT 儲存庫新增到我們的 Debian Linux 系統中。首先,我們將為 Elasticsearch 匯入 GPG 金鑰,以確保您正在安裝的軟體的真實性。執行以下命令導入 GPG 金鑰:

curl -fSsL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch-8.gpg > /dev/null

接下來,讓我們匯入 Elasticsearch 儲存庫。這將允許我們直接使用安裝 Elasticsearch apt 套件管理器:

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-8.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch-8.list

更新 APT 索引快取

將 Elasticsearch 儲存庫新增至我們的系統後,我們必須更新 APT 套件索引。這可確保 APT 了解新新增的儲存庫中的新軟體包。執行以下指令更新APT索引:

sudo apt update

透過APT指令安裝Elasticsearch 8

現在我們的系統已準備就緒且 APT 索引已更新,我們可以安裝 Elasticsearch 8。

sudo apt install elasticsearch

注意:如果同一個 Elasticsearch 儲存庫存在兩個條目,您將在 apt 更新期間遇到錯誤。如果您遇到「重複的sources.list條目」錯誤,請檢查/etc/apt/sources.list.d/elasticsearch-8.x.list中的重複條目,或在/etc/中的檔案中找到重複條目apt/sources.list.d/ 和 /etc/apt/sources.list 檔案。

安裝後在 Debian 上啟用 Elasticsearch

安裝後,Elasticsearch 服務在啟動時被停用並且預設為非活動狀態。若要啟用 Elasticsearch 服務並將其設定為在啟動時自動啟動,請使用下列命令 systemctl 命令:

sudo systemctl enable elasticsearch.service --now

配置 Elasticsearch 8

在 Debian Linux 系統上管理 Elasticsearch 8 的下一階段是設定它。

熟悉預設的 Elasticsearch 設定

在全新的 Elasticsearch 安裝中,該軟體將其處理和儲存的資料放置在 /var/lib/elasticsearch 目錄中。如果您需要修改配置,/etc/elasticsearch 是您的首選目錄。如果 Java 啟動選項需要調整,可以在 /etc/default/elasticsearch 設定檔中調整這些設定。

這些標準設定適合 Elasticsearch 專門在本機上運行的獨立伺服器。但是,如果您的目標是建立 Elasticsearch 叢集或允許遠端連接,則需要修改預設配置。

完善 Elasticsearch 設定文件

Elasticsearch 設定檔包含許多參數,可以調整這些參數以滿足您的獨特需求。若要開啟該文件,請執行以下命令:

sudo nano /etc/elasticsearch/elasticsearch.yml

一個重要的參數是 cluster.name,它指定您的節點所屬的叢集名稱。預設情況下,這是“elasticsearch”,但在生產環境中建議使用更獨特的名稱。

這是一個例子:

cluster.name: my_application

node.name 選項是另一個重要選項,用於設定 Elasticsearch 節點的名稱。該名稱對於順利管理至關重要,尤其是在使用多個節點時。

這是一個例子:

node.name: node-1

在 Debian 上使用 HTTPS 設定 Elasticsearch 8

以下內容介紹了為 Elasticsearch 安裝設定 HTTPS。加密對於保護資料至關重要,使 Elasticsearch 8 使用 HTTPS 可確保資料在節點和用戶端之間安全傳輸。

產生 SSL 憑證

配置 Elasticsearch for HTTPS 的第一步是產生 SSL 憑證。該證書將加密伺服器和用戶端之間的資料。 Elasticsearch 有一個名為 elasticsearch-certutil 的內建工具,您可以使用它來產生自簽名憑證。運行以下命令:

sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/elastic-certificates.p12

這將在 config 目錄中建立一個 .p12 檔案。該文件包含私鑰和公共憑證。保護該文件並確保未經授權的使用者無法存取該文件至關重要。

更新 Elasticsearch 8 配置

接下來,您需要更新位於 /etc/elasticsearch/elasticsearch.yml 的 Elasticsearch 設定檔以包含憑證和私鑰的路徑。開啟設定檔並新增以下行:

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

這些設定為傳輸層啟用 SSL,指定我們使用憑證進行 SSL 驗證,並定義憑證和私鑰的路徑。

允許遠端存取(可選)

預設情況下,Elasticsearch 配置為僅偵聽 localhost。但是,如果需要遠端訪問,則可以對此進行調整。尋找 Network 部分並透過刪除前面的 # 來取消註解 network.host 行。將現有值替換為您的內部私人 IP 位址或外部 IP 位址。

這是一個例子:

# network.host: 192.168.0.1

在此範例中,network.host 已取消註解並調整為內部私人 IP 位址。

為了安全起見,建議指定單獨的 IP 位址。但是,您可以透過將連接到伺服器的多個內部或外部 IP 位址設為 0.0.0.0 來變更網路介面以偵聽所有內容。

進行必要的變更後,儲存設定檔(CTRL+O 儲存,CTRL+X 退出)。

若要強制執行設定檔更改,請使用下列命令重新啟動 Elasticsearch 服務:

sudo systemctl restart elasticsearch

修改遠端連線的 UFW 防火牆規則

如果您已將 Elasticsearch 配置為允許遠端連接,則調整防火牆規則以適應這些連接至關重要。簡單防火牆 (UFW) 可以對此提供協助。

您可以透過執行以下命令來允許特定 IP 位址連接到 Elasticsearch:

sudo ufw allow from <IP Address> to any port 9200

別忘了更換與您希望允許連線的實際 IP 位址。此命令將為指定的 IP 位址開啟連接埠 9200,允許其與 Elasticsearch 互動。

例如,如果您希望允許 IP 位址 192.168.0.2 連接,則命令為:

sudo ufw allow from 192.168.0.2 to any port 9200

此後,您的 Debian 伺服器將允許來自 192.168.0.2 的流量透過連接埠 9200 存取 Elasticsearch。

驗證 Elasticsearch 8 配置

修改 Elasticsearch 配置後,驗證變更是否已正確實作以及 Elasticsearch 執行個體是否如預期運作至關重要。

檢查Elasticsearch 8服務狀態

首先,檢查 Elasticsearch 服務的狀態以確認其處於活動狀態並正在執行。您可以使用以下命令來執行此操作:

sudo systemctl status elasticsearch

此命令將輸出有關 Elasticsearch 服務的信息,包括它是否處於活動狀態和正在運行。如果沒有,您可能需要解決問題或檢查您的設定變更。

測試遠端存取(可選)

如果您已啟用遠端訪問,則可以透過嘗試從遠端電腦連接到 Elasticsearch 實例來測試它。如上一節所述,防火牆規則中必須允許您連線的 IP 位址。

您可以使用curl指令來達到此目的:

curl https://<Your_Elasticsearch_IP>:9200

代替與您的 Elasticsearch 伺服器的 IP 位址。如果成功,此命令應傳回有關您的 Elasticsearch 實例的資訊。

驗證資料完整性

最後,驗證 Elasticsearch 資料的完整性非常重要,尤其是在您對配置中的資料目錄進行變更的情況下。 Elasticsearch 提供可用於檢查資料狀態的 API。

例如,要取得所有索引的狀態,請使用下列命令:

curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty"

此指令列出 Elasticsearch 實例中的所有索引及其運作狀況。檢查索引的健康狀態,以確保您的資料安全且可存取。

注意:請記住,維護資料的完整性和安全性始終應該是重中之重。請務必仔細檢查您的變更、驗證您的配置並定期監控您的 Elasticsearch 執行個體。這將幫助您使用 Elasticsearch 維護可靠、高效且安全的資料管理系統。

透過 cURL 與 Elasticsearch 8 交互

本部分將探討與 Elasticsearch 8 實例互動的常用指令。我們將使用 curl 命令列工具,一個使用不同協定傳輸資料的靈活庫。

刪除索引

Elasticsearch 索引是一組具有相似特徵的文檔。如果您希望刪除名為 Samples 的索引,可以使用下列命令來完成此操作:

curl -X DELETE 'https://localhost:9200/samples'

此命令向指定的 URL 發送 HTTP DELETE 請求,告訴 Elasticsearch 刪除樣本索引。

列出所有指數

若要檢索 Elasticsearch 實例中所有索引的列表,請使用 _cat/indices 端點和 GET 請求,如下所示:

curl -X GET 'https://localhost:9200/_cat/indices?v'

回應將列出所有索引,包括索引的運作狀況、狀態、大小和文件數量。

從索引中取得文檔

若要從特定索引(例如範例)取得所有文檔,請使用 _search 端點:

curl -X GET 'https://localhost:9200/sample/_search'

此命令檢索儲存在範例索引中的所有文件。

使用 URL 參數搜尋

您可以使用 Lucene 的查詢語法進行基本文字搜尋。例如,如果您想查找學校領域為哈佛的文檔,您可以使用:

curl -X GET https://localhost:9200/samples/_search?q=school:Harvard

此命令使用 q 參數將 GET 請求傳送至 _search 端點進行查詢。

使用 Elasticsearch Query DSL 進行搜索

對於更複雜的查詢,您可能更喜歡使用 Elasticsearch 的 Query DSL,它允許您使用 JSON 來定義查詢。這種格式更具可讀性並且更容易調試複雜的查詢。

這是一個例子:

curl -XGET --header 'Content-Type: application/json' https://localhost:9200/samples/_search -d '{
      "query" : {
        "match" : { "school": "Harvard" }
    }
}'

此命令的作用與上一個命令相同,但使用 JSON 作為查詢定義。這樣,命令就更具可讀性,特別是在處理更複雜的查詢時。

新增和更新文檔

若要將新文件新增至索引,您可以使用 PUT 方法以及 _doc 端點。例如,要將 ID 為 1 且學校領域為哈佛的文檔新增至樣本索引中,您可以使用:

curl -XPUT --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1 -d '{
   "school" : "Harvard"
}'

若要更新文檔,您可以使用具有 _update 端點的 POST 方法。例如,要將學生欄位新增至我們剛剛建立的文件中,您可以使用:

curl -XPOST --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1/_update -d '{
"doc" : {
               "students": 50000}
}'

此指令告訴 Elasticsearch 更新範例索引中 ID 為 1 的文檔,新增值為 50000 的學生欄位。

這些命令只是您使用 Elasticsearch 可以完成的任務的一小部分範例。 Elasticsearch 查詢 DSL

在 Debian 12、11 或 10 上管理 Elasticsearch 8

本部分深入探討從 Debian Linux 伺服器中刪除 Elasticsearch 8 的過程。您可能出於多種原因想要執行此操作,例如該軟體不再適合您的要求或您計劃切換到替代解決方案。無論您的原因為何,以下列出的步驟將引導您完成整個過程。

從 Debian 中刪除 Elasticsearch 8

從伺服器上根除 Elasticsearch 只需一個簡單的命令。但是,請記住此操作是不可逆轉的,並且將刪除所有關聯的資料。這是要執行的命令:

sudo apt remove elasticsearch

執行上述指令將有效卸載 Elasticsearch,釋放先前指派的系統資源。

刪除 Elasticsearch APT 儲存庫

卸載後,Elasticsearch 儲存庫將保留在您的系統上。如果您確定將來不會重新安裝 Elasticsearch,不妨將其刪除以避免不必要的混亂。

以下是刪除 Elasticsearch 儲存庫的方法:

sudo rm /etc/apt/sources.list.d/elasticsearch-8.list

上述命令將從 Debian Linux 伺服器中刪除 Elasticsearch 8 儲存庫。

刷新儲存庫列表

最後一步是刷新 apt 軟體包列表。此步驟對於確保您的系統在未來的更新或安裝中不考慮 Elasticsearch 8 至關重要。

更新儲存庫清單的命令如下:

sudo apt update

結論

在您的 Debian 系統上成功安裝 Elasticsearch 8 後,您可以利用其進階搜尋和分析功能來高效管理和分析您的資料。定期更新 Elasticsearch 以受益於最新功能和安全性增強功能。享受 Elasticsearch 8.x 的強大功能,這些功能專為滿足現代資料管理和分析的需求而客製化。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

發佈留言