ELK整合SpringBoot日志收集
日期: 2020-05-18 分类: 个人收藏 389次阅读
ELK简介:
ELK是Elasticsearch+Logstash+Kibana简称
- Elasticsearch:是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。
- Logstash: 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。
- Kibana: 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。
ELK实现的日志采集的核心是,通过 logstash 将应用系统的日志通过 input 收集,然后通过内部整理,通过 output 输出到 Elasticsearch 中,其实就是建立了一个 index,然后 kibana作为可视化平台,将 ES 的index进行输出到平台,通过图表的方式进行展示。
环境准备:
JDK: 1.8
OS: windows
elasticsearch:6.5.1
kibana:6.5.1
logstash:6.5.1
环境搭建:
其中 elasticsearch 与 kibana 的搭建可以参考 https://www.cnblogs.com/wuzhenzhao/p/12889339.html , 在这里就不赘述了。
然后分别启动 Elasticsearch 、 kibana 。
1.Logstash 的安装包进行解压。然后在config文件夹下添加 test.conf 文件内容:
input{ tcp { mode => "server" host => "0.0.0.0" #我这里是本地 port => 9061 #开放这个端口进行采集 codec => json_lines # 编解码器 有的版本需要肚子安装 } } output{ elasticsearch{ #es地址 hosts=>["127.0.0.1:9200"] # 在es里产生的index的名称 index => "springboot-study-%{+YYYY.MM.dd}" } stdout{codec => rubydebug} }
启动 logstash:./logstash -f ../config/test.conf
上面是采用 TCP的方式去采集日志,还可以指定日志文件, 修改 input,linux系统还需要给该日志文件授权:
input{ file { path => "D:/logs/web_info.log" type => "systemlog" start_position => "beginning" stat_interval => "3" } }
Logstash 的input 、output、以及这里没有提及的 filter都是核心。有兴趣的可以深入了解。
2. 添加依赖:
<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>4.9</version> </dependency>
3.在resources下添加logback-spring.xml 只需把下面ip地址修改一下即可
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml" /> <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>127.0.0.1:9061</destination> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <root level="INFO"> <appender-ref ref="LOGSTASH" /> <appender-ref ref="CONSOLE" /> </root> </configuration>
4. application.properties 修改配置:
logging.config = classpath:logback-spring.xml
5.然后启动springboot ,在对应的controller 里面打印一些日志,然后就可以看到启动 Logstash 的 控制台有所输出,就可以了。
6.登录kibana http://localhost:5601/ ,点击导航栏 monitoring 模块 ---> 点击 Indices :
可以看到在 es 里面已经产生该 index、说明日志成功收集。点击 Management 里面的 Index Patterns:
点击 Create index pattern 输入我们在 Logstash 里面配置的 index 的名称进行匹配搜索
点击 next step:
点击创建,成功后显示如下界面:
然后回到 Discover ,保持服务是启动状态,可以看到
对于 Kibana 提供了很多的可视化图表:
我们选一个柱状图:
选择 index:
选择完以后,然后需要构建 X、Y轴(多访问几次,图示效果更好):
在这里我们可以添加不同的统计方式,然后如上图,我们可以点击右上角的 save 按钮,将我们构造出来的 视图 保存起来,然后可以通过 Dashboard 将这些试图组装到一个仪表盘上进行展示。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
上一篇: APC注入(QueueUserAPC)--Ring3
下一篇: 一种节点组重要性排序方法
精华推荐