1讥脐、前言
服務(wù)的集群部署催生了ELK的出現(xiàn)。當(dāng)我們的服務(wù)集群的時候啼器,日志文件就會散落在各個節(jié)點(diǎn)旬渠。這時候,如果我們需要查看日志端壳,就不在像單點(diǎn)服務(wù)那么簡單了告丢,帶來的問題則是查看日志信息需要到各個服務(wù)節(jié)點(diǎn)上去查看,這給我們造成了很大的困擾和不便损谦,所以芋齿,我們應(yīng)該把這些日志文件歸集到一個地方去統(tǒng)一管理。
2成翩、概要
ELK是elasticsearch觅捆、Logstash和Kibana三個系統(tǒng)的首字母組合。當(dāng)然ELK不只是查看日志功能這么簡單麻敌,還有更多的應(yīng)用栅炒。
2.1)Elasticsearch:
是個開源分布式搜索引擎,它的特點(diǎn)有:分布式术羔,零配置赢赊,自動發(fā)現(xiàn),索引自動分片级历,索引副本機(jī)制释移,restful風(fēng)格接口,多數(shù)據(jù)源寥殖,自動搜索負(fù)載等玩讳。
2.2)Logstash:
是一個動態(tài)數(shù)據(jù)收集管道涩蜘,具有可擴(kuò)展的插件生態(tài)系統(tǒng)和強(qiáng)大的Elasticsearch協(xié)同作用
2.3)Kibana:
Kibana 也是一個開源和免費(fèi)的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面熏纯,可以幫助您匯總同诫、分析和搜索重要數(shù)據(jù)日志。
3樟澜、ELK的工作流程
在需要收集日志的節(jié)點(diǎn)上部署logstash误窖,作為logstash agent(logstash shipper)用于監(jiān)控并過濾收集日志,將過濾后的內(nèi)容發(fā)送到MQ緩沖秩贰,然后logstash indexer將日志收集在一起交給全文搜索服務(wù)ElasticSearch霹俺,最后通過kibana進(jìn)行UI展示查詢。這樣一個通用的分布式的日志收集流程就完成了毒费。當(dāng)然丙唧,在我們的服務(wù)日志量不是很大的情況下,我們也可以去掉MQ緩沖蝗罗,直接將logstash的output指向要存儲的ElasticSearch上即可。
4蝌戒、演變
4.1)
ELK部署最簡單的方式就是L-E-K方式串塑,不添加任何其他輔助系統(tǒng),部署簡單快速北苟,容易上手桩匪。
4.2)
在L-E之間添加一層redis輔助,這樣能夠減少日志在服務(wù)端的積壓友鼻,把壓力轉(zhuǎn)移到ELK系統(tǒng)服務(wù)器上傻昙。這種方式添加redis之后,由于redis是內(nèi)存系統(tǒng)所以響應(yīng)速度很快彩扔,而且可以在redis后添加多個消費(fèi)系統(tǒng)(Logstash)妆档,來擴(kuò)展消費(fèi)能力,增強(qiáng)處理速度虫碉。
4.3)
當(dāng)數(shù)據(jù)量隨著業(yè)務(wù)增長贾惦,reids已經(jīng)不能滿足業(yè)務(wù)需求了,取而代之的是更可靠的消息中間件(kafka敦捧、racket等等)
圖略