最近需要使用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中

  

Elasticsearch学习(5) Elasticsearch+logstash +filebeat+log4j的日志系统的更多相关文章

  1. ELK+FileBeat+Log4Net搭建日志系统

    ELK+FileBeat+Log4Net搭建日志系统 来源:https://www.zybuluo.com/muyanfeixiang/note/608470 标签(空格分隔): ELK Log4Ne ...

  2. ELK学习笔记之CentOS 7下ELK(6.2.4)++LogStash+Filebeat+Log4j日志集成环境搭建

    0x00 简介 现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的. 经 ...

  3. ELK( ElasticSearch+ Logstash+ Kibana)分布式日志系统部署文档

    开始在公司实施的小应用,慢慢完善之~~~~~~~~文档制作 了好作运维同事之间的前期普及.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 软件下载地址: https://www.e ...

  4. ELK学习实验018:filebeat收集docker日志

    Filebeat收集Docker日志 1 安装docker [root@node4 ~]# yum install -y yum-utils device-mapper-persistent-data ...

  5. ELK学习实验017:filebeat收集java日志

    收集JAVA格式日志 1 查看Java格式日志 elasticsearch属于Java日志,可以收集elasticsearch作为Java日志范本 [root@node3 ~]# tail -f /u ...

  6. ELK学习实验016:filebeat收集tomcat日志

    filebeat收集tomcat日志 1 安装tomcat [root@node4 ~]# yum -y install tomcat tomcat-webapps tomcat-admin-weba ...

  7. Elasticsearch学习之ElasticSearch 5.0.0 安装部署常见错误或问题

    ElasticSearch 5.0.0 安装部署常见错误或问题 问题一: [--06T16::,][WARN ][o.e.b.JNANatives ] unable to install syscal ...

  8. Elasticsearch 学习笔记 Elasticsearch及Elasticsearch head安装配置

    一.安装与配置 1.到官网下载Elasticsearch,https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6. ...

  9. log4j配置日志系统

    1. lib里加入3个包 slf4j-api, slf4j-log4j12, log4j 2. 在src下 创建log4j.properties ### direct log messages to ...

随机推荐

  1. MyBait 符号大于 小于理解

    EQ 就是 EQUAL等于 NQ 就是 NOT EQUAL不等于 GT 就是 GREATER THAN大于 LT 就是 LESS THAN小于 GE 就是 GREATER THAN OR EQUAL ...

  2. js练习 原型

    //var a = {        //    fun: function a() {        //        test = 0;        //        alert(this) ...

  3. Motion Blur

    [Motion Blur] 此篇介绍最简单的全局Motion Blur.算法是将当前帧与前一帧按某一比例混合.这是一个过程,例如有10帧,在第1帧中,只有第1帧原图,第2帧中有1.2帧原图,第3帧中会 ...

  4. leetcode 204 count prim 数素数

    描述: 给个整数n,计算小于n的素数个数. 思路: 埃拉托斯特尼筛法,其实就是普通筛子,当检测到2是素数,去除所有2的倍数:当检测到3是素数,去除其倍数. 不过这要求空间复杂度为n,时间复杂度为n. ...

  5. 最多有k个不同字符的最长子字符串 · Longest Substring with at Most k Distinct Characters(没提交)

    [抄题]: 给定一个字符串,找到最多有k个不同字符的最长子字符串.eg:eceba, k = 3, return eceb [暴力解法]: 时间分析: 空间分析: [思维问题]: 怎么想到两根指针的: ...

  6. bug解决思路

    1.定位 2.往前看3段:如果有If判断,就重点看为什么会进入到该判断里面

  7. [IIS] 测试的产品登陆之后有个引用外部站点js的请求半天都无法返回,导致网页一直在打转,Selenium的driver也无法对页面进行下一步的操作

    测试的产品登陆之后有个引用外部站点js的请求半天都无法返回: https://cdn.heapanalytics.com/js/heap-3497400264.js 这个js如果是在美国的机器上就可以 ...

  8. W-D-S-DDR

    要把下载到nandflash里面的程序(大于8KB的时候)拷贝到链接地址,故要初始化DDR,才能够使用DDR. ??? 开发板上电后要初始化DRAC,以及DDR,然后把程序拷贝到50000000出运行 ...

  9. VueX-状态管理器

    一.VueX功能与解决的问题 1.中央状态管理器的功能: 1.1.可以管理共享状态1.2.提供一 个可修改状态的方法1.3.提供状态获取的方法1.4.状态更改后,有通知机制 2.中央状态管理器解决的问 ...

  10. linux每天一小步---rm命令详解

    1 命令功能 rm命令用于删除文件或者目录,值得注意的是linux下的删除不弯曲等同于windows系统下的删除操作,linux系统下一旦删除了文件或者目录那么它将消失,而windows系统下我们还可 ...