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

原文地址:https://www.cnblogs.com/rb2010/p/13361733.html