spring boot ELK搭建

spring boot ELK搭建ELK 简介 ELK 是 Elasticsearc Logstash Kibana 简称 Elasticsearc 是一个分布式的搜索和分析引擎 可以用于全文检索 结构化检索和分析 并能将这三者结合起来 Elasticsearc 基于 Lucene 开发 现在是使用最广的开源搜索引擎之一 Logstash 简单来说就是一根具备实时数据传输能力的管道 负责将数据信息从管道的输入端传输到管道的输出端 与此同时这根管道还可以让你根据自己的需求在中间加上滤网 Logstash 提供了很多功能强大的滤网以满足你的

ELK简介

ELK是Elasticsearch+Logstash+Kibana简称

Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。

Logstash 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。

Kibana 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。

流程

spring boot ELK搭建

基于spring boot搭建ELK

可以去官网分别下载安装:https://www.elastic.co/cn/downloads/past-releases#(我这里下载的7.12.0)

Elasticsearch

1.下载Elasticsearch,解压,点击bin下的elasticsearch.bat

2.访问http://localhost:9200/

3.返回一串json代码,则证明安装成功

{ "name" : "LAPTOP-Q7TNQUU9", "cluster_name" : "elasticsearch", "cluster_uuid" : "RMJvT6LHRFaE-05T2NegzA", "version" : { "number" : "7.12.0", "build_flavor" : "default", "build_type" : "zip", "build_hash" : "c38caa25a70982b5b042074cde5d3b3a", "build_date" : "2021-03-18T06:17:15.Z", "build_snapshot" : false, "lucene_version" : "8.8.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }

Logstash

1.下载解压logstash-7.12.0,在D:\ELK\logstash-7.12.0\config新增log4j_to_es.conf文件,input是输入配置,output是输出配置

input:使用tcp去做日志数据的传输,

host:从哪个端口进来的数据

port:端口号

mode:server只监听本地,如果做集群是另一种配置,这里先不解释,可以百度

codec:数据格式json

output:输出到那,我们这输出到es中

hosts:是es的地址

index:输出的名称,在kibana中查看这个名字

input{ tcp { host=>"127.0.0.1" port => 9601 mode=>"server" codec => json_lines } } output{ elasticsearch{ hosts=>["http://127.0.0.1:9200"] index => "user-%{+YYYY.MM.dd}" } stdout{codec => rubydebug} }

2.在D:\ELK\logstash-7.12.0\bin下新建run.bat,用来启动。

logstash -f ../config/log4j_to_es.conf

3.访问http://localhost:9600/,出现以下内容,在代表配置成功

{ "host":"LAPTOP-Q7TNQUU9", "version":"7.12.0", "http_address":"127.0.0.1:9600", "id":"dad8f5b9-4d08-4114-a25a-27fb5d7177ed", "name":"LAPTOP-Q7TNQUU9", "ephemeral_id":"f0d4a37b-09ca-4467-b427-df12be8d641c", "status":"green", "snapshot":false, "pipeline":{ "workers":8, "batch_size":125, "batch_delay":50 }, "build_date":"2021-03-18T05:13:33Z", "build_sha":"4399d72a9afe6f06db8adbaad8030e5b111e86b6", "build_snapshot":false }

Kibana

1.下载Kibana,解压

2.点击bin下的kibana.bat

3.出现以下代码证明启动成功

 log [20:28:10.143] [info][kibana-monitoring][monitoring][monitoring][plugins] Starting monitoring stats collection

4.点击访问http://localhost:5601/

spring boot ELK搭建

那么我们ELK就搭建完了,我们只需要再项目中集成就可以了

我们以spring boot为例,新建spring boot项目,在配置文件新增依赖

 
   
   
     net.logstash.logback 
    
   
     logstash-logback-encoder 
    
   
     5.1 
    
  

新建logback-spring.xml文件

 
   
   
    
    
    
      127.0.0.1:9601 
     //logstash ip和暴露的端口,logback就是通过这个地址把日志发送给logstash 
     
    
    
     
     
    
  

在application.yml中引入logback-spring.xml

logging: config: classpath:logback-spring.xml

新建controller入口

 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class LoginController { private Logger logger = LoggerFactory.getLogger(LoginController.class); @RequestMapping("/login1") public void showLogin1(){ logger.warn("This is a warn message!"); logger.error("This is error message!"); try { int a = 1/0; } catch (Exception e){ e.printStackTrace(); } } } 

新建home.html页面

 
   
   Title 
   

ELK

报错日志

启动项目,访问home.html,点击链接,控制台输出

spring boot ELK搭建

在logstash的命令窗口看到有json数据,说明我们项目的日志已经推到logstash了

spring boot ELK搭建

再去查看Kibana可视化界面,注意,首次登陆需要设置Index patterns

spring boot ELK搭建

我们会看到所有的索引名称,复制我们今天的名称,点击下一步

spring boot ELK搭建

选择@timestamp,点击创建

spring boot ELK搭建

创建完成,点击左侧的菜单栏,点击Discover

spring boot ELK搭建

就可以看到我们输出的日志信息了,左侧栏是配置列表显示的项

spring boot ELK搭建

到此spring boot ELK搭建以及测试完毕

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177531.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:17
下一篇 2026年3月26日 下午7:18


相关推荐

  • NHibernate教程

    NHibernate教程 一、NHibernate简介在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relationalmapping(ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。NHibernate除了能将一张表映射为

    2022年7月12日
    23
  • 超强半监督学习 MixMatch

    超强半监督学习 MixMatch人类的学习方法是半监督学习 他们能从大量的未标记数据和极少量的标记数据学习 迅速理解这个世界 半监督学习最近有没有什么大的突破呢 我的 Twitter 账号被这篇 TheQuietSemi SupervisedRe 1 博客刷屏了 这篇博客介绍了 DeepMind 的 MixMatch 2 方法 此方法仅用少量的标记数据 就使半监督学习的预测精度逼近监督学习 深度学习领域的未来可能因此而刷新 以前的半监督学习方案 一直以来表现其实都很差 你可能会想到 BERT 和 GPT 这两个

    2026年3月17日
    1
  • hexo博客搭建及主题优化(二)

    hexo博客搭建及主题优化(二)crystalBlog上篇hexo博客搭建及主题优化(一)主题优化二21.网站log设置主题目录下的_config.yml配置文件中:#配置网站favicon和网站LOGO##本地#favicon:/favicon.png#logo:/medias/logo.png#此处我用的CDN,也可以使用本地文件favicon:https://cdn.jsdelivr.net/gh/guixinchn/image/blog/favicon.pnglogo:https://cdn

    2026年1月30日
    6
  • 常用黑盒测试方法_黑盒测试各种方法

    常用黑盒测试方法_黑盒测试各种方法定义:黑盒测试又称功能测试。黑盒测试就是把测试对象看成一个不能打开的黑盒子,在完全不考虑程序的内部结构和处理过程的情况下,只依据程序的需求规格说明书,检查程序的功能是否符合他的功能说明。黑盒测试主要发现的缺陷类型:1、功能错误或遗漏;2、界面错误;3、数据库错误;4、性能错误;5、初始化和终止错误。黑盒测试的基本思路:黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的,又称为数据驱动测试。黑盒测试是在程序外部接口进行的测试。黑盒测试选择…

    2022年10月4日
    6
  • java和c 就业,c++和java的区别和就业前景

    java和c 就业,c++和java的区别和就业前景c++和java都是当下最热门的编程语言,二者各有各的优势。java与c++都是面向对象的语言,但java晚于c++发布,部分语法和思想也参考了c++,只是java没有头文件、指针、运算符重载、虚基类等等,算是c++语言的“纯净版”。c++和java的主要区别1、指针java语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,…

    2022年7月8日
    28
  • Iocomp Crack和ProEssentials Crack

    Iocomp Crack和ProEssentials CrackIocompCrack和ProEssentialsCrack对于程序员来说,要凭一己之力开发出漂亮逼真的工控仪表和工控图表是非常耗时间和精力的,那么使用专业的第三方控件就是不错的选择,不仅节约开发时间,降低了项目风险,最重要的是第三方控件写的程序更专业,工控图表图像更精细。笔者认为最好用的工控控件当属Iocomp和ProEssentials。下面笔者对这两个工控控件进行了简单的对比评测:Iocomp工控仪表-企鹅578867473Iocomp公司可以说是工业仪表盘控件的龙头老大,在国内工业

    2022年7月25日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号