zoukankan      html  css  js  c++  java
  • ELK日志收集(SpringBoot)

    环境&准备

    1. 下面所有操作都基于CentOS7

    2. 基于目前官网最新版搭建(版本号7.8)

      es+kibana+logstash

    3. 官网下载安装包

      ES下载

      kibana下载

      logstash下载

      如官网打不开,可从我的云盘中下载(7.8版本)

      链接:https://share.weiyun.com/O10eSbOH 密码:ir72nx

    4. 安装JDK

      安装方法见CentOS7安装JDK8

    ES安装

    Elasticsearch-CentOS7单机安装测试

    Kibana安装

    Kibana-CentOS7单机安装测试

    Logstash安装

    Logstash-CentOS7单机安装测试

    Logstash配置

    在logstash安装中,已经新建了一个my.conf,就还在这个文件上修改

    input {
      tcp {
        #模式为serve,代表数据来源为服务端
        mode => "server"
        #SpringBoot logback-spring.xml中指定的ip,用于日志传输到logstash
        #此处IP可指定为0.0.0.0
        #host => "0.0.0.0"
        host => "192.168.1.232"
        #SpringBoot logback-spring.xml中指定的端口,用于日志传输到logstash
        port => 4560
        #格式json
        codec => json_lines
      }
    }
    output {
      elasticsearch {
        #这里是es的地址,多个es要写成数组的形式,例如 ["127.0.0.1:9200","127.0.0.2:9200"]
        hosts  => "192.168.1.232:9200"
        #用于kibana过滤,可以填项目名称
        #index  => "mylog" #这种方式将所有数据全部输出到一个文件中,不便于后期的数据清理,不推荐
        index  =>"logstash-%{+yyyy.MM.dd}" #不设置默认是按照日期拆分,便于以后数据清理,推荐
    
      }
      stdout {}#接到数据后在控制台输出一份,可不加
    }
    

    保存后重启Logstash服务

    SpringBoot中logback-spring.xml配置

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration debug="false" scan="true" scanPeriod="1 seconds">
        <include resource="org/springframework/boot/logging/logback/base.xml"/>
        <contextName>logback</contextName>
        <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <destination>192.168.1.232:4560</destination>
            #上面这个ip就是my.conf中input配置的host、port
            <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
        </appender>
        <root level="info">
            <appender-ref ref="logstash" />
        </root>
    </configuration>
    

    测试

    启动 ESKibanaLogStash

    启动SpringBoot项目

    使用Idea、windows下CMD启动、扔到Linux上启动都可以,但是一定要保证一点:项目运行环境可与LogStash通信

    配置Kibana

    1. 进入 http:// Kibana的IP:5601

    2. 选择Stack Management

      image-20200722110522394

    3. 确认上面配置的Logstash-output中index=mylog是否创建了

      注意:只有SpringBoot项目启动后才会有

      image-20200722110750774

    4. mylog存在,点击下面

      image-20200722110859663

    5. 输入"mylog"

      image-20200722110939453

    6. 选择如下

      image-20200722111058605

    7. 查看日志

      • 执行项目中那个循环的输出方法
      • 就可以看到收集的实时日志了

      image-20200722111323780

    image-20200722111449087

    附:SpringBoot项目

    elk.zip

  • 相关阅读:
    Python-异常处理
    进程及其状态
    操作系统基础
    计算机组成基础
    Java wait()、notify()、notifyAll()方法
    Java 死锁
    线程同步
    Java 创建多线程
    Java 接口
    抽象类和抽象方法
  • 原文地址:https://www.cnblogs.com/rb2010/p/13361733.html
Copyright © 2011-2022 走看看