ELK

elk安裝

現現在隨着微服務的興起,服務之間的調用方式多種多樣,而這樣給運維帶來了複雜性,好比一個訂單業務,可能後臺有幾十個甚至一百多個服務來共同工做的結果,在此過程當中,若是有一個環節出問題,則須要排查問題抽取日誌是一件很痛苦的事情,因此日誌收集應運而生java

名詞解釋redis

E elasticsearch 主要負責針對數據的搜索相關spring

L:logstash  日誌收集器centos

K:kibnan  主要負責view層ruby

若是把一個ELK當作MVC的話,則E 對應mvc的model層,logstash對應controller層,kibnan對應view層服務器

本文使用單機版進行安裝,集羣版不在贅述restful

安裝步驟mvc

  • 安裝介質

centos 6.5 jdk1.8 logstash5.5.1 elasticsearch 5.5.51 kibnan 5.5.1app

elk的下載地址如:https://www.elastic.co/downloads運維

  • 安裝jdk

將java8包放入到服務器中,配置/etc/profile JAVA_HOME和PATH  

使用java -version驗證是否成

  • 安裝elasticsearch 

將tar包複製到服務器中,並運行nohup bin/elasticsearch &  默認啓動端口9200

使用 curl localhost:9200驗證

  • 安裝logstash

將tar包複製到服務器中,新建文件logstash.conf作爲logstash的配置文件

內容以下:

input { tcp{
 host => "192.168.0.2"
 port => "9250"
type => "tcplog"
 } }
output {
  elasticsearch { hosts => ["localhost:9200"] }
  stdout { codec => rubydebug }
}

具體參數詳查logstash

input支持 tcp udp file redis等各類方式輸入

使用nohup logstash -f ../config/logstash.conf啓動

經過curl 192.168.0.2:9250 驗證是否成功

  • 安裝kibnan

複製到服務器並解壓  使用nohup ./kibana &啓動  默認端口5601 

使用curl localhost:5601驗證

微服務適配

在微服務中,使用logback打印日誌,在集成logstash過程當中,使用logback的集成類將日誌經過restful接口將日誌寫到logstash,logstash將日誌存檔,並供elasticsearch查詢

步驟以下:

  • 引入pom文件
<!-- logstach start-->
<dependency>
   <groupId>net.logstash.logback</groupId>
   <artifactId>logstash-logback-encoder</artifactId>
   <version>4.8</version>
</dependency>
<!-- logstach end-->
  • 修改logback-spring.xml

新增

<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>127.0.0.1:9250</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

並在root中添加appender

至此 微服務與elk的集成基本完成

後續能夠添加微服務跟蹤相關技術 :sleuth

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息