ELK学习笔记(四)SpringBoot+Logback+Redis+ELK实例
废话不多说,直接上干货,首先看下整体应用的大致结构。(整个过程我用到了两台虚拟机 应用和Shipper 部署在192.168.25.128 上 Redis和ELK 部署在192.168.25.129上)
Controller:
@RestController
@RequestMapping("/user")
public class UserController { private Logger logger = LoggerFactory.getLogger(UserController.class); @RequestMapping(value = "/addUser", method = RequestMethod.GET)
public Object addUser() {
String[] names = {"Jack", "Tom", "John", "Arnold", "Jim", "James", "Rock"};
String[] introduce = {"I like to collect rock albums", "I like to build cabinets",
"I like playing computer games", "I like climbing mountains", "I love running",
"I love eating", "I love drinking"};
for (int i = 0; i < 1000; i++) {
Random random = new Random();
int tempNum = random.nextInt(7);
User user = new User();
user.setId(i);
user.setAge(random.nextInt(20) + 20);
user.setIntroduce(introduce[tempNum]);
user.setName(names[tempNum] + i);
logger.info(JSON.toJSONString(user));
}
return new ResponseData(200, "Success");
} }
通过nohup方式启动我们的SpringBoot应用
nohup java -jar -Dserver.port= -Dlog.root=/var/log/springboot-elk/ /opt/springboot-elk/springboot-elk.jar >/dev/null >& &
LogStash shipper配置:
input {
file {
path => "/var/log/springboot-elk/*"
type => "springboot-elk"
}
} output { redis {
data_type => "list"
key => "springboot-elk-list"
host => "192.168.25.129"
port => 6379
}
}
保证指定的Redis实例开启后,运行LogStash:
bin/logstash -f config/logback-logstash-redis.conf
接下来我们访问应用来生成日志。
生成成功,观察我们的Redis,数据已经全部进入了队列中。
接下来我们配置LogStash 读取Redis数据放入ES中:
input {
redis {
data_type => "list"
key => "springboot-elk-list"
host => "192.168.25.129"
port => 6379
}
} output {
elasticsearch {
hosts => ["192.168.25.129:9200","192.168.25.129:9201"] #从 1.5.0开始,host 可以设置数组,它会从节点列表中选取不同的节点发送数据,达到 Round-Robin负载均衡的效果。单节点也可以写成数组形式。
index => "springboot-elk"
user => elastic #没装x-pack这边就不需要user和password了
password => changeme
}
}
运行LogStash后,它会自动从Redis指定的队列中读取数据放入ES。
bin/logstash -f config/redis-logstash-es.conf
启动Kibana,建立索引,观察数据是否进入了ES:
可以看到1000条数据已经进入了ES \(^o^)/~ 。
ELK学习笔记(四)SpringBoot+Logback+Redis+ELK实例的更多相关文章
- ELK学习笔记之CentOS 7下ELK(6.2.4)++LogStash+Filebeat+Log4j日志集成环境搭建
0x00 简介 现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的. 经 ...
- Redis 学习笔记四 Mysql 与Redis的同步实践
一.测试环境在Ubuntu kylin 14.04 64bit 已经安装Mysql.Redis.php.lib_mysqludf_json.so.Gearman. 点击这里查看测试数据库及表参考 本文 ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
- Redis学习笔记(1)——Redis简介
一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value ...
- go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)
目录 go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用) warden direct demo-server gr ...
- openresty 学习笔记四:连接mysql和进行相关操作
openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
随机推荐
- 前端日常常用git命令
讲真,很早之前就想总结一下git常用的命令了,每次用着用着很多命令都记不住.而且我是英语渣包,有些单词慢慢靠背. git只是一个工具,我这写的只是适合我这种快速上手使用工具的小白,深究的请移步别处. ...
- XAF_GS_02_创建第一个XAF项目
上一节我们讲解了如何安装XAF环境,这次我们要开始创建一个自己的XAF项目. Setp 1 第一步打开你的Visual Studio,新建项目,如下图所示,选择DevExpress XAF,选择好你的 ...
- alsa声卡分析alsa-utils调用过程
如何分析tinyplay 播放音频和tinymix的过程?需要相应的工具来支持追查: 一.利用strace工具分析tinyplay和tinymix: strace -o tinyplay.log ti ...
- QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 根据之前公司的产品需求,参考 barcodescanner 改的,希望能帮助到 ...
- USB转串口驱动代码分析
1.USB插入时,创建设备 [plain] view plaincopy DriverObject->DriverExtension->AddDevice = USB2COM_PnPAdd ...
- MyEclipse10+Flash Builder4+BlazeDS+Tomcat7配置J2EE Web项目报错(一)
1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...
- 双硬盘RAID 0全攻略
. RAID53 RAID7即高效数据传送磁盘结构,是RAID3和带区结构的统一,因此它速度比较快,也有容错功能.但价格十分高,不易于实现. 为什么需要磁盘阵列 如何增加磁盘的存取(ac ...
- 常用UI模板,loading框,提醒框,弹框确认框
css部分 #public_box{width:100%;height:100%;position:fixed;top:0;left:0;z-index:100;background:rgba(0,0 ...
- Query 插件为什么要return this.each()
jQuery.fn.test2= function(){ this.css("background","#ff0");//这里面的this为jquery对象,而 ...
- 【原】【译文】理解storm拓扑并行度
原文地址: http://storm.apache.org/releases/1.2.1/Understanding-the-parallelism-of-a-Storm-topology.html ...