spring cloud 日誌收集ELK

最近因微服務開發須要,搭建了一個日誌收集框架ELK,途中踩過坑,故此留帖記錄下redis

  首先下載安裝一個Elasticsearch,官網地址:https://www.elastic.co/downloads/elasticsearchspring

根據不一樣的環境下載不一樣的版本安裝解壓便可json

而後找到以下位置雙擊啓動springboot

頁面出現這種狀況說明啓動成功:ruby

 

 Elasticsearch還能夠根據本身的喜愛設置分片命名架構

 

 

同理繼續下載kibana  ,地址:https://www.elastic.co/downloads/kibanaapp

這裏能夠注意就是下面文件中配置的Elasticsearch路徑要和以前安裝路徑一致,雙擊啓動框架

 

 最後安裝如今logstash,路徑:https://www.elastic.co/downloads/logstash,這裏注意解壓是解壓路徑看看是否有空白存在,若是有記得換個路徑,否則可能啓動失敗,elasticsearch

而後在改路徑下新建一個 logstash.conf(名字任意),微服務

內容以下(採用官方推薦的redis方式):

input {
redis {
data_type => "list"  #存儲類型
type => "redis-input"
key => "logstash:redis"#key值,後面要與spring boot中key保持一致
host => "127.0.0.1" 
port => 6379
threads => 5 #啓動線程數量
codec => "json"
}
}

output {
elasticsearch {
hosts => ["localhost:9200"]
index => "springboot-elk" #index是定義將過濾後的日誌推送到Elasticsearch後存儲的名字
}
stdout { codec => rubydebug}  #是否在控制檯打印
}

cmd命令啓動文件:

在bin目錄中新建logstash啓動批處理文件run.bat

內容以下:

 

最後只需吧把你啓動好springboot項目加上依賴:

<dependency>
<groupId>com.cwbase</groupId>
<artifactId>logback-redis-appender</artifactId>
<version>1.1.5</version>
</dependency>

在resources下新增一個logback.xml文件便可,文件內容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<encoder>
<pattern>[%d{HH:mm:ss}][%t][%p][%c]-%m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender>
<appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender">
<source>boot-sleuth</source>
<type>dev</type>
<host>127.0.0.1</host>
<key>logstash:redis</key>
<tags>dev</tags>
<mdc>true</mdc>
<location>true</location>
<callerStackIndex>0</callerStackIndex>
</appender>

<root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>

到此日誌收集架構搭建完成,

注:使用kibana時,記得建立一個index pattern ,

這樣便可看到本身的日誌了

相關文章
相關標籤/搜索