SpringCloud版本Hoxton SR5 --- 第九講:分佈式日誌收集-Elasticsearch+Logstash+Kibana(ELK)

有興趣的同學可以看我寫的:SpringCloud版本Hoxton SR5 --- 第一講:認識 先認識認識SpringCloud的一些基本知識。

 


先講一下原理:

首先在傳統項目中,一臺服務器看日誌,還算方便。但是在分佈式架構的系統中多臺服務器配置調用,每臺服務器都有日誌,這時候要看日誌,需要在每臺服務器中查看,那是非常麻煩的。

所以出現了,分佈式日誌系統:

首先需要一個kafka,然後通過aop技術把所有日誌,使用kafka把日誌信息傳輸給 Logstash,Logstash作用就是:獲取到日誌數據,處理日誌數據,然後將日誌數據以json的格式異步的發送給Elasticsearch保存起來,最後再使用Kibana用UI界面的形式,展示出來。(可以分時查詢,關鍵字查詢等等,就完全不需要在linux的命令行使用命令來繁瑣的查看日誌了)

 

aop:aop技術就是可以統一的將日誌信息,通過kafka異步的傳輸出去

kafka: 他的作用就是異步傳輸數據。

Logstash: 它主要做的就是獲取本地日誌/獲取kafaka傳遞過來的日誌,然後處理(過濾器:排序),再以json格式異步輸出。

Elasticsearch:他的作用就是存儲日誌

Kibana:就是提供UI界面,方便查詢日誌。

 

接下來就是安裝的事情:

1. 先安裝Elasticsearch傳送門 :   docker之Elasticsearch鏡像安裝及運行

2. 安裝zookeeper,kafka    (docker安裝非常快,網絡教程也是一大堆,就不說了)

2. 在安裝Logstash :   docker安裝命令: docker pull logstash     具體怎麼安裝就不說了。(最後面有原因)

3. 安裝Kibana:  docker安裝命令:docker pull kibana    具體怎麼安裝就不說了。

 

注意事項:

生產環境中:   
第一步: 安裝Elasticsearch內存最好大一點。

第二步:安裝完成之後,需要修改配置 (1. 指定讀取日誌文件的地址  2.過濾規則  3. 配置輸出到Elasticsearch的連接地址和指定索引格式)

input {
    # 從文件讀取日誌信息 輸送到控制檯
    file {
        path => "/usr/local/elasticsearch-6.4.3/logs/myes.log"
        codec => "json" ## 以JSON格式讀取日誌
        type => "elasticsearch"
        start_position => "beginning"
    }
}

# filter {
#
# }

output {
    # 標準輸出 
    # stdout {}
    # 輸出進行格式化,採用Ruby庫來解析日誌   
     stdout { codec => rubydebug }
	 elasticsearch {
        hosts => ["192.168.212.190:9200"]
        index => "es-%{+YYYY.MM.dd}"
    }	 
}

 

 

最後說一下,我爲什麼不願意寫這個:分佈式日誌收集的安裝了。

小公司,用不到。也不是說用不到吧,有更好的,阿里雲提供的有服務,1年幾千塊錢,你想如果自己搭建,Elasticsearch集羣光服務器購買一個月就是幾千塊錢吧,還不說Kafka集羣、Zookkper集羣。所以推薦使用阿里雲提供的服務。如果是學習的話,阿里雲也提供了30天的免費。  

大公司呢,如果有自己服務器。他們有專門的運維人員,人家搭建的比你專業,說不定,他們還會自己實現一套符合自己公司要求的分佈式日誌管理系統。

 

所以,學無止境,衷心的建議大家學好java基礎纔是正道,有些東西知道原理就足夠了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章