最近需要使用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. Shadow Mapping 的原理与实践 【转】

    早在上世纪七十年代末,Williams在他的“Casting Curved Shadows on Curved Surface”一文中提出了名为Shadow Map的阴影生成技术.之后,他人在此基础上 ...

  2. 创建maven版的java工程

    步骤如下: 1.第一步 2.第二步: 3.第三步:

  3. Linux学习---linux系统下安装配置Jenkins

    1.首先准备java环境,安装JDK 2.下载jenkins至Linux服务器 下载地址:https://wiki.jenkins-ci.org/display/JENKINS/Installing+ ...

  4. Redis 集群二

    [Redis 集群二] 集群的客户端 Redis 集群现阶段的一个问题是客户端实现很少. 以下是一些我知道的实现: redis-rb-cluster 是我(@antirez)编写的 Ruby 实现, ...

  5. 47. Permutations II (Back-Track, Sort)

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

  6. How to Restart Qt Application

    How to restart QtApplication As we know, Restarting Application means to exit current application, t ...

  7. IMU Noise Model

    1.参考资料2.相关定义3.IMU 的噪声模型3.1噪声的建模3.2白噪声和随机游走噪声的离散化3.3如何获取传感器噪声参数4.随机噪声和扰动的积分4.1建立模型4.2噪声的离散化模型推导4.3系统的 ...

  8. DSOframer 的简单介绍和资源整理(2015-09-02重新整理)

    DSOframer 是微软提供一款开源的用于在线编辑 Word. Excel .PowerPoint 的 ActiveX 控件.国内很多著名的 OA 中间件,电子印章,签名留痕等大多数是依此改进而来的 ...

  9. 安装scrapy解决的坑

    在windows下: pip install scrapy 最后一步报错: 本来以为是缺少 Microsoft Visual C++ 14.0 这个库,一看下载需要400多M,算了再看下报错... 感 ...

  10. ubuntu登陆无限循环

    现象:在Ubuntu登陆界面输入密码之后,黑屏一闪并且出现了check battery state之类的文字之后,又跳转到登录界面. 原因:主目录下的.Xauthority文件拥有者变成了root,从 ...