一、ELK的基本介紹
1、ELK日志協議堆疊
- ELK是三個軟體產品的首字母縮寫,Elasticsearch,Logstash 和 Kibana,這三款軟體都是開源軟體,通常是配合使用,而且又先后歸于 Elastic.co 公司名下,故被簡稱為 ELK 協議堆疊,
- Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多資料源,自動搜索負載等,
- Logstash是一個完全開源的工具,他可以對你的日志進行收集、過濾,并將其存盤供以后使用(如,搜索),
- Kibana 也是一個開源和免費的工具,它Kibana可以為 Logstash 和 ElasticSearch
提供的日志分析友好的web UI界面,可以幫助匯總、分析、搜索重要資料日志,
| 名稱 | 語言 | 描述 |
|---|---|---|
| ElasticSearch | Java | 實時的分布式搜索和分析引擎,他可以用于全文檢索,結構化搜索以及分析,基于lucene、類似于Solr |
| Logstash | JRuby | 具有實時渠道能力的資料收集引擎,包含輸入、過濾、輸出模塊,一般在過濾模塊中做日志格式化的決議作業 |
| Kibana | JavaScript | 為ElasticSerach提供分析平臺和可視化的Web平臺,他可以ElasticSerach的索引中查找,呼喚資料,并生成各種維度的表圖 |
2、ELK日志協議堆疊整體架構

3、ELK的參考資料
ELK官網:https://www.elastic.co/
ELK官網檔案:https://www.elastic.co/guide/index.html
ELK中文手冊:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
ELK中文社區:https://elasticsearch.cn/
二、Elasticsearch的安裝、學習
1、關于Elasticsearch的簡介
Elaticsearch,簡稱為es, es是一個開源的高擴展的分布式全文檢索引擎,它可以近乎實時的存盤、檢索資料;本身擴展性很好,可以擴展到上百臺服務器,處理PB級別的資料,es也使用Java開發并使用Lucene作為其核心來實作所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復雜性,從而讓全文搜索變得簡單,
2、Elasticsearch在linux下的安裝部署
第一步:創建普通用戶
注意:ES不能使用root用戶來啟動,必須使用普通用戶來安裝啟動,這里我使用以前創建的book用戶來安裝我們的es服務
第二步:下載并上傳壓縮包,然后解壓
將es的安裝包下載并上傳到companynode01服務器的/book/soft,companynode01服務器使用es用戶執行以下命令:
cd /book/soft/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz
tar -zxvf elasticsearch-6.7.0.tar.gz -C /book/install
第三步:修改組態檔
- 修改elasticsearch.yml
companynode01服務器使用book用戶來修改組態檔
cd /book/install/elasticsearch-6.7.0/config/
mkdir -p /book/install/elasticsearch-6.7.0/logs/
mkdir -p /book/install/elasticsearch-6.7.0/datas
vim elasticsearch.yml
修改為:
cluster.name: myes
node.name: companynode01
path.data: /book/install/elasticsearch-6.7.0/datas
path.logs: /book/install/elasticsearch-6.7.0/logs
network.host: 192.168.1.11
http.port: 9200
discovery.zen.ping.unicast.hosts: ["companynode01", "companynode02", "companynode03"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
- 修改jvm.option
修改jvm.option組態檔
cd /book/install/elasticsearch-6.7.0/config
vim jvm.options
根據服務器的記憶體大小修改:
-Xms3g
-Xmx3g
第四步:將安裝包分發到其他服務器上面
companynode01使用book用戶將安裝包分發到其他服務器上面去
cd /book/install/
scp -r elasticsearch-6.7.0/ companynode02:$PWD
scp -r elasticsearch-6.7.0/ companynode03:$PWD
第五步:companynode02與companynode03修改es組態檔
companynode02與companynode03也需要修改es組態檔(你配置的所有服務器都修改)
companynode02使用book用戶執行以下命令修改es組態檔
cd /book/install/elasticsearch-6.7.0/config/
vim elasticsearch.yml
示例:companynode02修改為(修改為你當前服務器的配置,主要是節點名稱和host):
cluster.name: myes
node.name: companynode02
path.data: /book/install/elasticsearch-6.7.0/datas
path.logs: /book/install/elasticsearch-6.7.0/logs
network.host: 192.168.1.12
http.port: 9200
discovery.zen.ping.unicast.hosts: ["companynode01", "companynode02", "companynode03"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
所有的服務器都按照上述思路修改,
第六步:修改系統配置,解決啟動時候的問題
由于現在使用普通用戶來安裝es服務,且es服務對服務器的資源要求比較多,包括記憶體大小,執行緒數等,所以我們需要給普通用戶解開資源的束縛
問題一:普通用戶打開檔案的最大數限制
問題錯誤資訊描述:
max file descriptors [4096] for elasticsearch process likely too low,
increase to at least [65536]
ES因為需要大量的創建索引檔案,需要大量的打開系統的檔案,所以我們需要解除linux系統當中打開檔案最大數目的限制,不然ES啟動就會拋錯
所有機器使用book用戶執行以下命令解除打開檔案資料的限制
sudo vim /etc/security/limits.conf
修改為
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
問題二:普通用戶啟動執行緒數限制
三臺機器執行以下命令打開檔案最大數
sudo vim /etc/sysctl.conf
修改為:
vm.max_map_count=655360
fs.file-max=655360
執行以下命令生效
sudo sysctl -p
注意:以上兩個問題修改完成之后,一定要重新連接linux生效,關閉secureCRT或者XShell工具,然后重新打開工具連接linux即可
重新連接之后執行以下命令,出現這個結果即可準備啟動ES了
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fR6SEIL2-1642729161832)(en-resource://database/4397:1)]
第七步:啟動ES服務
所有機器使用book用戶執行以下命令啟動es服務
nohup /book/install/elasticsearch-6.7.0/bin/elasticsearch 2>&1 &
啟動成功之后jsp即可看到es的服務行程,并且訪問頁面
http://companynode01:9200/?pretty
能夠看到es啟動之后的一些資訊
注意:如果哪一臺機器服務啟動失敗,那么就到哪一臺機器配置的日志路徑尋找錯誤,例如這里我的路徑:
/book/install/elasticsearch-6.7.0/logs
在UI界面中出現如下圖所示的界面,每臺服務器都有即為成功啟動

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419133.html
標籤:其他
