ELK简介
ELK是Elasticsearch+Logstash+Kibana简称
Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。
Logstash 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。
Kibana 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。
流程

基于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/

那么我们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,点击链接,控制台输出

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

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

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

选择@timestamp,点击创建

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

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

到此spring boot ELK搭建以及测试完毕
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177531.html原文链接:https://javaforall.net
