ELK(二),Spring-boot集成logstash,日志采集

Linux部署ELK,以及可能遇到的问题在(一)中已经阐明,这里不再做阐述。

前景:搭建一个普通的spring-boot项目,这个工程可以是本地工程,可以是部署在Linux服务器上的。本地的使用服务器的公网ip地址进行传输就好了。

目录

  • 1. Spring-boot集成Logstash
    • 配置spring-boot日志文件
    • 配置logstash文件

1. Spring-boot集成Logstash

  • 配置spring-boot日志文件

    在配置文件中加入以下配置

    配置logback.xml
    <!-- 输出到logstash -->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    	<!-- logstash服务地址,以及端口号 -->
        <destination>xx.xx.xx.xx:8089</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>
    
    <!-- 陈列日志级别时,LOGSTASH也需要配置 -->
    <root level="info">
        <appender-ref ref="LOGSTASH"/>
    </root>
    
  • 配置logstash文件

    新建一个配置文件,在自己喜欢的目录夹。进入bin目录夹
    nohup ./logstash -f ./配置文件目录夹/xxxx.conf & 启动logstash

    # 输入来源
    input{
      tcp{
        type => "system-syslog"
        port => 8089
      }
    }
    
    #输出到elastcisearch
    output{
      elasticsearch{
        hosts => ["127.0.0.1:9200"]         #elasticsearch服务地址
        action => "index"   
        index => "matthiola-log-%{+YYYY-MM-dd}"   #以天为单位创建的索引
      }
    }
    
    

    运行测试代码,kibana可视化界面过滤后查看效果

    Logger log = LoggerFactory.getLogger(Test.class);
    
    @Test //junit
    public void test() {
        log.debug("好了,即可测试222");
        log.info("好了,即可测试222");
        log.error("好了,即可测试222");
        log.warn("好了,即可测试222");
    }
    

你可能感兴趣的:(ELK)