基於日誌處理的ElasticSearch的學(gen)習(feng)

最近學了點solr,而後有據說了ElasticSearch,就想着也學一下ElasticSearch,而後看見了ElasticSearch用於日誌的收集的分析,這裏就來學習一下。html

百度一下ElasticSearch 日誌這個關鍵詞組,會出現一下的搜索結果:java

  1. ELK(ElasticSearch, Logstash, Kibana)搭建實時日誌分析平臺
  2. Flume+Elasticsearch搭建實時日誌分析系統
  3. 基於 Kafka 和 ElasticSearch,LinkedIn是如何構建實時日誌分析系統的?
  4. 用Kibana和logstash快速搭建實時日誌查詢、收集與分析系統
  5. 開源實時日誌分析ELK平臺部署
  6. 用ElasticSearch存儲日誌
  7. 使用Elasticsearch + Logstash + Kibana搭建日誌集中分析平臺實踐
  8. Logstash+ElasticSearch+Kibana4日誌分析系統安裝詳解
  9. elasticsearch logstash kibana日誌分析監控套件部署使用
  10. 開源分佈式搜索平臺ELK(Elasticsearch+Logstash+Kibana)入門學習資源索引

就直接從博客開始學習,看下別人是怎麼用這玩意兒的。linux

以前處理日誌的有Log4j+Kafka,而後又出來了一個叫ELK的,也就是ElasticSearch,Logstash和Kibana的結合。tomcat

日誌主要包括系統日誌、應用程序日誌和安全日誌。日常用System.out.println的我忍不住捂臉,涉及到日誌的處理少,主要是看控制檯。可是其實日誌的做用很大的:安全

系統運維和開發人員能夠經過日誌瞭解服務器軟硬件信息、檢查配置過程當中的錯誤及錯誤發生的緣由。常常分析日誌能夠了解服務器的負荷,性能安全性,從而及時採起措施糾正錯誤。服務器

其實,日誌還有一個做用啊,好比說你在處理數據的時候,因爲某些緣由,致使了和你預期衝突的事件發生,致使數據遺失,這時候還能夠經過日誌找回來,幾乎是最後一種方法了。restful

日誌是很重要的,可是不就是輸出了「幾行」信息麼,須要花這麼大力氣去搜索和分析日誌?其實這個不是別人問的,正是我啊!由於沒接觸過淘寶京東那麼大的系統,也沒有經歷過在小一點的公司工做的經歷,因此對日誌的印象還停留在一個比較初級的階段(我歸結爲環境陷阱,沒有參考別的,這個是我自創的,表述的含義是:由於沒經歷過,因此認知和境界沒達到)。架構

可是事實上,在稍具規模的系統中,日誌都是分散在不一樣的設備當中(Thinking about that you start up a five tomcats cluster,這他媽就有五個地方出日誌,不要信我,我猜的)。再拓展一下,假如你要管理數十臺乃至上百臺的服務器,除了問題,你還得一臺一臺地去找,這得多麻(要)煩(命)啊。運維

問題一:咱們要對日誌的管理集中化elasticsearch

此外,當日志進行集中化處理以後就是查找分析,linux玩的很溜的你說,尼瑪,這不簡單,linux那麼多好用的命令,譬如三賤客,哦不,三劍客grep,sed和awk,隨你用啊。你說啥,不會用?滾一邊玩蛋去(某明常常搞這句,反正別人看不到)。呵呵呵,忽然來一個10G的PV(就是pageview,常常看見PV這個簡寫,覺得有多高大上)的日誌,來來來(此處應有MMP)看你的命令用的多熟!其實說了這麼多要引出的就是,之前的方法已經玩不溜的(怕玩的溜的打個人臉),咱們要有新工具了。

問題二:要有高效的工具完成日誌的:統計、檢索和排序

當,當,當,那麼是「當,當,當」呢,就是今天要學習的ELK。

下面的介紹是借(潮)鑑(汐)的:

Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

Logstash是一個徹底開源的工具,他能夠對你的日誌進行收集、過濾,並將其存儲供之後使用(如,搜索)。

Kibana 也是一個開源和免費的工具,它(Kibana)能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。

來豐富一下詞彙量:

  1. elastic:彈性的,可伸縮的,靈活的
  2. stash:隱(貯)藏物; (舊) 藏身處
  3. Kibana:野蠻人(來自google翻譯的)

Logstash和ElasticSearch我以爲都還好理解,Logstash就像一個漏斗同樣收集來自不一樣地方放的日誌,ElasticSearch恰好能夠來對日誌進行檢索,可是Kibana(基巴拉,我本身翻譯的,這個鍋就不給google了,想歪了的本身敲100遍hello world)是來幹哈的?

這個圖畫得比較清晰,也很好理解,原圖在這兒
P. S. 我知道盜圖可恥,可是畫圖真的費時間
enter image description here

如圖:Logstash收集AppServer產生的Log,並存放到ElasticSearch集羣中,而Kibana則從ES集羣中查詢數據生成圖表,再返回給Browser。

我以爲這個架構看上去還挺簡單的,繼續看吧。

ELK平臺搭建
系統環境
System: CentOS 版本暫定
ElasticSearch: 2.1.0
Logstash: 2.1.1
Kibana: 4.3.0
Java: openjdk version 版本暫定

注:因爲Logstash的運行依賴於Java環境, 而Logstash 1.5以上版本不低於java 1.7,所以推薦使用最新版本的Java。由於咱們只須要Java的運行環境,因此能夠只安裝JRE,不過這裏我依然使用JDK,請自行搜索安裝。

啥時候給整出了一套意見部署安裝的腳本再PO上來,我表示幹這種事還挺有趣。

原文地址:

ELK(ElasticSearch, Logstash, Kibana)搭建實時日誌分析平臺

P. S. 字放大一點,省得被人說~

相關文章
相關標籤/搜索