最近在學習ELK的時候踩了很多的坑,特此寫個筆記記錄下學習過程。前端
日誌主要包括系統日誌、應用程序日誌和安全日誌。系統運維和開發人員能夠經過日誌瞭解服務器軟硬件信息、檢查配置過程當中的錯誤及錯誤發生的緣由。常常分析日誌能夠了解服務器的負荷,性能安全性,從而及時採起措施糾正錯誤。linux
一般,日誌被分散的儲存不一樣的設備上。若是你管理數十上百臺服務器,你還在使用依次登陸每臺機器的傳統方法查閱日誌。這樣是否是感受很繁瑣和效率低下。當務之急咱們使用集中化的日誌管理,例如:開源的syslog,將全部服務器上的日誌收集彙總。編程
集中化管理日誌後,日誌的統計和檢索又成爲一件比較麻煩的事情,通常咱們使用grep、awk和wc等Linux命令能實現檢索和統計,可是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法不免有點力不從心。數組
開源實時日誌分析ELK平臺可以完美的解決咱們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站: https://www.elastic.co/products安全
Elastic Stack 是 原 ELK Stack 在 5.0 版本加入 Beats 套件後的新稱呼。ruby
Elastic Stack 在最近兩年迅速崛起,成爲機器數據分析,或者說實時日誌處理領域,開源界的第一選擇。和傳統的日誌處理方案相比,Elastic Stack 具備以下幾個優勢:服務器
先安裝官方新版的Java,包括對應的Jdk並配置好環境變量,下載並解壓Elasticsearch,Logstash,Kibana。restful
cluster.name: es運維
network.host: 0.0.0.0elasticsearch
X-Pack是一個Elastic Stack的擴展,將安全,警報,監視,報告和圖形功能包含在一個易於安裝的軟件包中。在Elasticsearch 5.0.0以前,您必須安裝單獨的Shield,Watcher和Marvel插件才能得到在X-Pack中全部的功能。(安裝須要點時間,請耐心等待)
bin/elasticsearch-plugin install x-pack
在終端中,像下面這樣運行命令來啓動 Logstash 進程:
bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
待到啓動成功後
你會發現終端在等待你的輸入。沒問題,敲入 Hello World,回車,而後看看會返回什麼結果!
結果:
部分解釋:
Logstash 會給事件添加一些額外信息。最重要的就是 @timestamp,用來標記事件的發生時間。由於這個字段涉及到 Logstash 的內部流轉,因此必須是一個 joda 對象,若是你嘗試本身給一個字符串字段重命名爲 @timestamp
的話,Logstash 會直接報錯。
此外,大多數時候,還能夠見到另外幾個:
bin/kibana-plugin install x-pack
安裝過程會比較久,耐心等待。
server.host: 192.168.25.129 (你安裝Kibana當前機子的IP)
elasticsearch.url: "http://127.0.0.1:9200" (ES的地址)
kibana.index: ".kibana" (索引名稱)
elasticsearch.username: "elastic" (用戶名)
elasticsearch.password: "changeme" (密碼)