SpringBoot應用之ELK

ozxw4146 9年前發布 | 31K 次閱讀 Logstash Spring JEE框架

來自: https://segmentfault.com/a/1190000004416276

SpringBoot應用系列文章

</div>

本文主要講怎么在SpringBoot里頭配置輸出到logstash,使用elk技術棧實時查看日志。

準備elk

詳見 docker環境搭建ELK

新建項目

新增依賴

        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>4.4</version>
        </dependency>

配置logback

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration>
<configuration>
    <appender name="LOGSTASH" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/logstash-%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>

<root level="INFO">
    <appender-ref ref="LOGSTASH" />
</root>

</configuration></pre>

log實例

@SpringBootApplication
public class ElkdemoApplication implements CommandLineRunner{

private static final Logger logger = LoggerFactory.getLogger(ElkdemoApplication.class);

public static void main(String[] args) {
    SpringApplication.run(ElkdemoApplication.class, args);
}

@Autowired
LogDemoService logDemoService;

@Override
public void run(String... strings) throws Exception {
    while(true){
        logDemoService.generateLog();
        Thread.sleep(1000);
        logger.info("current thread:{},content:{}",Thread.currentThread().getName(), UUID.randomUUID().toString());
    }
}

}</pre>

導入logstash

nc 192.168.99.100 5000 < /Users/patterncat/workspace/elkdemo/log/logstash-2016-02-04.log

kibana查看

http://192.168.99.100 :5601/

TODO

剛才那個nc到logstash的是靜態導入的,需要配置動態導入log,以便實時查看。

本工程 github

參考

 本文由用戶 ozxw4146 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!