ELK+Kafka+Beats实现海量日志收集平台(二)

本文介绍了如何搭建ELK+Kafka+Beats环境,通过部署demo项目生成日志,filebeat收集日志并发送到Kafka,Logstash消费日志并过滤,最终在Kibana展示。涉及环境搭建、项目部署、测试流程。
摘要由CSDN通过智能技术生成

            ELK+Kafka+Beats实现海量日志收集平台(二)

目录

三、环境搭建

四、部署demo工程项目

五、测试


三、环境搭建

  通过上一小节应用场景和实现原理的介绍,接下来实现所需环境搭建及说明架构图如下所示:

  

  环境说明:

  192.168.232.6 : 部署了demo项目(用于产生数据日志)

             filebeat-6.6.0 

  192.168.232.3 : Kafka (单体)(Zookeeper:192.168.232.3~5)

  192.168.232.4 : Kibana

  192.168.232.7 : Logstash (单体)

   ES集群:192.168.232.8~10

   1、filebeat安装配置参考https://www.cnblogs.com/jhtian/p/13731230.html

   2、Kafka安装配置参考https://www.cnblogs.com/jhtian/p/13708679.html

   3、Logstash安装配置参考https://www.cnblogs.com/jhtian/p/13744753.html

   4、ES集群搭建可参考https://www.cnblogs.com/jhtian/p/12703651.html

   5、Kibana安装可参考https://www.cnblogs.com/jhtian/p/13785029.html

四、部署demo工程项目

  项目结构图如下,分别调用项目的 /index、/error两个方法分别打印正常、错误日志(warn及以上级别日志)到logs文件夹中,作为filebeat读取数据的来源。

     

web访问类文件

indexAction.java

 1 package com.tianjh.demo.web;
 2 
 3 import com.tianjh.demo.util.SetMDC;
 4 import lombok.extern.slf4j.Slf4j;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.RestController;
 7 
 8 @Slf4j
 9 @RestController
10 public class indexAction {
11 
12     @RequestMapping(value = "/index")
13     public String index() {
14         SetMDC.putMDC();
15         log.info("这是一条模拟error日志打印");
16         log.info("这是一条模拟warn日志打印");
17         log.info("这是一条模拟info日志打印");
18         return "hello word";
19     }
20 
21     @RequestMapping(value = "/err")
22     public String error() {
23         SetMDC.putMDC();
24         try {
25             int a = 5/0;
26         } catch (Exception e) {
27             log.error("算术异常", e);
28         }
29         return "error";
30     }
31 }

工具类Utils

FastJsonConvertUtil.java

  1 package com.tianjh.demo.util;
  2 
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 
  6 import com.alibaba.fastjson.JSON;
  7 import com.alibaba.fastjson.JSONObject;
  8 import com.alibaba.fastjson.serializer.SerializerFeature;
  9 
 10 import lombok.extern.slf4j.Slf4j;
 11 
 12 /**
 13  * $FastJsonConvertUtil
 14  * @author hezhuo.bai
 15  * @since 2019年1月15日 下午4:53:28
 16  */
 17 @Slf4j
 18 public class FastJsonConvertUtil {
 19 
 20     private static final SerializerFeature[] featuresWithNullValue = { SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullBooleanAsFalse,
 21             SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullStringAsEmpty };
 22 
 23     /**
 24      * <B>方法名称:</B>将JSON字符串转换为实体对象<BR>
 25      * <B>概要说明:</B>将JSON字符串转换为实体对象<BR>
 26      * @author hezhuo.bai
 27      * @since 2019年1月15日 下午4:53:49 
 28      * @param data JSON字符串
 29      * @param clzss 转换对象
 30      * @return T
 31      */
 32     public static <T> T convertJSONToObject(String data, Class<T> clzss) {
 33         try {
 34             T t = JSON.parseObject(data, clzss);
 35             return t;
 36         } catch (Exception e) {
 37             log.error("convertJSONToObject Exception", e);
 38             return null;
 39         }
 40     }
 41     
 42     /**
 43      * <B>方法名称:</B>将JSONObject对象转换为实体对象<BR>
 44      * <B>概要说明:</B>将JSONObject对象转换为实体对象<BR>
 45      * @author hezhuo.bai
 46      * @since 2019年1月15日 下午4:54:32
 47      * @param data JSONObject对象
 48      * @param clzss 转换对象
 49      * @return T
 50      */
 51     public static <T> T convertJSONToObject(JSONObject data, Class<T> clzss) {
 52         try {
 53             T t = JSONObject.toJavaObject(data, clzss);
 54             return t;
 55         } catch (Exception e) {
 56             log.error("convertJSONToObject Exception", e);
 57             return null;
 58         }
 59     }
 60 
 61     /**
 62      * <B>方法名称:</B>将JSON字符串数组转为List集合对象<BR>
 63      * <B>概要说明:</B>将JSON字符串数组转为List集合对象<BR>
 64      * @author hezhuo.ba
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值