返回部落格

如何在 Ubuntu 18.04 上安裝 Elastic Stack

如何在 Ubuntu 18.04 上安裝 Elastic Stack

The Elastic Stack(先前稱為 ELK Stack)是一個用於集中式記錄的強大解決方案。它是開源軟體的集合,由 Elastic 開發。它允許管理員搜尋、分析和視覺化從任何來源以任何格式產生的記錄。這是一種稱為集中式記錄的實踐形式。在嘗試精確定位伺服器和應用程式的問題時,集中式記錄非常方便,因為它允許從單一位置搜尋所有記錄。它還可以透過關聯特定時間的記錄來協助識別多個伺服器上的問題。

在本指南中,我們將介紹如何在 Ubuntu 18.04 上安裝 Elastic Stack。首先,請按照我們的教學輕鬆地 在 CloudSigma 上安裝您的 Ubuntu 伺服器.

Ubuntu 上的 Elastic Stack

Elastic Stack 由以下組件組成:

  • Elasticsearch:一個分散式的 RESTful 搜尋引擎。它儲存所有收集到的數據。
  • Logstash: Elastic Stack 的數據處理部分。它將傳入的數據傳送到 Elasticsearch。
  • Kibana: 一個網頁介面,提供搜尋和記錄視覺化功能。
  • Beats: 一個輕量級、單一用途的數據傳輸器。它可以將數據從多台機器傳送到 Logstash 或 Elasticsearch。

您需要手動安裝該 Stack 的每個組件。

先決條件

在繼續安裝 the Elastic Stack 之前,必須滿足幾個系統要求:

請注意,儲存空間的大小取決於要收集和儲存的記錄數量。此外,Elastic Stack 還處理有關伺服器的重要資訊。為了確保數據傳輸的安全,我們強烈建議配置 TLS/SSL 憑證。請按照此 教學在您的 Nginx 伺服器上獲取免費的 SSL 憑證.

除了加密的伺服器之外,還需要執行以下步驟:

  • 一個 FQDN(完整網域名稱)。在本指南中,它將是 <domain>。
  • 以下兩個網域的 DNS 記錄都指向該伺服器。
    • 一條將 <domain> 指向伺服器公用 IP 的 A 記錄。
    • 一條將 www.<domain> 指向伺服器公用 IP 的 A 記錄。

安裝 Elastic Stack

  • 配置 Elastic 儲存庫

Elastic Stack 的組件無法直接從官方 Ubuntu 儲存庫中取得。幸好,Ubuntu 允許 3rd 方儲存庫來安裝套件。為此,我們將新增 Elastic 套件儲存庫。該儲存庫提供所有 Elastic 套件的最新更新。所有 Elastic 套件都使用 Elasticsearch 簽章金鑰進行簽署,以防止套件被偽造。首先,將金鑰新增至 Ubuntu 金鑰環中:

然後,在「sources.list.d」目錄下新增 Elastic 來源清單。這是 APT 用於搜尋新來源的專用目錄:

最後,更新 APT 快取:

根據官方文件,建議按照本指南中示範的順序安裝每個組件。這可以確保每個產品所依賴的組件都位於正確的位置。

  • 安裝與配置 Elasticsearch

配置好 Elastic 儲存庫後,APT 就可以下載並安裝所有 Elastic 套件。執行以下命令來安裝 Elasticsearch:

現在您可以設定 Elasticsearch。“elasticsearch.yml” 檔案提供了有關叢集、節點、路徑、網路、記憶體、閘道等的設定選項。其中大部分已在檔案中預先設定。接下來,使用您選擇的文字編輯器開啟 Elasticsearch 設定檔案:

Elasticsearch 預設監聽來自任何地方的 9200 連接埠。我們建議限制對 Elasticsearch 的外部存取,以防止外部人員讀取資料或使用其 REST API 關閉 Elasticsearch 叢集。要限制對 Elasticsearch 的存取並加強其安全性,請取消註解以下行並替換其值:

network.host: localhost

如果 Elasticsearch 要監聽特定的 IP 位址,請將 “localhost” 替換為目標 IP 位址。這是執行 Elasticsearch 之前的最低設定要求。儲存並關閉設定檔案。接下來,啟動 Elasticsearch 服務。啟動 Elasticsearch 可能需要一些時間:

之後,您需要確保 Elasticsearch 在每次伺服器開機時啟動:

以下指令將驗證 Elasticsearch 服務是否正在執行。它只需要傳送一個 HTTP 請求:

sending an HTTP request

回應看起來會像這樣。這是一個顯示有關本機節點一些基本資訊的回應。

安裝與設定 Kibana 儀表板

Kibana 可以直接從 Elastic 儲存庫中取得。請注意,您應該在安裝了 Elasticsearch 之後才安裝 Kibana。假設儲存庫已經可用,APT 可以直接獲取並安裝 Kibana:

安裝完成後,啟用並啟動 Kibana 服務:

預設情況下,Kibana 設定為僅監聽 “localhost”。對於外部存取,它需要設定反向代理。在這裡, Nginx 將作為反向代理。使用 openssl 指令來建立 Kibana 管理員使用者。這將是存取 Kibana 網頁介面的使用者帳戶。在這裡,範例使用者名稱將是 “kibana_admin”。為了確保更好的安全性,我們建議使用非標準的使用者名稱。以下指令將為 Kibana 建立一個管理員使用者。使用者名稱和密碼將被產生並儲存在 “htpasswd.users” 檔案中。Nginx 必須設定為使用該使用者名稱和密碼:

在提示字元下輸入並確認密碼。此密碼對於存取 Kibana 介面非常重要。之後,您需要建立一個 Nginx 伺服器區塊(server block)檔案。為了進行演示,它將是 example.com。它也可以是任何其他描述性名稱。如果為伺服器設定了 FQDN 和 DNS 記錄,檔案名稱也可以使用 FQDN:

如果存在任何現有內容,請刪除該內容,並將其替換為以下幾行程式碼:

儲存並關閉檔案。在「sites-enabled」目錄下建立新設定的符號連結。如果已存在相同檔名的連結,則可能不需要此步驟:

以下命令將提示 Nginx 檢查是否存在任何語法錯誤:

如果存在任何語法問題,請確保檔案內容放置正確。接下來,重新啟動 Nginx 服務:

告知 UFW 允許連線至 Nginx:

現在應該可以透過 Elastic Stack 伺服器的 FQDN 或公用 IP 位址存取 Kibana。檢查 Kibana 伺服器的狀態頁面:

status page

安裝與設定 Logstash

雖然 Beats 可以直接將資料傳送到 Elasticsearch’s 資料庫,但建議使用 Logstash 來處理資料。Logstash 可以收集資料並將其轉換為通用格式,然後再匯出到另一個資料庫。執行以下 APT 命令來安裝 Logstash:

安裝完成後,就可以開始設定 Logstash 了。Logstash 的設定檔為 JSON 格式。您可以在「/etc/logstash/conf.d」目錄中找到所有這些檔案。將 Logstash 視為一個管道(pipeline)會很有幫助,它在一端接收資料,進行處理,然後將其傳送到目的地。Logstash 管道需要兩個必要元素 – inputoutput ,以及一個選用元素 – filter。input 外掛程式接收資料,filter 外掛程式處理資料,而 output 外掛程式將資料寫入目的地。以下命令將建立一個設定檔,將 Logstash 設定為 Filebeat 輸入:

輸入以下 input 設定。它描述了一個 beats 輸入,該輸入將在 TCP 連接埠 5044 上進行監聽:

下一步是建立一個名為「10-syslog-filter.conf」的設定檔。我們將使用它來為 syslogs(系統記錄):

輸入以下 syslog 設定程式碼。此程式碼可直接從 Elastic 指南 取得。此程式碼說明了 input 對 Logstash 的設定:

下一個設定檔將處理輸出。開啟一個名為「30-elasticsearch-output.conf」的新檔案:

輸入以下程式碼。此程式碼向 Logstash 說明輸出設定:

測試 Logstash 設定。然後,執行以下命令:

如果沒有錯誤,Logstash 將會印出以下成功訊息。如果未成功,請確保所有設定檔都包含正確的程式碼。最後,啟動並啟用 Logstash 服務:

現在 Logstash 已成功執行且已完整設定,讓我們來安裝 Filebeat。

安裝與設定 Filebeat

Elastic Stack 使用稱為「Beats」的資料傳送器,從各種來源收集資料並將其傳輸到 Logstash/Elasticsearch。以下是 Elastic 提供的可用 Beats 簡短清單:

  • Filebeat:收集/傳送日誌檔案。
  • Metricbeat:從系統和服務收集/傳送指標。
  • Packetbeat:收集/分析網路資料。
  • Winlogbeat:收集 Windows 事件日誌。
  • Auditbeat:收集 Linux 稽核框架資料並監控檔案完整性。
  • Heartbeat:監控服務的可用性。

在本教學中,我們將需要 Filebeat 來將本地日誌傳送到 Elastic Stack。首先,安裝 Filebeat:

您現在可以配置 Filebeat。首先,它需要連接到 Logstash。我們將使用 Filebeat 隨附的範例配置。在文字編輯器中打開配置文件。請注意,因為該文件是 YAML 格式,所以正確的縮排非常重要:

找到「output.elasticsearch」區段並註解掉以下幾行。這將配置 Filebeat 直接將事件發送到 Elasticsearch/Logstash 進行額外處理。接下來,跳到「output.logstash」區段。接著,取消註解以下幾行:

output.logstash

Filebeat 支援 模組,可以擴充其功能。在本教學中,我們將使用 系統模組,它會收集並解析常見 Linux 發行版的系統記錄服務所產生的記錄。啟用 Filebeat 系統模組:

以下 Filebeat 指令將列出所有已啟用和已停用的模組:

預設情況下,Filebeat 設定為遵循 syslog 和授權記錄的預設路徑。模組的參數可在「/etc/filebeat/modules.d/system.yml」配置文件中找到。

下一步是將索引範本載入到 Elasticsearch 中。一個 Elasticsearch 索引 表示共享相似特徵的文件集合。每個索引都有一個名稱。在其中執行各種操作時,該名稱是必需的。每次產生新索引時,都會自動套用索引範本。接下來,載入範本:

預設情況下,Filebeat 包含一個適用於 Kibana 的範例儀表板。它有助於在 Kibana 中視覺化 Filebeat 資料。然而,在使用儀表板之前,必須先建立索引模式並將儀表板載入到 Kibana 中。在載入儀表板時,Filebeat 會聯絡 Elasticsearch 以獲取版本資訊。為了載入儀表板,在啟用 Logstash 的情況下,需要停用 Logstash 輸出並啟用 Elasticsearch 輸出。以下指令將完成此工作:

最後,您可以啟動 Filebeat:

現在,是時候測試 Elastic Stack 配置了。如果配置正確,輸出將類似於以下內容:

Elastic Stack configuration

如果輸出顯示總命中數為 0,則表示 Elasticsearch 沒有在我們搜尋的索引下載入任何記錄。這表示配置存在錯誤。如果輸出符合預期,則表示 Elastic Stack 已成功配置。

Kibana 儀表板概述

現在,是時候探索我們已經安裝的 Kibana 網頁介面了。首先,打開 Kibana 儀表板。它應該位於 Elastic Stack 伺服器的 FQDN 或公用 IP 位址:

輸入我們之前產生的登入憑證。登入後,儀表板將如下所示:

Elastic stack home

從左側導覽列中,選擇「Discover」。然後,選擇「filebeat-*」模式。它會顯示過去 15 分鐘內收集的所有記錄。您可以搜尋和瀏覽記錄,並自訂儀表板:

customize the dashboard

從左側導覽列中,前往 Dashboard >> Filebeat System。在這裡,可以使用來自 Filebeat 系統模組的所有範例儀表板。

在以下範例中,它詳細列出了基於 syslog 訊息的各種統計數據:

Elastic Stack dashboard

它還可以報告哪些使用者使用 sudo 執行了指令:

executed commands

最後,Kibana 讓您有機會探索許多其他功能(例如圖表和篩選),因此請隨意自行探索。

結語

Elastic Stack 是用於分析系統記錄的強大解決方案。請記住,雖然任何記錄或索引數據都可以使用 Beats 傳送到 Logstash,但透過 Logstash 篩選器進行解析和結構化後,它會變得更加有用。

祝您運算愉快!

author

Hark Labs

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。