ELK stack權(quán)威指南知識結(jié)構(gòu)整理閱讀筆記

ELK stack閱讀整理

1.ELK是什么

Logstash(收集)、Elasticsearch(存儲+搜索)、Kibana(展示),我們將這三個組合起來的技術(shù)稱之為ELK Stack,所以說ELK Stack指的是Elasticsearch(java)、Logstash(jruby)、Kibana技術(shù)棧的結(jié)合,一個通用的架構(gòu)如下圖所示:

ELK 前面主要靠Logstash來進行收集日志,Logstash將日志上傳到Broker上,后面還有一個Logstash用來讀取Broker中的日志,再將日志存儲到Elasticsearch里面,最后Kibana從Elasticsearch中查詢數(shù)據(jù)生成圖表進行展示。(在實際運用中,Logstash進程分為兩個不同的角色。運行在服務器上的盡量減輕運行壓力,只做讀取和轉(zhuǎn)發(fā),這個角色叫做Shipper;運行在獨立的服務器上的完成數(shù)據(jù)解析處理,負責寫入Elasticsearch的角色,叫Indexer。)

2.為什么用ELK

和傳統(tǒng)的日志處理方案相比,Elastic Stack具有如下優(yōu)點:

處理方式靈活:Elasticsearch是實時全文索引,不需要像storm那樣預先編程才能使用;

配置簡易上手:Elastisearch全部采用JSON接口,Logstash是RubyDSL設計,都是目前業(yè)界最通用的配置語法設計;

檢索性能高效:雖然每次查詢都是實時計算,但是優(yōu)秀的設計和實現(xiàn)基本可以 達到全天數(shù)據(jù)查詢的秒級響應;

集群線性擴展:不管是Elasticsearch 集群還是Logstash 集群都是可以線性擴展的;

前端操作炫麗:Kibana界面上,只需要點擊鼠標,就可以完成搜索、聚合功能,生成炫麗的儀表板。

3.如何使用ELK

3.1 Logstash

3.1.1 Logstash簡介

Logstash在架構(gòu)中起到的作用是從每臺服務器上的某個路徑中的文件中收集數(shù)據(jù),并且按照預先編寫好的過濾規(guī)則來過濾數(shù)據(jù),然后按照要求將日志傳輸?shù)紼S集群中.

3.1.2 Logstash工作流程

3.1.3 Logstash部署

Logstash根據(jù)logstash-example.conf配置文件對數(shù)據(jù)源進行數(shù)據(jù)讀取和清洗,并將清洗結(jié)果寫入指定的目標文件。

Logstash可以以命令行參數(shù)進行配置,也可以在logstash.yml等setting文件中進行設置。

3.1.4 Logstash知識結(jié)構(gòu)


3.2 Elasticsearch

3.2.1 Elasticsearch簡介

Elasticsearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎。設計用于云計算中,能夠達到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便。

3.2.2 Elasticsearch工作流程

?

新收到的數(shù)據(jù)會被寫入到內(nèi)存的 buffer 中,然后在一定的時間間隔后刷到磁盤中,成為一個新的 segment,然后另外使用一個 commit 文件來記錄所有的 segment,數(shù)據(jù)只有在成為 segment 之后才能被檢索。默認的從 buffer 到 segment 的時間間隔是 1 秒(可以調(diào)用/_refresh接口更改)。

采用Translog 保證數(shù)據(jù)從 buffer 到 segment 的一致性,通過定期保存到磁盤中來實現(xiàn)Translog 的一致性。對于不斷生成新的segment,ES 會在后臺把零散的 segment 做數(shù)據(jù)歸并,歸并完成后刪除小的 segment,從而減少 segment 的數(shù)量;也會采用不同的歸并策略,盡量讓每次新生成的 segment 本身就比較大。

3.2.3 Elasticsearch部署

為了提高Elasticsearch性能可以通過elasticsearch.yml文件修改配置參數(shù),也可以根據(jù)用戶系統(tǒng)配置降低配置參數(shù),如jvm.heapsize。

3.2.4 Elasticsearch知識結(jié)構(gòu)


3.3 Kibana

3.2.1 Kibana簡介

Kibana是一個開源的分析與可視化平臺??梢杂脕硭阉?、查看、交互存放在Elasticsearch索引里的數(shù)據(jù),并使用各種不同的圖表、表格、地圖等對數(shù)據(jù)進行分析和可視化。

Kibana3是一個使用Apache開源協(xié)議,基于瀏覽器的Elasticsearch分析和搜索的儀表板,整個項目基于HTML和Javascript寫的,不需要任何服務器端組件,一個純文本發(fā)布服務器即可。

Kibana4中Discover標簽頁可以提交搜索請求,過濾結(jié)果,然后檢查返回的文檔里的數(shù)據(jù),默認情況下,Discover顯示匹配搜索條件的500個文檔。Visualization 用來為搜索結(jié)果做可視化,每個可視化都是跟一個搜索關(guān)聯(lián)著的。Dashboard 創(chuàng)建、定制自己的儀表盤。任何需要展示的數(shù)據(jù)都需要現(xiàn)在 Settings 中進行索引配置,可以選擇配置時間索引,這樣在 Discover 頁面會多出來時間的選項。

3.2.2 Kibana部署

Kibana3中config.js核心配置的地方,文件包含的參數(shù)都是必須在初次運行Kibana之前提前設置好的。

Kibana4啟動,在安裝目錄運行:

$bin/kibana (Linux/Mac OS X)

$bin\kibana.bat (Windows)

配置可以通過命令行參數(shù)或配置文件kibana.yml。

3.2.3 Kibana知識結(jié)構(gòu)


參考書籍《ELK stack權(quán)威指南》http://www.itdecent.cn/p/666c662f0068

?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容