ELK Stack 教程:開始使用 Elasticsearch、Logstash、Kibana 和 Beats
ELK Stack 是用於檢視和處理 ELK Stack 或 Elastic Stack 中檔案的最佳工具之一。此工具包含 E- Elasticsearch、L- Logstash 和 K- Kibana,這三個開源工具。
ELK Stack 工具用於即時處理和分析大量資料。但是,Beats 是一個開放且獨立的平臺,用於單用途資料傳送器。它將資料從數百或數千個系統和機器傳送到 Elasticsearch 或 Logstash。
ELK Stack 廣泛應用於醫療保健、金融和 IT 等各個行業,用於故障排除、監控和日誌分析。因此,這篇長博文將為您提供有關 ELK Stack 的完整詳細資訊以及在 Linux 中設定它的方法。
ELK Stack 教程:Elasticsearch、Logstash、Kibana 和 Beats
如上所述,ELK Stack 是不同工具的組合,因此讓我們逐一討論它們,以便對其有一個簡要的瞭解 -
Elasticsearch - Elasticsearch 是一個用於日誌檔案的可搜尋資料庫,允許高效且快速地檢索資料。主要用於索引和儲存資料。它被用作可搜尋、可擴充套件的資料庫來儲存資料。
Logstash - Logstash 充當資料處理管道,從各種來源讀取、收集、轉換和解析資料,然後將資料傳送到 ElasticSearch。此工具從各種來源收集日誌和其他資料,包括應用程式、伺服器和裝置。
Kibana - Kibana 使用 Web 瀏覽器介面來組織和顯示資料。此工具高度可配置,以便使用者可以根據需要進行調整。同時,它允許您建立報告和互動式儀表板以分析儲存在 ElasticSearch 中的資料。
它是一個視覺化工具,提供使用者友好的 UI 來檢視使用者資料。此功能使使用者可以輕鬆地瀏覽和視覺化資料。
Beta - Beats 是輕量級資料傳送器或針對單個任務的小型資料收集應用程式。不同的 Beats 應用程式用於各種目的,例如訪問伺服器的其他部分、讀取檔案並將其傳送出去。例如,Packetbeat 分析網路流量,而 Filebeat 用於收集日誌檔案。
注意 - 一些使用者直接使用 Logstash,完全跳過 Beats。同時,一些使用者將 Beats 直接連線到 Elasticsearch。
ELK Stack 的功能
JSON 文件複製可搜尋、分片儲存。
NRT(近即時)搜尋。
全文搜尋
地理位置和多語言支援。
具有帶有 JSON 輸出的 REST API Web 介面
如何安裝 ELK Stack?
您可以在 Docker、雲和 Chef、Puppet 和 Ansible 等配置管理系統上本地安裝 ELK。您可以根據裝置上使用的 Linux 發行版下載該工具。
安裝 ELK Stack 的先決條件
讓我們使用 Ubuntu 來演示安裝 ELK Stack 的方法 -
步驟 1:更新儲存庫
首先,請根據可用的最新更新更新系統 -
sudo apt update
步驟 2:安裝 Java(Elasticsearch 和 Logstash 需要)
Logstash 安裝需要系統中的 Java 8 或 Java 11。因此,請首先透過以下命令安裝它 -
sudo apt install default-jre
步驟 3:安裝 Nginx
必須公開訪問 Kibana,並且 nginx 配置為反向代理。因此,請執行以下命令來安裝 nginx -
sudo apt install nginx -y
要檢查 nginx 是否已安裝,請轉到瀏覽器並鍵入您的本地 IP 伺服器。如果 nginx 成功安裝,您將看到與以下影像相同的輸出。

完成後,就可以從 apt 設定所有元件了。此外,您還可以直接從官方網站下載這些元件。在這裡,我們將瞭解如何在 Ubuntu 22.04 中分別安裝 ELK Stack 的所有元件。
如何安裝 Elasticsearch
步驟 1:新增 Elasticsearch 金鑰
要安裝 Elasticsearch,首先使用以下命令新增 Elasticsearch 的簽名金鑰 -
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
注意 - 如果您已經安裝了上述軟體包,則可以跳過上述步驟。
現在透過以下命令安裝 transport-https 軟體包 -
sudo apt-get update && sudo apt-get install apt-transport-https
接下來,在終端中執行以下命令以將儲存庫定義新增到您的系統 -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
使用以下命令安裝具有 Apache 2.0 許可證的功能的 Elasticsearch 版本 -
echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
步驟 2:安裝 Elasticsearch
現在,更新系統的儲存庫,然後安裝 Elasticsearch -
sudo apt-get update && sudo apt-get install elasticsearch
步驟 3:配置 Elasticsearch
現在讓我們在安裝 Elasticsearch 後配置系統。其配置檔案允許您配置網路設定(如埠和主機),其中包含日誌檔案和記憶體等詳細資訊。使用以下命令新增您的私有 IP 地址以開啟 Elasticsearch 配置檔案 -
sudo nano /etc/elasticsearch/elasticsearch.yml
注意 - 您可以選擇任何編輯器開啟上述配置檔案。
取消註釋配置檔案中上面兩行標記的行,並在 192.168.0.1 處新增您的本地主機。
network host: <local host name>
由於您在此處配置單節點叢集,請轉到“Discovery 部分”並新增以下行。
discovery .type: single-node
JVM 堆大小預設設定為 1GB。您不應將堆大小設定為不超過總記憶體的一半。使用以下命令開啟以下檔案以設定堆大小 -
sudo nano /etc/elasticsearch/jvm.options
因此,請找到以 -Xms(最小值)和 -Xmx(最大值)開頭的行,並將它們的大小設定為 512MB。
-xms512m -xms512m
步驟 4:執行 Elasticsearch
在完成 Elasticsearch 配置檔案中的所有配置後,使用以下 systemctl 命令啟動並啟用 Elasticsearch 服務 -
sudo systemctl start elasticsearch sudo systemctl enable elasticsearch
之後,檢查 Elasticsearch 的狀態 -
sudo systemctl status elasticsearch
步驟 5:驗證已安裝的 Elasticsearch
如果要驗證 Elasticsearch,請執行以下命令 -

此外,您還可以透過在終端中使用以下 curl 命令來確認這一點。
Curl -X GET "localhost:9200"
如果您的輸出與上圖相同,則表示 Elasticsearch 正常工作。
如何安裝 Kibana?
步驟 1:安裝 Kibana
您還可以透過以下命令透過儲存庫安裝 Kibana -
sudo apt install kibana
步驟 2:配置 Kibana
執行以下命令以開啟 Kibana 的配置檔案。
sudo nano /etc/kibana/kibana.yml
刪除以下標記行中的“#”符號以取消註釋以下行 -
server.port: 5601 server.host: "localhost" elasticsearch.hosts: ["https://:9200"]
Nginx 中的伺服器塊將路由 localhost 上的所有流量。為此,您必須在以下目錄中建立一個新站點。
sudo nano /etc/nginx/sites-available/file.com
例如,我們將檔案命名為“file.com”並在其中複製以下行 -
server {
listen 80;
server_name file.com;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass https://:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
prxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
上述伺服器將僅在埠 80 上將所有傳入流量重定向到 localhost:5601,Kibana 在該埠上偵聽。除此之外,它還對 Nginx 使用者列表的所有請求進行身份驗證。
使用以下命令建立符號連結以啟用新建立的站點。
sudo ln -s /etc/nginx/sites-available/file.com /etc/nginx/sites-enabled/file.com
接下來,使用以下命令驗證配置檔案是否存在任何配置或語法錯誤 -
sudo nginx -t
預設站點位於 Nginx site-enabled 目錄中,系統可以預設載入它。轉到 Nginx 配置目錄幷包含新建立的檔案“file.com”。
nano /etc/nginx/nginx.conf
最後,儲存配置檔案後重新啟動 Nginx 服務。
步驟 3:啟動並啟用 Kibana
使用簡單的 systemctl 命令啟動並啟用 Kibana。
sudo systemctl start kibana sudo systemctl enable kibana
要檢查 Kibana 是否正在執行,您可以使用以下命令檢查其狀態 -
sudo systemctl status kibana
現在,您可以在瀏覽器中使用 https://:5601. 開啟 Kibana。
注意 - 如果啟用了 UFW 防火牆,則必須允許埠 5601 上的流量才能訪問 Kibana 儀表板。
sudo ufw allow 5601/tcp
安裝 Logstash
步驟 1:安裝 Logstash
它是 ELK Stack 中高度可定製的元件。您可以使用以下命令直接從儲存庫安裝 Logstash -
sudo apt install logstash
步驟 2:配置 Logstash
此元件的配置檔案位於 /etc/logstash/conf.d/ 中。您可以根據您的要求配置其輸出、過濾器和輸入管道。所有自定義 Logstash 配置檔案都儲存在 /etc/logstash/conf.d/ 中。
步驟 3:啟動並啟用 Logstash
要啟動並啟用 logstash,請執行以下命令。
sudo systemctl start logstsash
您可以使用以下命令檢查 Logstash 的狀態,無論它是否處於活動狀態 -
sudo systemctl status logstsash
安裝 Beats
與大多數其他元件一樣,許多 Beat 的傳送器都可以類似地安裝。因此,讓我們看一下安裝 Metricbeat 的方法。
Metricbeat 傳送系統級指標,例如記憶體、CPU 使用率等。在這裡,我們將資料直接傳送到 Elasticsearch。
步驟 1:安裝 Metricbeat
首先,我們將使用簡單的 apt 命令在伺服器上安裝 Metricbeat -
sudo apt install metricbeat
步驟 2:配置 Metricbeat
在任何您想要的編輯器中開啟 Metricbeat.yml 檔案,然後搜尋 Kibana。之後,透過刪除“#”符號取消註釋 localhost。
sudo /etc/metricbeat/metricbeat.yml host: "localhost:5601"
類似地,取消註釋 Elasticsearch,它將是本地主機。此外,我們將進行配置,保持其餘設定為預設值。
host: ["localhost:9200"]
透過執行以下命令驗證上述配置。
sudo metribeat test output
由於上述輸出中沒有錯誤,因此 Kibana 和 Elasticsearch 成功地與 Metricbeat 通訊。如果您的系統模組未啟用,您可以使用以下命令啟用它 -
sudo metricbeat modules enable <module_name>
要檢視每個模組的配置檔案,請轉到 metricbeat 安裝目錄。其所有配置檔案都存在於此 modules.d 目錄中。例如,要開啟 system.yml 模組,請使用以下命令 -
sudo nano /etc/metricbeat/modules.d/system.yml
您可以在上述配置檔案中進行更改,但我們在此處將所有配置保留為預設值。Kibana 使用多個儀表盤來視覺化資料。以下是每個儀表盤的預設儀表盤。使用以下命令設定預設的 Metricbeat 儀表盤:
sudo metricbeat setup
步驟 3:啟動並啟用 Metricbeat
使用以下命令啟動 Metricbeat:
sudo systemctl start metricbeat
檢查 Metricbeat 的當前狀態。
sudo systemctl status metricbeat
現在,Metricbeat 開始監控伺服器並建立 Elasticsearch 索引,您也可以在 Kibana 中定義該索引。
ELK Stack 的優缺點
Elastic Stack 具有某些優點和缺點。
優點 |
缺點 |
|---|---|
免費入門 |
複雜的管理要求 |
多種程式語言的官方客戶端 |
擴充套件挑戰 |
即時資料分析和視覺化 |
資料保留權衡 |
集中式日誌記錄功能 |
穩定性和正常執行時間問題 |
多種託管選項 |
高擁有成本 |
ELK Stack 的用途
即時日誌監控提供了來自各種資源的 Elastic Stack 的許多創造性用例,如下所示:
新應用程式中的錯誤檢測 - 建立任何新應用程式時,ELK Stack 會通知您其錯誤。透過此功能,您可以儘快修復錯誤和漏洞,並改進應用程式的設計。
流量監控 - 它有助於監控網站流量資料,並提供有關伺服器是否過載的資訊。也就是說,ELK Stack 生成資料,使用者可以藉助這些資料做出合理的業務決策並解決問題。
網路抓取 - ELK Stack 可以搜尋、索引和收集來自各種來源的非結構化資料,從而簡化視覺化和收集網路抓取資訊的過程。
電子商務解決方案 - 更快的響應、聚合、索引和全文搜尋提供了更好的使用者體驗。視覺化監控 Elasticsearch 的搜尋行為和趨勢有助於增強趨勢分析。
安全監控 - 伺服器監控系統是 ELK Stack 的重要安全應用程式之一。它有助於使用即時預警系統檢測伺服器攻擊,在注意到異常請求時立即檢查並最大程度地減少其造成的損害。
總結
在本篇博文中,我們解釋了有關 ELK Stack 的簡要詳細資訊。正如我們之前提到的,ELK Stack 是一種開源工具,這意味著您可以免費獲得它。此外,我們描述了設定 ELK Stack 的詳細方法,包括所有相關工具。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP