SpringBoot整合ELK搭建入门

Window下单机ELK搭建入门并与Spring Boot项目整合
type
status
date
slug
summary
tags
category
icon
password
AI 摘要
ELK是一款非常流行的日志分析系统,在微服务架构中,我们可以使用ELK来跟踪分析各个微服务的日志,从而来了解服务的运行情况。
ELK是由三个开源工具搭建而成一个系统,分别是:
  • ElasticSearch: ES是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash:一个完全开源的工具,可以对日志进行收集、分析、并将其存储供以后使用。
  • Kibana:一个开源和免费的工具,他Kibana可以为Logstash和ES提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。

环境

  • Window 10
  • jdk 1.8
  • ElasticSearch-6.4
  • logstash-6.4
  • kibana-6.4-windows-x86_64

ELK安装

需要先安装jdk 1.8,其实只需要java运行环境即可,具体安装与环境变量配置过程这时不记录了

ElasticSearch

Window下的安装比较简单。在官网下载对应平台的安装包即可。
官网:https://www.elastic.co/downloads/elasticsearch
下载下来后是一个zip的压缩文件,直接解压到安装目录即可。
ES的启动也非常简单,打开/bin目录双击 elasticsearch.bat 即可。
当然我们也可以选择作为服务启动,在命令行模式下切换到ES的/bin执行 Service install 再通过/bin目录下的 elasticsearch-service-mgr.exe来管理与启动服务。这里我选的第一种,使用的时候直接打开就行了。
启动后直接访问:http://localhost:9200/ 若出现如下页面表示ES已经启动成功了。
notion image
ES启动成功

Logstash

官网下载:https://www.elastic.co/downloads/logstash
我下载的是ZIP格式的,将压缩包解压到安装目录即可。

配置

在其/config目录可以看到已有一些配置文件,我们可以按自己的要求来新建一个配置文件,在此目录新建一个logstach-test.conf内容如下 :
这里的配置比较简单,logstash主要是收集日志给ElasticSearch。因此 input{}中主要是配置logstash监听的端口,后面我们在项目中配置日志向这个端口传输,logstash就会收集。
output{}则配置ElasticSearch的地址,logstash将收集的日志向ES的地址进行输出,index 可以指定索引名, stdout是标准输出,会将收集到的日志进行输出,方便我们调试。

inputcodec => json_lines是一个json解析器,接收json的数据。这个要装logstash-codec-json_lines 插件。在命令行中切换到Logstash的 /bin目录下,执行以下命令:
####启动
命令行中切换到Logstash的 /bin目录下,执行以下命令,使用我们上面的配置文件启动Logstash
命令窗口中打印如下内容无报错并处于监听状态则启动成功:

Kibana

官网下载:https://www.elastic.co/downloads/kibana
这里下载的是Window版本,下载下来是一个压缩包,直接解压到指定的安装目录即可。
启动则直接在/bin目录双击kibana.bat

新建Spring Boot项目

这里使用之前写的项目作测试,项目的构建请看:微服务简单实例–电影购票 这里使用用户微服务(服务提供者)。需要稍微作修改为我们整合Logstash

添加依赖

修改Controller

为了方便测试我们在findId方法中添加一条日志:

新建bootstrap.yml

在application.yml同目录下新建bootstrap.yml,并将application.yml中的 以下内容移动到bootstrap.yml中

配置logback-spring.xml

resources目录下新建logback-spring.xml文件添加以下内容:
在上面的XML配置中添加了 <destination>localhost:5044</destination>指定了我们上面配置logstash的监听地址,这样项目的日志才能被收集。
配置完成后可以启动项目,观察logstash窗口会有日志打印出来。

可视化查看

分别启动Es,Logstash,用户微服务,Kibana。打开kibana的地址:http://localhost:5601 默认是没有密码可以直接登陆的。
notion image
Kibana启动界面

创建索引模式

我这里使用了汉化,默认为英文。点击发现添加索引。索引名为Logstash配置方案中指定的index。所以可以看到Kibana为我们列出了可用或使用过的索引名。在索引模式的输入框中填入 logstash-test下一步即可。
索引名称可以使用匹配规则,可以匹配多个索引。
notion image
创建索引
下一步需要选择过滤字段,这里我们先选择时间戳,并点击创建索引模式。创建完成后出现如下系统管理>索引模式界面界面即创建成功,这里列出了可用的过滤字段,并可以在些删除该索引模式。
notion image
索引创建成功

查看数据

点击发现这里我们可以看到刚刚新建的索引模式的数据。为了测试效果我们访问项目:http://localhost:8000/1多刷新几次再次返回发现界面查看,可以看到项目的日志已经过来了。下方可以看到日志内容,柱形图可以看到时间点上日志统计,左边为可显示的字段。可以把左边的字段加到下方进入展示。
notion image
查看数据

添加筛选器

我们可以添加筛选器message筛选出我们打印的日志
notion image
添加筛选器
notion image
查找message

可视化分析

在可视化界面中,我们添加一些视图。
notion image
可视化
通过一些条件定制,最后把视图放到仪表盘查看
notion image
仪表盘

总结

以上只是简单的记录了下ELK的搭建与基本使用,对于生产部署还需要做一些配置。在学习过程中找到一些资料分享:
上一篇
注解结合切面实现键值转换
下一篇
Centos 7离线安装Nginx 配置负载均衡集群
Loading...
2024-11-11
Latest posts
ChatGPT与豆包的图像生成
2024-11-12
Windows10家庭版安装Docker记录
2024-11-12
Mybatis Log Parser插件
2024-11-11
职责链模式实践
2024-11-11
Feign调用超时时间配置不生效问题排查
2024-11-11
OpenFeign源码分析
2024-11-11