设为首页 加入收藏

TOP

spring与logstash整合,并将数据传输到Elasticsearch(一)
2019-09-26 18:14:16 】 浏览:63
Tags:spring logstash 整合 数据传输 Elasticsearch
原创/朱季谦
 
 
logstash是一个开源的数据收集引擎,支持各种输入选择,能够同时从多个来源采集数据,将数据转发到想存储的“库”中,例如,可以转发存储到 Elasticsearch,也可以转发到kafka等消息中间件里。logstash拥有强大的插件生态,包括基本的http、tcp、udp、file以及kafa、redis等等。
运行Spring的后台项目,可以在控制台上看到log的日志打印信息,我们可以把这些日志信息的ERROR日志进行监听和转发存储。
如何实现logstash来监听Spring项目的日志并将ERROR数据进行转发存储呢?
部署架构图:
可以按照以下流程来实现:
1.下载logstash。
根据以下地址来网盘获取logstash-5.5.2版本的:
链接:https://pan.baidu.com/s/1h7xo65P7_O76Azt0-I-2-A
提取码:95vg
 
2.安装logstash
直接把压缩包压缩到本地某个盘里就可以了,不需要做额外操作,5.x以上版本的logstash是不需要安装其他插件,已经自带大部分插件。
 
3.验证是否安装成功
运行cmd,进入logstash的bin目录下,运行指令:logstash -e 'input{stdin{}} output{stdout{}}'
运行成功的截图如下,即为安装并启动成功:

 启动以后,在光标处输入:hello wrold

正常情况下,会显示以下信息,证明logstash可以正常使用了。

 在这个过程里,涉及到几个概念,logstash是一个管道,里面有两个input和output的必选元素,即输入与输出,之间还可以有一个可选的过滤器filter过滤器。input插件从源头获取到数据,过滤器会根据条件来进行修改,最后通过ouput插件将数据传输,可输出给Elasticsearch、kafka、file等。这几个东西都是插件,在logstash5.x版本以上的,是已经自带了,不需要额外安装。

 
处理过程模型图如下:
Logstash 提供了一个 shell 脚本叫 logstash, 支持以下运行参数:
执行命令: -e 执行-e后面的参数 :logstash -e 'input{stdin{}} output{stdout{}}'
执行文件: --config 或 -f 执行-f后面的conf文件: logstash -f logstash.conf
输入插件:input{ … }
过滤插件:filter{ … }
输出插件:output{ … }
测试配置文件是否正确,然后退出:-t
在这篇文章里,主要用到以上这些命令,其余读者若感兴趣可以自行去研究探索。
 
4.配置一个文件**.conf
可以在bin目录或者config目录等地方,我选择的是bin目录下,新建一个logstash.conf文件,如下:
logstash.conf文件夹里进行信息的配置信息:
 1 input { stdin { } }#该行可有可无
 2 input {
 3     #开启tcp插件的监听
 4     tcp {
 5     #这个需要配置成本机IP,不然logstash无法启动
 6     host => "127.0.0.1"
 7     #端口号
 8     port => 9600
 9     #将日志以json格式输入
10     codec => json_lines
11   }
12 }
13 
14 output {
15    #输出打印
16     stdout { codec => rubydebug } 
17 }

配置好,就可以先启动进行监听了,启动命令:先进到存放logstash.conf的目录下,我的目录在bin里,所以进入到了的是bin目录,执行:logstash -f logstash.conf。启动成功的截图如下:

5.在spring进行logstash配置的maven依赖引入
我在项目里用到的开源日志组件是logback,它是log4j的改良,主要分为以下三个模块:
logback-classic:log4j的一个改良版本,完整实现了slf4j API,可以方便更换成其它日志系统如log4j或JDK14 Logging。
logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能。
logback-core:是其它两个模块的基础模块。
logback需要在maven里引用到的依赖:
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-access</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>net.logstash.log4j</groupId>
    <artifactId>jsonevent-layout</artifactId>
    <version>1.6</version>
</dependency>

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>5.0</version>
</dependency>

如果引用到的ch.qos.logback依赖版本太低的话,可能会出现以下错误

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇springcloud用法 下一篇冒泡排序算法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目