做爲一篇開始學習《ELK》的博客,將會詳細去介紹構成 ELK 的三個軟件模塊:ElasticSearch、LogStash、Kibana 的相關知識背景以及在 Mac OS Big Sur Version 11.2.3 環境中的安裝的步驟;前端
適合剛開始接觸 ELK 的入門的初學者羣體;java
估計閱讀時間爲:20分鐘程序員
估計實操時間爲:40分鐘shell
ElasticSearch
做爲一個很是有名的開源日誌處理、分析軟件,由 Elastic Inc 公司開發,已經擁有了超過3.5億次的下載次數 和 近 10w+ 的社區成員,Elastic Inc 也提供了在雲上的相關服務,而且在國內已經與 騰訊雲 展開了合做。vim
有不少很是著名的網站應用了 ElasticSearch 的相關特性,對於程序員比較熟悉的有: Github 、Wiki 等網站都使用了ElasticSearch 的搜索引擎;瀏覽器
ElasticSearch
起源爲:Lucene
- Doug Cutting, 缺點: 不支持水平擴展的能力;ruby
ElasticSearch
發源爲:Compass
- Shay Banon, 是ElasticSearch
發源框架;bash
ElasticSearch
相比於 Lucene 以及 Compass 的特性:數據結構
ElasticSearch 以其 近實時 (Near Real Time) 和 分佈式存儲、搜索、分析引擎 以及支持集羣部署等特性,位列 搜索引擎排名的第一名;架構
與 ElasticSearch 相比,比較著名的有:
ElasticSearch 提供的功能:
1.首先你須要打開 ElasticSearch - cn 的官網 去下載已經內置了Java開發環境的包,下載單擊這裏: 下載連接
選擇:MACOS 版本
注意:
若是你的本機的Java環境不可用或者版本老舊,請下載最新的 Jre 環境,具體的環境建議 Java jdk 11 以上的版本;
本機中的JDK版本爲:
java version "13" 2019-09-17 Java(TM) SE Runtime Environment (build 13+33) Java HotSpot(TM) 64-Bit Server VM (build 13+33, mixed mode, sharing)
在瀏覽器中單擊 Elastic 的官網下載連接並從瀏覽器中下載文件是很是緩慢的,所以須要使用別的辦法: wget
命令,下載速度能快一點: (我選擇的是 7.10.1 版本, 最新的版本已經能夠達到了 7.12.0了,無所謂這個看我的)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-darwin-x86_64.tar.gz
2.將下載好的ElasticSearch
包解壓在目錄下 ~
新建立一個 app
的文件夾,解壓完成的後的路徑以下:
(base) [20:05] ~/apps $ls elasticsearch-7.10.1
3.接下來咱們須要將 ~/apps/elasticsearch-7.10.1/bin
目錄添加到環境變量目錄中:
$sudo vim ~/.bash_profile
將下邊的內容加入到 ~/.bash_profile
中:
# 這個要根據你本身的 Java 版本肯定 # 肯定 MacOSX 本機的 方法是: /usr/libexec/java_home -V # 而後修改下邊的內容 export JAVA_8_HOME="$(/usr/libexec/java_home -v 1.8)" export JAVA_13_HOME="$(/usr/libexec/java_home -v 13)" alias jdk8="export JAVA_HOME=$JAVA_8_HOME" alias jdk13="export JAVA_HOME=$JAVA_13_HOME" export JAVA_HOME=$JAVA_13_HOME #Elasticsearch export ES_HOME=~/apps/elasticsearch-7.10.1 export PATH=$ES_HOME/bin:$JAVA_HOME/bin:$PATH
4.如今咱們就已經安裝好了 elasticsearch
,在終端中輸入:
$ source ~/.bash_profile $elasticsearch #等待進程啓動一段時間以後,
驗證:
在瀏覽器中輸入: http://localhost:9200/
,出現下邊的信息即已經安裝成功
{ "name" : "DoHeras-MacBook-Pro.local", "cluster_name" : "elasticsearch", "cluster_uuid" : "blwcrCEHSyyJ4UWkV9eMiw", "version" : { "number" : "7.10.1", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa", "build_date" : "2020-12-05T01:00:33.671820Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Logstash 做爲一款與 ElasticSearch 相配套的開源數據處理管道工具或者數據收集引擎,能夠將不一樣的數據源相互統一塊兒來,並將數據標準化的送入到數據處理引擎中進行處理,固然選擇的數據處理引擎應該是: ElasticSearch。
Logstash 支持多種數據流的輸入格式,你能夠從下邊的幾個場景中配置 Logstash 的配置文件作到輸入:
工做流程:
須要處理的數據當經過 Logstash 的過濾器時,經過預先設定好的識別字段來解析數據流的各個事件,並構建對應的數據結構,最後轉化成爲通用的格式。
Grok
能夠智能分析數據流並派生出對應的結構;PII
進行數據的脫敏,徹底排除敏感字段;1.相似於 Elasticsearch 的安裝方法,首先須要下載從官網上Elasticsearch 相同版本的Logstash 安裝包,好比以前我選擇的是 7.10.1 版本,那麼我也選擇 7.10.1 版本的 Logstash:
[Logstash 7.10.1 下載連接][https://www.elastic.co/downloads/past-releases/logstash-7-10-1] Logstash 歷史版本
# 將兩個軟件放在一個目錄下,方便學習 (base) [20:05] ~/apps $wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.1-darwin-x86_64.tar.gz
2.解壓壓縮包到 ~/app
目錄下,並給 ~/.bash_profile
加入 Logstash 的啓動文件:
#LogStash export LGS_HOME=~/apps/logstash-7.10.1 export PATH=$LGS_HOME/bin:$JAVA_HOME/bin:$PATH
3.在命令行中直接輸入 logstash
啓動:
(base) $ source ~/.bash_profile (base) $ logstash # 等待啓動 # 若是你想讓 logstash 正確的啓動,那麼就須要先運行 elasticsearch 再啓動 logstash
Kibana 做爲 ELK 中的開源可視化前端應用程序,能夠爲 Elasticsearch 中已經加上索引的數據提供搜索功能以及數據可視化的相關功能。
1.和前邊安裝的步驟相同,Kibana 的下載也須要與 elasticsearch / logstash 的版本保持相同:
(base) [20:05] ~/apps $ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.1-darwin-x86_64.tar.gz
2.在 ~/.bash_profile
文件中加入如下的內容:
export KIB_HOME=~/apps/kibana-7.10.1-darwin-x86_64 export PATH=$KIB_HOME/bin:$JAVA_HOME/bin:$PATH
3.啓動 Kibana 服務
$ source ~/.bash_profile $ kibana # 請先啓動 elasticsearch 再 啓動 kibana
最後的運行截圖: