1.ELK概述
1.1 ELK簡介
ELK平臺是一套完整的日志集中處理解決方案,將ElasticSearch、Logstash和kibana三個開源工具配合使用, 完成更強大的,用戶對日志的查詢、排序、統(tǒng)計需求。
ElasticSearch
- ElasticSearch:是基于Lucene(一個全文檢索引擎的架構(gòu))開發(fā)的分布式存儲檢索引擎,用來存儲各類日志。
Elasticsearch是用Java開發(fā)的,可通過RESTful Web接口,讓用戶可以通過瀏覽器與Elasticsearch通信。
Elasticsearch是一個實時的、分布式的、可擴展的搜索引擎,允許進行全文、結(jié)構(gòu)化搜索,它通常用于索引和搜索大容量的日志數(shù)據(jù),也可用于搜索許多不同類型的文檔。
kibana
- kibana:kibana通常與Elasticsearch一起部署,kibana是Elasticsearch的一個功能強大的數(shù)據(jù)可視化Dashboard,kibana提供圖形化的web界面,來瀏覽Elasticsearch日志數(shù)據(jù),可以用來匯總、分析和搜索重要數(shù)據(jù)。
Logstash
- Logstash:作為數(shù)據(jù)收集引擎。它支持動態(tài)的從各種數(shù)據(jù)源搜集數(shù)據(jù),并對數(shù)據(jù)進行過濾、分析、豐富、統(tǒng)一格式等操作,然后存儲到用戶指定的位置,一般會發(fā)送給Elasticsearch。
Logstash由Ruby語言編寫,運行在Java虛擬機(JVM)上,是一款強大的數(shù)據(jù)處理工具, 可以實現(xiàn)數(shù)據(jù)傳輸、格式處理、格式化輸出。Logstash具有強大的插件功能,常用于日志處理。
1.2 可以添加的其它組件
Filebeat
- Filebeat:輕量級開源日志文件數(shù)據(jù)搜集器。通常在需要采集數(shù)據(jù)的客戶端安裝Filebeat,并指定目錄與日志格式,F(xiàn)ilebeat就能快速收集數(shù)據(jù),并發(fā)送給logstash進行解析,或是直接發(fā)給Elasticsearch存儲,性能上相比運行于JVM上的logstash優(yōu)勢明顯,是對它的替代。常應(yīng)用于EFLK架構(gòu)當中。
1.3 filebeat結(jié)合logstash帶來好處
(1)通過Logstash有基于磁盤的自適應(yīng)緩沖系統(tǒng),該系統(tǒng)將吸收傳入的吞吐量,從而減輕 Elasticsearch持續(xù)寫入數(shù)據(jù)的壓力.
(2)從其他數(shù)據(jù)源(例如數(shù)據(jù)庫,S3對象存儲或消息傳遞隊列)中提取.
(3)將數(shù)據(jù)發(fā)送到多個目的地,例如S3,HDFS(Hadoop分布式文件系統(tǒng))或?qū)懭胛募?
(4)使用條件數(shù)據(jù)流邏輯,組成更復雜的處理管道.
-
緩存/消息隊列(redis、kafka、RabbitMQ等):可以對高并發(fā)日志數(shù)據(jù)進行流量削峰和緩沖,這樣的緩沖可以一定程度的保護數(shù)據(jù)不丟失,還可以對整個架構(gòu)進行應(yīng)用解耦。
-
Fluentd:是一個流行的開源數(shù)據(jù)收集器。由于logstash太重量級的缺點,Logstash性能低、資源消耗比較多等問題,隨后就有Fluentd的出現(xiàn)。相比較logstash,F(xiàn)luentd更易用、資源消耗更少、性能更高,在數(shù)據(jù)處理上更高效可靠,受到企業(yè)歡迎,成為logstash的一種替代方案,常應(yīng)用于EFK架構(gòu)當中。在Kubernetes集群中也常使用EFK作為日志數(shù)據(jù)收集的方案。
在Kubernetes集群中一般是通過DaemonSet來運行Fluentd,以便它在每個Kubernetes工作節(jié)點上都可以運行一個Pod。 它通過獲取容器日志文件、過濾和轉(zhuǎn)換日志數(shù)據(jù),然后將數(shù)據(jù)傳遞到 Elasticsearch集群,在該集群中對其進行索引和存儲。
1.4 為什么要使用ELK?
日志主要包括系統(tǒng)日志、應(yīng)用程序日志和安全日志。系統(tǒng)運維和開發(fā)人員可以通過日志,了解服務(wù)器軟硬件信息、檢查配置過程中的錯誤及錯誤發(fā)生的原因。經(jīng)常分析日志可以了解服務(wù)器的負荷,性能安全性,從而及時采取措施糾正錯誤。
往往單臺機器的日志,我們使用grep、awk等工具就能基本實現(xiàn)簡單分析,但是當日志被分散的儲存在不同的設(shè)備中。如果你管理數(shù)十上百臺服務(wù)器,你還在使用依次登錄每臺機器的傳統(tǒng)方法查閱日志。這樣是不是感覺很繁瑣和效率低下。當務(wù)之急我們使用集中化的日志管理,例如:開源的syslog,將所有服務(wù)器上的日志收集匯總。集中化管理日志后,日志的統(tǒng)計和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現(xiàn)檢索和統(tǒng)計,但是對于要求更高的查詢、排序和統(tǒng)計等要求,龐大的機器數(shù)量依然使用這樣的方法難免有點力不從心。
一般大型系統(tǒng)是一個分布式部署的架構(gòu),不同的服務(wù)模塊部署在不同的服務(wù)器上。問題出現(xiàn)時,大部分情況需要根據(jù)問題暴露的關(guān)鍵信息,定位到具體的服務(wù)器和服務(wù)模塊,構(gòu)建一套集中式日志系統(tǒng),可以提高定位問題的效率。
1.5 完整日志系統(tǒng)基本特征
收集:能夠采集多種來源的日志數(shù)據(jù)
傳輸:能夠穩(wěn)定的把日志數(shù)據(jù)解析過濾,并傳輸?shù)酱鎯ο到y(tǒng)
存儲:存儲日志數(shù)據(jù)
分析:支持UI分析
警告:能夠提供錯誤報告,監(jiān)控機制
1.6 ELK的工作原理
(1)在所有需要收集日志的服務(wù)器上部署Logstash;或者先將日志進行集中化管理在日志服務(wù)器上,在日志服務(wù)器上部署Logstash。
(2)Logstash收集日志,將日志格式化并輸出到Elasticsearch群集中。
(3)Elasticsearch對格式化后的數(shù)據(jù),進行索引和存儲。
(4)Kibana從ES群集中查詢數(shù)據(jù)生成圖表,并進行前端數(shù)據(jù)的展示。
總結(jié):
logstash作為日志搜集器,從數(shù)據(jù)源采集數(shù)據(jù),并對數(shù)據(jù)進行過濾,格式化處理,然后交由Elasticsearch存儲,kibana對日志進行可視化處理,并在web前端頁面展示。
2. Elasticsearch節(jié)點優(yōu)化
master - 主節(jié)點:elasticsearch.yml :
node.master: true
node.data: false
主要功能:維護元數(shù)據(jù),管理集群節(jié)點狀態(tài);不負責數(shù)據(jù)寫入和查詢。
配置要點:內(nèi)存可以相對小一些,但是機器一定要穩(wěn)定,最好是獨占的機器。
data - 數(shù)據(jù)節(jié)點:elasticsearch.yml :
node.master: false
node.data: true
主要功能:負責數(shù)據(jù)的寫入與查詢,壓力大。
配置要點:大內(nèi)存,最好是獨占的機器。
client - 客戶端節(jié)點:elasticsearch.yml :
node.master: false
node.data: false
主要功能:負責任務(wù)分發(fā)和結(jié)果匯聚,分擔數(shù)據(jù)節(jié)點壓力。
配置要點:大內(nèi)存,最好是獨占的機器
mixed- 混合節(jié)點(不建議):elasticsearch.yml :
node.master: true
node.data: true
主要功能:綜合上述三個節(jié)點的功能。
配置要點:大內(nèi)存,最好是獨占的機器。
特別說明:不建議這種配置,節(jié)點容易掛掉。
3.部署ELK集群
3.1 安裝Elasticsearch
###關(guān)閉和禁止防火墻開機自啟功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
(1)準備環(huán)境,設(shè)置Java環(huán)境
java -version
#yum install -y java
文章來源:http://www.zghlxwxcb.cn/news/detail-561813.html
(2)部署Elasticsearch軟件文章來源地址http://www.zghlxwxcb.cn/news/detail-561813.html
###安裝elasticsearch—rpm包
cd /opt
rz
到了這里,關(guān)于【ELK企業(yè)級日志分析系統(tǒng)】安裝與部署ELK詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!