zoukankan      html  css  js  c++  java
  • ELK整合SpringBoot日志收集

    ELK简介:

      ELK是Elasticsearch+Logstash+Kibana简称

    1. Elasticsearch:是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。
    2. Logstash: 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。
    3. Kibana: 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。

      ELK实现的日志采集的核心是,通过 logstash 将应用系统的日志通过 input 收集,然后通过内部整理,通过 output 输出到 Elasticsearch 中,其实就是建立了一个 index,然后 kibana作为可视化平台,将 ES 的index进行输出到平台,通过图表的方式进行展示。

    环境准备:

      JDK: 1.8

      OS: windows

      elasticsearch:6.5.1

      kibana:6.5.1

      logstash:6.5.1

    环境搭建:

      其中 elasticsearch 与 kibana 的搭建可以参考 https://www.cnblogs.com/wuzhenzhao/p/12889339.html , 在这里就不赘述了。

      然后分别启动 Elasticsearch 、 kibana 。

    1.Logstash 的安装包进行解压。然后在config文件夹下添加 test.conf 文件内容:

    input{
            tcp {
                    mode => "server"
                    host => "0.0.0.0" #我这里是本地
                    port => 9061 #开放这个端口进行采集
                    codec => json_lines # 编解码器 有的版本需要肚子安装
            }
    }
    output{
            elasticsearch{ #es地址
                    hosts=>["127.0.0.1:9200"]
                    # 在es里产生的index的名称
                    index => "springboot-study-%{+YYYY.MM.dd}"
                    }
            stdout{codec => rubydebug}
    }

       启动 logstash:./logstash -f  ../config/test.conf 

      上面是采用 TCP的方式去采集日志,还可以指定日志文件, 修改 input,linux系统还需要给该日志文件授权:

    input{
            file {
                    path => "D:/logs/web_info.log"
                    type => "systemlog"
                    start_position => "beginning"
                    stat_interval => "3"
            }
    }

      Logstash 的input 、output、以及这里没有提及的 filter都是核心。有兴趣的可以深入了解。

    2. 添加依赖:

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

    3.在resources下添加logback-spring.xml   只需把下面ip地址修改一下即可

    <?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">
            <destination>127.0.0.1:9061</destination>
            <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
        </appender>
    
        <root level="INFO">
            <appender-ref ref="LOGSTASH" />
            <appender-ref ref="CONSOLE" />
        </root>
    </configuration>

    4. application.properties 修改配置:

    logging.config = classpath:logback-spring.xml

    5.然后启动springboot ,在对应的controller 里面打印一些日志,然后就可以看到启动 Logstash 的 控制台有所输出,就可以了。

    6.登录kibana http://localhost:5601/ ,点击导航栏 monitoring 模块 --->  点击 Indices :

      可以看到在 es 里面已经产生该 index、说明日志成功收集。点击 Management 里面的 Index Patterns:

      点击 Create index pattern 输入我们在 Logstash 里面配置的 index 的名称进行匹配搜索

      点击 next step:

      点击创建,成功后显示如下界面:

      然后回到 Discover ,保持服务是启动状态,可以看到

      对于 Kibana 提供了很多的可视化图表:

      我们选一个柱状图:

      选择 index:

      选择完以后,然后需要构建 X、Y轴(多访问几次,图示效果更好):

      在这里我们可以添加不同的统计方式,然后如上图,我们可以点击右上角的 save 按钮,将我们构造出来的 视图 保存起来,然后可以通过  Dashboard 将这些试图组装到一个仪表盘上进行展示。

  • 相关阅读:
    dedecms中如何去掉文章页面的广告
    织梦新建顶级栏目打不开,解决办法
    织梦dede模板中广告的去除方法?
    php 转码
    安卓插件
    计时器的实现
    json剥离
    安卓解析json
    安卓 读取网页源码
    java不用jni,也可以获得当前系统性能信息
  • 原文地址:https://www.cnblogs.com/wuzhenzhao/p/12911579.html
Copyright © 2011-2022 走看看