ELK日志查詢系統


ELK日志查詢系統

 

 

 

一、環境概述
日志分析是運維工程師解決系統故障,發現問題的主要手段。Linux操作系統中日志主要包括系統日志、用戶日志、應用程序日志和安全日志。
ELK由Elasticsearch、Logstash和Kibang三個開源工具組成。
官方網站:https://www.elastic.co/cn/
Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。.
Logstash是一個完全開源的工具,它可以對日志進行收集、過濾,並將其存儲,供以后使用(如,搜索)。.
Kibana也是一個開源和免費的工具,Kibana可以為Logstash和Elasticsearch提供友好的日志分析Web界面,可以幫助您匯總、分析和搜索重要數據日志。
Logstash.收集AppServer產生的Log,並存放到Elasticsearch集群中,而Kibana則從ES集群中查詢數據生成圖表,再返回給Browser。簡單來說,進行日志處理分析,一般需要經過以下幾個步驟:
將日志進行集中化管理(beats)
將日志格式化(logstash)
對格式化后的數據進行索引和存儲(elasticsearch)
前端數據的展示(kibana)
二、案例前置知識點
1.1、Elasticsearch介紹。
Elasticsearch是一個基於Lucene的搜索服務器。它穩定、可靠、快速、而且具有比較好的水平擴展能力,為分布式環境設計、在雲計算中被廣泛的應用。
Wikipedia、Stack、Overflow、GitHub等都是基於Elasticsearch來構建的搜索引擎,具有實時搜索、穩定、可靠、快速、安裝使用方便等特點。.
1.2、Elasticsearch的基礎核心概念:
接近實時(NRT)
集群(cluster):
節點(node)
類型(type).
文檔(document)
分片和副本(shards&replicas)
Elasticsearch將索引分成若干個部分,每個部分稱為一個分片,每個分片就是一個全功能的獨立的索引。分片的數量一般在索引創建前指定,且創建索引后不能更改
,這些分片也可以被復制0次(意思是沒有復制)或多次。當副本存在時,作為復制源的分片稱為主分片,而作為復制目標的分片稱為復制分片。默認情況下,Elasticsearch中的每個索引被分成5個主分片和1個副本。
分片的兩個最主要原因:
水平分割擴展,增大存儲量,
分布式並行跨分片操作,提高性能和吞吐量
2.1、logstash介紹

 

 


Logstash.由JRuby.語言編寫,基於消息(message-based)的簡單架構,並運行在Java虛擬機(JVM)上,是一款強大的數據處理工具。可以實現數據傳輸、格式處理、格式化輸出。Logstash具有強大的插件功能,常用用於日志處理。Logstash可配置單一的代理端,與其他開源軟件結合,實現不同功能。.
Logstash的理念很簡單,它只做3件事情:
Collect:數據輸入
Enrich:數據加工(過濾,改寫等)
Transport:數據輸出
2.2、logstash的主要組件:
shippe:日志收集者。負責監控本地日志文件的變化,及時把日志文件的最新內容收集起來。通常,遠程代理端(agent)只需要運行這個組件即可;
Indexer:日志存儲者。負責接收日志並寫入到本地文件。
Broker:日志Hub。負責連接多個Shipper和多個Indexer。
Search and Storage:允許對事件進行搜索和存儲;
Web Interface:基於Web的展示界面。
在Logstash中,包括了三個階段,分一別是輸入(Input)、處理(Filter,非必須)和輸出(Output)。整個流程為Input收集數據,Filter處理數據,Output輸出數據。每個階段也可以指定多種方式,如輸出即可以輸出到Elasticsearch中,也可以指定到stdout在控制台打印。這種插件式的組織方式,使得Logstash的擴展和定制非常方便。
2.3、Logstash主機分類:
代理主機(agenthost):作為事件的傳遞者(shipper),將各種日志數據發送至中心主機;只需運行Logstash代理(agent)程序;
中心主機(central host):
可運行包括中間轉發器(Broker)、索引器(Indexer)、搜索和存儲器(Search and Storage)、Web 界面端(Web Interface)在內的各個組件,以實現對日志數據的接收、處理和存儲。
3.1、Kibana介紹
Kibana是一個針對Elasticsearch的開源分析及可視化平台,主要涉及用來和Elasticsearch一起工作。可以搜索、查看交互存儲在Elasticsearch索引中的數據。並通過各種圖表進行高級數據分析及展示。Kibana可以讓海量數據更容易理解。它操作簡單,基於瀏覽器的用戶界面可以快速創建儀表板(dashboard)實時顯示Elasticsearch 查詢動態。Kibana使用非常簡單,只需要添加索引就可以檢測Elasticsearch索引數據。
Kibana的主要功能:
Elasticsearch無縫之集成。Kibana架構為Elasticsearch定制,可以將任何結構化和非結構化數據加入Elasticsearch索引。Kibana還充分利用了Elasticsearch 強大的搜索和分析功能。
整合你的數據。Kibana能夠更好地處理海量數據,並據此創建柱形圖、折線圖、散點圖、直方圖、餅圖和地圖,以便用戶查看。
復雜數據分析。Kibana提升了Elasticsearch分析能力,能夠更加智能地分析數據,執行數學轉換並且根據要求對數據切割分塊。
讓更多團隊成員受益。強大的數據庫可視化接口讓各業務崗位都能夠從數據集合受益。
接口靈活,分享更容易。使用Kibana可以更加方便地創建、保存、分享數據,並將可視化數據快速交流。
配置簡單。Kibana的配置和啟用非常簡單,用戶體驗非常友好。Kibana自帶Web服務器,可以快速啟動運行。
可視化多數據源。Kibana可以非常方便地把來自Logstash、ES-Hadoop、Beats或第三方技術的數據整合到Elasticsearch,支持的第三方技術包括Apache Flume、Fluentd等。
簡單數據導出。Kibana可以方便地導出感興趣的數據,與其它數據集合並融合后快速建模分析,發現新結果。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM