SpringBoot集成ELK详细教程

斜风细雨忽如归

最新可真是清闲了,清闲之余感谢这份时间能够整理自己,走好下一步

​ ELK老话题了,不论怎么说还是比较好用的,由于刚刚组装完毕,有图有说明

ELK简介

​ ELK是Elasticsearch+Logstash+Kibana简称

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

ELK实现的日志采集的核心是,通过 logstash 将应用系统的日志通过 input 收集,然后通过内部整理,通过 output 输出到 Elasticsearch 中,其实就是建立了一个 index,然后 kibana作为可视化平台,将 ES 的index进行输出到平台,通过图表的方式进行展示。

​ 下面基于SpringBoot来做详细集成

​ JDK8

Elasticsear+Kibana搭建

Elasticsearch

下载安装包然后解压

​ cd elasticsearch-7.2.0

​ 启动:bin/elasticsearch

​ 启动成功访问http://localhost:9200/ 结果如下
在这里插入图片描述

Kibana

​ 下载安装包,解压,进入目录

​ 编辑配置文件:vim config/kibana.yml

#端口
server.port: 5601
#服务Ip
server.host: "127.0.0.1"
#服务名
server.name: "kibana"
#ES地址
elasticsearch.hosts: ["http://127.0.0.1:9200"]

​ wq!保存退出

​ 启动Kibana:kibana-7.2.0-linux-x86_64/bin/kibana

​ 启动成功后访问:http://localhost:5601/

​ 在项目中使用打印日志后就能够在kibana中看见了,需要设置索引,具体如下

管理-索引模式-查找logstash中设置的索引名,下一步,设置成功即可,然后在大板中就可以看到了
在这里插入图片描述
在这里插入图片描述

这时Kibana和Elasticsearch就搭好了

logstash

​ 下载,解压,我是直接去CSDN的下载中去找的,有需要的朋友可以去找找,实在费事可以找我

​ 在config目录中创建logstash-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 => "laoxiang-logstash"
                }
        stdout{codec => rubydebug}
}

​ 保存退出

​ 启动命令在bin目录中:./logstash -f …/config/logstash-test.conf

​ 结果如图
在这里插入图片描述
​ 这样就实现了logstash连到es,然后kibana可视化

SpringBoot集成logstash

​ 引入maven

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

​ 配置logback的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级别设置即可

<appender-ref ref="LOGSTASH"/>

​ 启动后写一个API测试一下

		@GetMapping("/t2")
    public Object t2(){
        UserDto userDto = new UserDto();
        userDto.setAge(RandomUtil.randomInt());
        userDto.setName(RandomUtil.randomString(5));
        log.info(JSON.toJSONString(userDto));
        return userDto;
    }

​ logstash的控制台输出如下
在这里插入图片描述

​ 然后去kibana看一下,哦?有了

在这里插入图片描述
好了,收,感谢你们

我一直在回忆,仿佛是上一个世纪的别人

参考:[https://www.cnblogs.com/wuzhenzhao/p/12911579.html](

猜你喜欢

转载自blog.csdn.net/Goligory/article/details/114264514