大型網站遇到性能瓶頸或發生故障時,分析日誌每每是發現問題根源最有效的手段。 傳統的日誌分析手段不外乎如下幾類:html
1. 運維人員用腳本grep,分析再彙總
2. 經過流式計算引擎,storm/spark實時產生彙總 數據,供監控分析
3. 將數據堆放到HDFS,以後經過map/reduce按期作批量分析 linux
一個完整的集中式日誌系統,須要包含如下幾個主要特色:redis
ELK提供了一整套解決方案,而且都是開源軟件,之間互相配合使用,完美銜接,高效的知足了不少場合的應用。目前主流的一種日誌系統。windows
基於ELK(Elasticsearch , Logstash, Kibana)的解決方案則提供了另一種思路,利用搜索引擎將數據索引發來,支持實時的多維度組合查詢和聚合分析。 這很是契合問題排查過程,即先經過上層統計數據發現數據異常之方向,再經過不斷細化過濾條件縮小範圍, 實現對日誌的下鑽式分析。 ELK上手成本雖低,擴展到海量數據規模場景卻很不易。不少用戶面臨諸如集羣穩定性差,寫入吞吐量不理想, 查詢速度慢,安全把控頭痛,不知道如何監控等問題。 瀏覽器
某旅行網從2013年開始基於ELK打造實時日誌分析平臺, 不到2年時間,集羣結點從5個增加到30多個,日處理數據從億級到百億級,集羣從不穩定到連續200多天沒出任何故障。 安全
ELK簡介服務器
ElasticSearch是一個基於Lucene的搜索分佈式服務器,便於存儲和檢索數據;架構
Logstash是一個開源的日誌收集管理工具,用於往ES中寫入數據;運維
Kibana是一個開源的分析與可視化平臺,用於高級數據分析與可視化。elasticsearch
狂亂的貴公子 【好文】
中文書籍(官網):Elasticsearch: 權威指南
ELK(Elasticsearch/Logstash/Kibana)概念學習系列
日誌採集器。用於轉發和彙總日誌與文件,讓簡單的事情再也不繁雜。
Beats是用於單用途數據託運人的平臺。它們以輕量級代理的形式安裝,並未來自成百上千臺機器的數據發送到Logstash或Elasticsearch。
(畫外音:通俗地理解,就是採集數據,並上報到Logstash或Elasticsearch)
Beats能夠直接(或者經過Logstash)將數據發送到Elasticsearch,在那裏你能夠進一步處理和加強數據,而後在Kibana中將其可視化。
logstash 和filebeat都具備日誌收集功能,filebeat更輕量,佔用資源更少,但logstash 具備filter功能,能過濾分析日誌。
通常結構都是filebeat採集日誌,而後發送到消息隊列,redis,kafaka。而後logstash去獲取,利用filter功能過濾分析,而後存儲到elasticsearch中。
關於Filebeat,記住兩點:
開始配置使用filebeat以前,你須要安裝並配置好這些依賴程序:
Elasticsearch 做爲存儲和索引這些數據。
Kibana 做爲展現平臺。
Logstash(可選)去插入數據到elasticsearch。
開始使用Filebeat 【參考的基於linux的】 和 Logstash 一塊兒用。
Logstash是一個開源的服務器端數據處理管道,能夠同時從多個數據源獲取數據,並對其進行轉換,而後將其發送到你最喜歡的「存儲」。(固然,咱們最喜歡的是Elasticsearch)
參考:Logstash
Kibana 是一個設計出來用於和 Elasticsearch 一塊兒使用的開源的分析與可視化平臺,能夠用 kibana 搜索、查看、交互存放在Elasticsearch 索引裏的數據,使用各類不一樣的圖表、表格、地圖等展現高級數據分析與可視化,基於瀏覽器的接口使你能快速建立和分享實時展示Elasticsearch查詢變化的動態儀表盤,讓大量數據變得簡單,容易理解。
Kibana 的安裝(Windows版本) 【要下載和elasticSearch同樣的版本】
Kibana入門教程 【請求的時候 參考postman中保存的記錄】