Elasticsearch学习(5) Elasticsearch+logstash +filebeat+log4j的日志系统

最近需要使用Elasticsearch做一个日志系统,本文只介绍log4j内容同步到Elasticsearch,至于日志的查询和分类,会在后面介绍。

一、配置并打开Elasticsearch

  这个操作不在叙述,需要注意的是,本文使用的是elasticsearch-5.6.8版本的elasticsearch,所以logstash和filebeat也是5.6.8,本文使用的环境是windows系统。

二、配置filebeat

  之前我们已经介绍了使用logstash来同步mysql数据库,那么logstash是否也能同步log4j?在查询文档后发现,logstash在低版本情况下是可以直接同步log4j的,但是如果使用logstash5.X的版本,logstash变不在支持log4j转而将这个功能放入到了Filebeat实现,所以使用log4j的日志系统将采用Elasticsearch+logstash +filebeat+log4j的形式。

       首先介绍一下什么是Filebeat。Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放,接下来将介绍配置filebeat。

  1.下载filebeat,需要注意的是filebeat版本应该elasticsearch版本一致,官网地址:

   https://www.elastic.co/downloads/beats/filebeat

  2.修改filebeat文件中的filebeat.yml文件

   input_type:long

   path:

    - 你的log4j文件绝对路径 

   

    在filebeat.yml文件中的Elasticsearch output项可以修改Elasticsearch 的地址

    

    在filebeat.yml文件中的Logstash  output项修改Logstash的地址(这个地址和端口号必须与接下来配置Logstash的.conf文件一致)

     

    以上的配置已经可以同步,其他的详细配置,可以参考这篇博客:https://blog.csdn.net/haozhuxuan/article/details/79738447

  3.启动filebeat

    打开命令终端,进入filebeat文件夹运行:     

filebeat -e -c filebeat.yml

三、配置Logstash文件

  1.在Logstash文件夹下创建conf文件夹

  

  2.在创建的conf文件夹中创建log4j.conf文件,文件的内容为:

          

input{
    beats {
        port => 9600
    }
}
output{
    stdout{ codec => rubydebug }
    elasticsearch { 
        hosts => "localhost:9200"  
        index =>  "t-server-%{+YYYY.MM.dd}"
        document_type => "log4j_type"
    }
}

  3.运行log4j.conf文件:

  使用windows终端进入Logstash文件下,运行:

logstash -f ../conf/log4j.conf

   完成这一步,整个同步过程就已经完成了

四、测试

   本文使用的是spring boot项目,需要添加log4j的依赖:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
  </dependency>

   在application.properties同一级下创建log4j.properties文件:

### 设置###
log4j.rootLogger = debug,stdout,D

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=E:/log/debug.log
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File =E:/log/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

编写测试代码:

import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController 
public class LoginController {
    
     private static final Logger logger = Logger.getLogger(LoginController.class);
    
    @RequestMapping("/getUser")
    public String getUser(){
         logger.debug("debug message!");
         logger.info("info message!");
         logger.warn("warn message!");
         logger.error("error message!");

         try{
             System.out.println(10/0);
         }catch(Exception e){
             logger.error(e);
         }
        return "返回成功";

    }
    
}
测试代码

访问:http://localhost:8880/getUser 后,我们可以在head中看见,刚才的日志信息已经同步到Elasticsearch中

  

 

转载于:https://www.cnblogs.com/daijiting/p/10250374.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值