美文网首页开源框架-SpringBoot系列springboot
Spring Boot学习笔记七:整合ELK

Spring Boot学习笔记七:整合ELK

作者: 神小六 | 来源:发表于2020-05-09 14:03 被阅读0次

    前面我们已经在Windows搭建好了ELK,没看过的朋友可以看一下我的上一篇文章
    https://www.jianshu.com/p/b783688f637d
    现在我们开始试着把ELK整合到项目中实现日志的分析

    1.首先我们把Logstash的conf配置文件改成

    input {
        tcp {  
            host => "localhost"    ##安装logstash的ip
            port =>  9601          ##设置logstash的端口
            mode => "server"  
            tags => ["tags"]  
     
            codec => json_lines      ##格式json    
        }  
     
    } 
     
    output {
        elasticsearch {
            action => "index"
            hosts => "127.0.0.1:9200"         #e#s的ip和端口(本次logstash和es是同一个服务器)
            index => "applog"                 ##es的index名称
        }
        stdout { codec => rubydebug}
    }
    

    接着重新启动一下

    2.去我们的Spring Boot项目里添加依赖

            <!--ELK-->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-access</artifactId>
            </dependency>
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>5.1</version>
            </dependency>
    

    3.在resources中添加配置文件logback.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <include resource="org/springframework/boot/logging/logback/base.xml" />
    
        <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <!--这里必须和logstash配置文件中input -tcp 中的host 和 port一致-->
            <destination>localhost:9601</destination>
            <!-- 日志输出编码 -->
            <encoder charset="UTF-8"
                     class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <timestamp>
                        <timeZone>UTC</timeZone>
                    </timestamp>
                    <pattern>
                        <pattern>
                            {
                            "logLevel": "%level",
                            "serviceName": "${springAppName:-}",
                            "pid": "${PID:-}",
                            "thread": "%thread",
                            "class": "%logger{40}",
                            "rest": "%message"
                            }
                        </pattern>
                    </pattern>
                </providers>
            </encoder>
        </appender>
    
        <root level="INFO">
            <appender-ref ref="LOGSTASH" />
            <appender-ref ref="CONSOLE" />
        </root>
    
    </configuration>
    

    4.最后我们添加测试类进行测试

       private final static Logger logger = LoggerFactory.getLogger(TextController.class );
    
        @RequestMapping("/textElk")
        public String textElk(){
            logger.info("===================textElk");
            logger.info("===================开始测试");
            return "ok";
        }
    

    把项目跑起来

    5.进入到Kibana中查看日志信息
    首先去management中找到Index patterns然后点击Create index pattern


    image.png

    填写完以后点击Next step


    image.png
    此处选择"@timestamp"后确认
    最后在Discover中查看
    image.png

    相关文章

      网友评论

        本文标题:Spring Boot学习笔记七:整合ELK

        本文链接:https://www.haomeiwen.com/subject/xlkknhtx.html