1.环境准备

在开始之前,请确保你的开发环境中安装了以下软件:

  1. JDK 1.8 或更高版本
  2. Maven
  3. Elasticsearch
  4. Logstash
  5. Kibana

2.安装 Elasticsearch

  1. 下载地址 Index of elasticsearch-local https://mirrors.huaweicloud.com/elasticsearch/
  2. 配置(一般来说不需要修改配置)
  3. 解压后找到bin目录下的 elasticsearch.bat 启动即可 
  4. 访问http://localhost:9200/   启动成功如下                                                                                         

 3.安装 Logstash

  1. 下载地址 Download Logstash Free | Get Started Now | ElasticDownload Logstash or the complete Elastic Stack (formerly ELK stack) for free and start collecting, searching, and analyzing your data with Elastic in minutes....https://www.elastic.co/cn/downloads/logstash
  2. 配置文件修改 进入config目录下 找到logstash.conf文件 没有就新建
  3. 配置文件中的 input 部分定义了数据来源,使用 TCP 协议以服务器模式监听本地主机 127.0.0.1 的 4560 端口,并将接收的 JSON 数据通过 json_lines 编码格式解析;output 部分则将接收到的数据输出到本地 Elasticsearch 实例,指定主机为 127.0.0.1:9200,索引名称为 spx_admin_sit- 加上当前日期,并将数据以 rubydebug 格式输出到控制台,便于调试
  4. 配置成功后在bin目录下运行 终端命令 ./logstash -f ../config/logstash.conf

    input {
     tcp {
     mode => "server"
     host => "127.0.0.1"
     port => 4560
     codec => json_lines
     }
    }
    output {
      elasticsearch {
        hosts => "127.0.0.1:9200"
        index => "spx_admin_sit-%{+YYYY.MM.dd}"
      }
      stdout{  
          codec=>rubydebug  
      }
    }

 4.安装 Kibana

  1. 下载地址 Index of kibana-local
  2. 配置(一般来说不需要修改配置)
  3. 解压后找到bin目录下的 kibana.bat启动即可 
  4. 启动成功后 访问 http://localhost:5601/
  5. 访问成功后出现以下界面                                                                                                                  

 5.springboot项目配置日志

  1. 引入依赖                                                                                                                                           
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </dependency>
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>6.6</version> <!-- 确保使用最新版本 -->
            </dependency>
                        
  2. 在项目的resources目录下新建logback.xml文件,4560 是 logstash.conf文件中配置的port                                                                                 
    <configuration>
        <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <remoteHost>localhost</remoteHost>
            <port>4560</port>
            <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <timestamp/>
                    <logger/>
                    <threadName/>
                    <level/>
                    <message/>
                    <logstashMarkers/>
                    <arguments/>
                    <stackTrace/>
                </providers>
            </encoder>
        </appender>
    
        <root level="INFO">
            <appender-ref ref="LOGSTASH"/>
        </root>
    </configuration>
       
  3.   新建一个controller测试                                                                                                                                                     
    @RestController
    @RequestMapping("/api-sit/logback")
    public class LogBackController {
        private static final Logger log = LoggerFactory.getLogger(LogBackController.class);
    
        @GetMapping("/echo")
        public String echo() {
            log.info("api-sit/logback echo {}", System.currentTimeMillis());
            log.info("api-sit/logback echo {}", "守护最好的坤坤");
            return "OK";
        }
    
    }
    
                              
  4. 启动项目后,用POSTMAN调用多次接口
  5. 进入Kibana管理界面,依次点击字母D->索引模式->创建索引模式                                               

  6. 输入spx_admin_sit* 也就是logstash.conf文件中配置的 index => "spx_admin_sit-%{+YYYY.MM.dd}"                                                                                                                                                                                                                                                                                                                                                                                                     
  7. 点击下一步,时间字段选择@timestamp 再点击创建索引模式                                                                                                                                      

                                                                                                                                                                                             

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
  8. 点击左上角三条杆图标 ->再点击Discover,选择自己的索引就能看到日志了,如果没有看到可以多次调用接口查看,再点刷新                                                                                                                                                                        

                                         

6.注意事项

  1. 3个软件的版本尽量保持一致,如图                                                                                                            

  2. 启动Logstash会出现 Logstash Permission denied - NUL error                                             解决方案参考Logstash Permission denied - NUL error - Logstash - Discuss the Elastic Stack

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐