Springboot 配置logback 到logstash ELK(1)

日志的管理,能够很简单,也能够很烦人。简单的可使用tail , cat 等工具来完成基本的需求。node

可是随着业务的发展,各类应用的日志多起来以后,若是仍是使用以前的小工具处理起来就费劲了,可能要同时开着几个甚至十几个的远程来查看日志来定位问题。spring

那有没有什么好的解决方案呢?docker

ELK 日志统一管理

若是以前没听过ELK的话,我相信Elasticsearch 仍是起码听过的。具体我就不介绍了。想要详细了解,能够自定Google或者百度。app

今天首先给你们介绍第一部分,如何将咱们的应用日志输入到ELK中,统一管理。elasticsearch

logstash 的安装和启动

logstash 不用安装,直接到官网上下载就能直接使用。下载下来的以后,在bin目录下就能够直接启动。解压出来的路径下有conif 的目录,里面包含的是配置文件。maven

咱们这里使用的是跟ES 集成,要用到Elasitcsearch 的插件。工具

下面是logstash 的配置样例:插件

input {
    file {
        path => "path-to-log/app.log"#日志文件的路径
        
        
    }
    
    
}




output {

     elasticsearch { #es 插件
         hosts => [ "elasticsearch:9200" ]
         index => "app-%{+YYYY.MM.dd}"
         
         manage_template => false
         
         
    }

}

笔者这里直接使用的是docker 镜像来启动,大家能够根据本身的喜欢来选择不一样的方式安装启动。日志

logback 配置

上面配置完logstash 以后,咱们还须要把spring的应用配置好logbackcode

<appender name="STASH" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>path-to-log/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>logback/redditApp.%d{yyyy-MM-dd}.log</fileNamePattern>
    <maxHistory>7</maxHistory>
</rollingPolicy>  
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="DEBUG">
    <appender-ref ref="STASH" />        
</root>

这里须要注意,<file> tag 里面的日志文件,必需要跟logstash 上面的路径一直

由于使用到Logstash 的appender , 因此还须要再maven上面添加依赖

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

接下来就能够启动服务生成日志了。

启动命令

docker

docker network create elk #建立network

docker run --name logstash --net elk  -p 5044:5044 -p 9600:9600 logstash:7.3.2  -f config-sample.yml
bin

install-path/bin/logstash -f config-sample.yml

这里的config-sample.yml 制定的是上面的配置文件,读者能够根据需求修改。 注意:修改以后的配置,须要重启logstash 才能生效

启动以后,这里logstash 应该会报错,说没法链接到elasticsearch。这时候咱们要启动ES 应用。

启动ES

docker run --name elasticsearch --network elk  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.3.2

等ES 起来以后,就能够正常输出日志到ES 了。

最后,咱们还要到kibana 上查看咱们的日志文件。这个留到下一讲以后,咱们再去详细了解。

今天就到这里了。谢谢你们。

相关文章
相关标签/搜索