什麼是ELK
K我最初還以為是Kafka,事實上,ELK平臺是一個完整的日誌分析解決方案,由這三個開源工具構建而成:Elasticsearch、Logstash、Kibana。
Elasticsearch用於深度搜索和數據分析,它是基於Apache Lucene的分布式開源搜尋引擎,無須預先定義數據結構就能動態地對數據進行索引;
Logstash用於日誌集中管理,包括從多臺伺服器上傳輸和轉發日誌,並對日誌進行豐富和解析,是一個數據管道,提供了大量插件來支持數據的輸入和輸出處理;
最後是Kibana,提供了強大而美觀的數據可視化,Kibana完全使用HTML和Javascript編寫,它利用Elasticsearch 的RESTful API來實現其強大的搜索能力,將結果顯示位各種震撼的圖形提供給最終的用戶。
安裝Elasticsearch
官網下載對應平臺的安裝包。
Windows用法比較簡單,只要下載後雙機bin/elasticsearch.bat就啟動成功了. 下面關注linux上的安裝使用。
ES不允許root運行,所以,最好我們創建專門的用戶來運行。
解壓後,運行./bin/elasticsearch就會啟動成功。如果失敗,應該是用root啟動的,改成普通用戶即可。
然後瀏覽器訪問:http://localhost:9200/ 可以看到響應
安裝Kibana
官網下載對應平臺的安裝包。然後,解壓。
啟動:
./bin/kibana瀏覽器訪問: http://localhost:5601
安裝logstash
官網下載對應平臺的安裝包。然後,解壓。
這裡採用壓縮包的方式,當然也可以使用系統安裝包,比如
//ubuntusudo apt-get update && sudo apt-get install logstashcentos
甚至docker。
修改ruby倉庫地址為中國:編輯Gemfile
修改為source "https://gems.ruby-china.org/"
啟動: bin/logstash -e 'input { stdin { } } output { stdout {} }'
這是一個交互式輸入,你輸入的內容將被當做message收集起來。
到這裡就算安裝成功了。
遇到的問題,
Unsupported platform: x86_64-linux原因是Java9不支持,卸載Java9即可。
安裝logstash-codec-json_lines插件
ryan@ryan-900X5L:~/apps/logstash-6.2.4$ ./bin/logstash-plugin install logstash-codec-json_linesValidating logstash-codec-json_linesInstalling logstash-codec-json_linesInstallation successful接下來,我們直接編寫我們springboot需要的配置方案,新建config/logstash-sample.conf
4560 是logstash接收數據的埠codec => json_lines是一個json解析器,接收json的數據。這個要裝 logstash-codec-json_lines 插件ouput elasticsearch指向我們安裝的地址stdout會列印收到的消息,調試用啟動:
./bin/logstash -f config/logstash-sample.conf 新建一個springboot項目
新建啟動類
在resources下新建logback-spring.xml
啟動。然後就可以觀察到,logsash控制臺列印我們的日誌
在kibana- management - index pattern裡新建一個pattern,我們就用*吧。創建好了,點擊discover。就可以看到我們的日誌了
項目地址: https://github.com/Ryan-Miao/springboot-with-elk
喜歡的小夥伴,點個關注吧,每天分享新的內容!