ELK+Kafka+Beats实现海量日志收集平台(二)
三、环境搭建
通过上一小节应用场景和实现原理的介绍,接下来实现所需环境搭建及说明
架构图如下所示:
环境说明:
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 }