ELK 日志框架搭建 (springboot 接入 elk)
创始人
2024-04-24 23:03:01
0

什么是ELK?

ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、Logstash 和 Kiabana 三部分组成。

Logstash

Logstash 主要用于收集日志,它是一个开源数据收集引擎,具有实时管道功能。Logstash 可以动态地将来自不同数据源的数据统一起来,并将数据标准化到您所选择的目的地。

Logstash 收集数据的过程主要分为以下三个部分:

  • 输入:数据(包含但不限于日志)往往都是以不同的形式、格式存储在不同的系统中,而 Logstash 支持从多种数据源中收集数据(File、Syslog、https://cloud.tencent.com/product/cdb?from=10680、消息https://cloud.tencent.com/product/tdmq?from=10680等等)。
  • 过滤器:实时解析和转换数据,识别已命名的字段以构建结构,并将它们转换成通用格式。
  • 输出:Elasticsearch 并非存储的唯一选择,Logstash 提供很多输出选择。

Elasticsearch

Elasticsearch (ES)是一个分布式的 Restful 风格的搜索和数据分析引擎,它具有以下特点:

  • 查询:允许执行和合并多种类型的搜索 — 结构化、非结构化、地理位置、度量指标 — 搜索方式随心而变。
  • 分析:Elasticsearch 聚合让您能够从大处着眼,探索数据的趋势和模式。
  • 速度:很快,可以做到亿万级的数据,毫秒级返回。
  • 可扩展性:可以在笔记本电脑上运行,也可以在承载了 PB 级数据的成百上千台服务器上运行。
  • 弹性:运行在一个分布式的环境中,从设计之初就考虑到了这一点。
  • 灵活性:具备多个案例场景。支持数字、文本、地理位置、结构化、非结构化,所有的数据类型都欢迎。

Kibana

Kibana 可以使海量数据通俗易懂。它很简单,基于浏览器的界面便于您快速创建和分享动态数据仪表板来追踪 Elasticsearch 的实时数据变化。其搭建过程也十分简单,您可以分分钟完成 Kibana 的安装并开始探索 Elasticsearch 的索引数据 — 没有代码、不需要额外的基础设施。
在 ELK 中,三大组件的大概工作流程如下图所示,由 Logstash 从各个服务中采集日志并存放至Elasticsearch 中,然后再由 Kiabana 从 Elasticsearch 中查询日志并展示给终端用户。

ELK的大致工作流程如下图所示:

在这里插入图片描述

ELK 安装部署

ES安装
logstash安装
kibana安装

简单 ELK 日志搭建

我们首先从简单的ELK日志框架开始搭建,简单的讲logstash中的数据输出到es中,然后再kibana进行展示。
首先我们需要再Logstash处进行相关的设置:

  • Logstash 基于插件开发和应用,包括输入、过滤器和输出三大类插件。输入插件指定了数据来源,过滤器插件则对数据做过滤清洗,而输出插件则指定了数据将被传输到哪里。在实际应用中,通常都是使用配置文件指定插件。

  • 配置文件的语法形式与命令行相同,要使用的插件是通过插件名称来指定。 例如,想要向 Elasticsearch 中发送数据,则应该使用名称为 elasticsearch 的输出插件。在Logstash 安装路径下的config目录中,有一个名为logstash-sample.conf 的文件,提供了配置插件的参考。
    在这里插入图片描述

  • 这个文件配置的输入插件为 beats,输出插件为 elasticsearch。复制这个文件并重命名为 logstash-es. conf (通过cp命令, 也可以直接创建空文件),下面通过修改这个文件配置一个从命令行提取输入,并传输到 Elasticsearch 的 Logstash 实例。
    按如下内容修改 logstash-es. conf 文件的输入输出插件:

input {stdin {}
}output {elasticsearch {hosts => ["http://192.168.42.111:9200"]index => "mylogstash1"#user => "elastic"#password => "changeme"}
}
  • 在上面的配置中,easticsearch 输出插件中的 hosts 参数指定了 Elasticsearch 地址和端口,index 参数则指定了存储的索引。Elasticsearch 索引不需要预先创建,但要保证它启动的地址和端口与配置文件中的一致。按如下方式启动 Logstash:
./logstash -f ../config/logstash-es.conf
  • 其中,-f 参数后面指定了配置文件的路径。启动后如果没有异常,可在命令行窗口中输入"Hello world!" 等任意字符串,Logstash 将把输入内容提取到指定的 Elastiesearch 服务中。通过 Kibana 开发工具输入 GET _cat/indices, 可以 看到 mylogstash1 这个索引已经创建出来了。
    在这里插入图片描述
  • 输入GET /mylogstash1/_search,则返回结果为
    在这里插入图片描述
  • 通过上图可以看到,Elasticsearch 为输入创建了一个 mylogstash1 索引,在命令行输入的字符已经被索引,在返回结果的_ source 字段上可以看到文档内容。

Spring boot 集成 ELK

ELK 收集 Spring boot 项目中的日志信息其实很简单,我们只需要做如下几步即可:

Logstash 配置

首先我们要对 Logstash 进行相关配置,将 input 设置为 从服务上获取数据,然后将数据输出到ES中。(如果是在服务器上操作,记得开放端口号)
可以自行创建一个新配置文件,启动的时候指定就可以了。

./logstash -f ../config/logstash-es.conf

配置文件:

input {tcp {mode => "server"host => "0.0.0.0"port => 4560codec => json_lines}
}
output {elasticsearch {hosts => "localhost:9200"index => "springboot-logstash-%{+YYYY.MM.dd}"}
}

Spring boot 项目

  • 引入依赖

     net.logstash.logbacklogstash-logback-encoder5.3
    
  • 添加日志文件
    在资源文件夹下面创建日志文件:logback-spring.xml;配置的地址要和logstash配置的input相同。



INFO${CONSOLE_LOG_PATTERN}utf8127.0.0.1:4560UTC{"logLevel": "%level","serviceName": "${springAppName:-}","pid": "${PID:-}","thread": "%thread","class": "%logger{40}","rest": "%message"}
  • 接口创建
    创建一个接口输出日志用来测试;
@Slf4j
@RestController
public class TestController {@GetMapping("/test")public void test(){log.info("测试日志!");}
}

测试

首先分别将 logstash ,es,kibana 启动,然后启动spring boot 项目调用接口。(es 中的数据可能会有延时,稍等会)
接口调用之后,我们就可以到 kibana 界面查看了,我们首先需要创建 index pattern 这样才能查询数据:
在这里插入图片描述

最后在 discover 界面选择对应索引就可以查看数据了。

在这里插入图片描述

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...