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安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
随机推荐
- 在windows XP系统下编译和使用ffmpeg
最近在做流媒体开发这一块,在服务器端,所用的live555不支持mp4,avi等视频容器格式,所以打算运用ffmpeg来进行扩展.将MP4文件先运用ffmpeg进行解析,解析成live555所支持的基 ...
- 用SPSS 画 人口金字塔(限SPSS 13.0以上)
现在网络上人口金字塔较多的是用excel来实现(可参考链接),但是用spss的步骤又很不明确,于是乎,想着自己试试. 在 SPSS 软件中,绘制人口金字塔是 SPSS13.0 新增的一种图形, 因此只 ...
- Caused by: org.h2.jdbc.JdbcSQLException: Table "T_STUDENT_INFO" not found; SQL statement
1.错误描述 org.hibernate.exception.SQLGrammarException: error executing work at org.hibernate.exception. ...
- Invalid property 'driver_class' of bean class
1.错误描述 INFO:2015-05-01 13:06:07[localhost-startStop-1] - Initializing c3p0-0.9.2.1 [built 20-March-2 ...
- Java中的switch语句后面的控制表达式的数据类型
Java中的switch语句后面的控制表达式的数据类型 1.byte 2.char 3.short 4.int 5.枚举类型 6.Java 7允许java.lang.String类型
- emWin 2天速成实例教程000_如何快速入门ucGUI/emWin
备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果.(2)看完教程000-005就基本会用emWin做项目,其他章节可以需要时再参考. ...
- pat1041-1050
没想到半天就做完了10题 = =,这几题太简单了,基本10分钟一题 1041 #include<cmath> #include<map> #include<iostrea ...
- ArcGIS API for JavaScript 4.4 版本加载谷歌地图
ArcGIS API for JavaScript 4.X 版本升级后,API发生了很大的变化. 其中就支持了WebEarth展示,主要是通过 esri/views/SceneView 实现的. 在新 ...
- CSS3动画效果示例
CSS3动画遵循@kwyframes规则,规定了动画的名称.时长. 1.示例代码 <!DOCTYPE html><html lang="en"><he ...
- less-more使用方法及区别
Less按屏(空格,page up/page down)或按行(回车)查看文件 Less按屏(空格)或按行(回车)查看文件(不能向上翻)