ELK 堆棧全稱為 Elastic Stack,是三個開源軟件 Elasticsearch、Kibana 和 Logstash 的集合。 ELK 堆棧用於搜索、分析和可視化大量數據。
Beats 是提升 Elasticsearch 能力的重要工具。 所以我們有四個主要組件可以免費下載和使用:
- Elasticsearch:分佈式搜索引擎存儲收集到的數據
- Logstash:數據處理組件將數據發送到 Elasticsearch
- Kibana:GUI web 用於搜索和可視化日誌
- Beats:輕量級插件用於聚合來自不同數據流的數據
本教程將介紹在 Ubuntu 20.04 上安裝 ELK 堆棧的步驟。
安裝 Java
為了安裝 ELK 堆棧,您必須通過以下命令在您的 Ubuntu 機器上安裝 Java:
$ sudo apt install openjdk-8-jdk
驗證 Java 是否已成功安裝:
$ java -version
輸出:
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
安裝 Nginx
Kibana 儀表板需要在您的機器上安裝 Nginx 網絡服務器。 它使用 Nginx 作為反向代理。
通過以下命令安裝 Nginx:
$ sudo apt install nginx
安裝和配置 Elasticsearch
為了安裝 Elasticsearch,您必須將其存儲庫添加到您的 Ubuntu 20.04 源列表中。
導入 GPG 密鑰:
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
然後,安裝 apt-transport-https:
$ sudo apt install apt-transport-https
添加 Elasticsearch 存儲庫:
$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee –a /etc/apt/sources.list.d/elastic-7.x.list
現在,您可以安裝 Elasticsearch:
$ sudo apt update
$ sudo apt install elasticsearch
Elasticsearch 的配置文件位於 /etc/elasticsearch/elasticsearch.yml
使用你喜歡的編輯器,修改如下:
取消註釋行:
network.host: localhost
http.port: 9200
在中添加以下行 Discovery
部分:
discovery.type: single-node
通過運行以下命令啟動 Elasticsearch 服務:
$ sudo systemctl start elasticsearch.service
啟用 Elasticsearch 服務以在啟動時啟動,鍵入:
$ sudo systemctl enable elasticsearch.service
驗證 Elasticsearch 是否正在運行並監聽端口 9200
:
$ curl -X GET "localhost:9200"

安裝和配置 Kibana
要安裝 Kibana,請運行以下命令:
$ sudo apt install kibana
安裝完成後,打開 Kibana 配置文件:
$ sudo vim /etc/kibana/kibana.yml
取消註釋這些行:
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["https://localhost:9200"]

啟動 Kibana 服務並使其在啟動時啟動:
$ sudo systemctl start kibana
$ sudo systemctl enable kibana
要訪問 Kibana 儀表板,您必須 允許端口 5601 上的流量:
$ sudo ufw allow 5601/tcp
現在,我們可以訪問 Kibana Dashboard https://localhost:5601

安裝和配置 Logstash
要安裝 Logstash,請運行以下命令:
$ sudo apt install logstash
啟動 Logstash 服務並使其在啟動時啟動:
$ sudo systemctl start logstash
$ sudo systemctl enable logstash
驗證 Logstash 服務是否正在運行:
$ sudo systemctl status logstash

所有 Logstash 配置文件都位於 /etc/logstash/conf.d/
. 根據我們自己的用例,配置 INPUT
, FILTERS
, OUTPUT
管道。
安裝和配置 Filebeat
要安裝 filebeat,請運行以下命令:
$ sudo apt install filebeat
安裝完成後,通過編輯其配置文件來配置 Filebeat:
$ sudo vim /etc/filebeat/filebeat.yml
在 Elasticsearch 輸出部分,讓我們註釋掉以下幾行:
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
然後,在 Logstash 輸出部分取消註釋這些行:
output.logstash:
hosts: ["localhost:5044"]

接下來,需要啟用 Filebeat 系統模塊:
$ sudo filebeat modules enable system
然後,加載索引模板:
$ sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
啟動 Filebeat 服務並使其在啟動時啟動:
$ sudo systemctl start filebeat
$ sudo systemctl enable filebeat
結論
ELK 堆棧是一個非常強大的數據集中工具。 本教程完成了在 Ubuntu 20.04 上安裝和配置 ELK 堆棧的所有步驟。
感謝您的閱讀,請在下面的評論部分留下您的建議。