0
点赞
收藏
分享

微信扫一扫

springboot(四)集成elk日志


搭建elk请见我的另一篇博客

一、加入下面依赖包:

<dependency>

<groupId>net.logstash.logback</groupId>

<artifactId>logstash-logback-encoder</artifactId>

<version>5.1</version>

</dependency>



 

二、在logback-spring.xml中加入下面配置

 

<appender name="LOGSTASH"class="net.logstash.logback.appender.LogstashTcpSocketAppender">

<destination>192.168.94.151:4567</destination>

<!--<filterclass="ch.qos.logback.classic.filter.ThresholdFilter">-->

<!--<level>info</level><!–写入logstash的日志级别–>-->

<!--</filter>-->

<encoder charset="UTF-8"class="net.logstash.logback.encoder.LogstashEncoder" >

<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段

在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->

<customFields>{"appname":"springboot21-log-elk"}</customFields>

</encoder>

</appender>


 

 

三、logstash配置文件修改成下面格式:

input输入改成tcp,host和port为springboot项目中配置的地址。

 

input {

tcp {

##host:port就是上面appender中的destination,这里其实把logstash作为服务,开启9601端口接收logback发出的消息

host => "192.168.94.151"

port => 4567

#模式选择为server

mode => "server"

tags => ["tags"]



##格式json

codec => json_lines

}



}



output {

elasticsearch {

#ES地址

hosts =>"192.168.94.151:9200"

#指定索引名字,不适用默认的,用来区分各个项目

index =>"%{[appname]}-%{+YYYY.MM.dd}"

}

stdout { codec => rubydebug}

}



 

四、写一个定时任务一直执行输出日志

 

/**

* xuhaixing

* 2018/5/25 13:43

*/

@Component

public class logTest {

private Logger logger = LoggerFactory.getLogger(logTest.class);



@Scheduled(fixedRate = 10000)

public void logtest(){



logger.trace("日志trace");

logger.debug("日志debug");

logger.info("日志info");

logger.warn("日志warn");

logger.error("日志error");

}

}



五、打开kibana

    192.168.94.151:5601,创建箭头所指的索引,日志输出了

 

springboot(四)集成elk日志_springboot

 

举报

相关推荐

0 条评论