您当前的位置: 首页 >  spring

一一哥Sun

暂无认证

  • 4浏览

    0关注

    622博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SpringBoot整合Logstash,实现日志统计

一一哥Sun 发布时间:2019-08-06 22:17:17 ,浏览量:4

SpringBoot整合Logstash 一. ELK简介

ELK是Elastic公司的三个组件,他们三个配合实现日志收集.

  • ElasticSearch:用于存储日志信息;
  • Logstash:用于收集、处理和转发日志信息;
  • Kibana:提供可视化的Web界面.
二. ELK环境安装

有关ELK安装请参考我之前的教程.

  • Windows下Logstash安装:https://blog.csdn.net/syc000666/article/details/98527232

  • Windows下ElasticSearch安装:https://blog.csdn.net/syc000666/article/details/94664999

  • Windows下Kibana安装:https://blog.csdn.net/syc000666/article/details/94665625

三. 配置Logstash 1. 创建Logstash.conf配置文件

进入到logstash安装目录下,我的目录为E:\ELK\logstash-5.6.8\bin目录.

在该目录下创建一个Logstash.conf配置文件,文件内容如下:

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => "localhost:9200"
    index => "springboot-logstash-%{+YYYY.MM.dd}"
  }
}
2. 启动logstash

logstash -f logstash.conf

效果如下:

四. SpringBoot整合Logstash 1. 添加依赖包

    
    
        net.logstash.logback
        logstash-logback-encoder
        5.3
    

    
        org.springframework.boot
        spring-boot-starter-web
    

    
        org.projectlombok
        lombok
        1.16.22
    

2. 创建logback-spring.xml文件

新建一个logback-spring.xml文件,配置logback日志信息,注意这里配置的destination属性,输出的要和logstash配置的对应上,不然收集不上,内容如下:




    
    

    

    
    

    
    

    
    
        
            INFO
        
        
        
            ${CONSOLE_LOG_PATTERN}
            utf8
        
    

    
    
        127.0.0.1:4560
        
        
            
                
                    UTC
                
                
                    
                        {
                        "logLevel": "%level",
                        "serviceName": "${springAppName:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    
                
            
        
        
    

    
        
        
    


3. 创建Controller测试类
package com.syc.boot;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
public class LogController {

    @GetMapping("/test")
    public String showLog(){
        log.warn("日志测试,啦啦啦啦,lalala");

        return "ok";
    }

}
4. 创建入口类
package com.syc.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class LogApplication {

    public static void main(String[] args){
        SpringApplication.run(LogApplication.class,args);
    }
}
5. 完整项目结构

6. 测试 6.1 在浏览器执行test请求进行测试

6.2 kibana中查看索引

打开kibana管理页面,添加刚刚创建的索引,如图所示: 接下来在浏览器多次访问刚刚在项目中输出日志的方法,查询控制台,如下所示. 然后在进入kibana查看,不光是日志内容,还有自定义的属性也显示出来了.

至此,我们在SpringBoot中整合ELK实现了日志收集.

 

关注
打赏
1665624836
查看更多评论
立即登录/注册

微信扫码登录

0.0398s