整合Springboot + docker + ELK 实现日志收集与展示

文章目录

1、ELK简介

在这里插入图片描述
ELK是Elastic公司的三个组件,这三个组件配合实现日志收集.

  • ElasticSearch: 日志分布式存储/搜索工具,原生支持集群功能,Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。无论是结构化文本还是非结构化文本,数字数据或地理空间数据,Elasticsearch都能以支持快速搜索的方式有效地对其进行存储和索引。
  • Logstash: 用于收集处理转发日志信息,能够从从本地磁盘,网络服务(自己监听端口,接受用户日志),消息队列等多个来源采集数据,转换数据,然后进行过滤分析并将数据发送到最喜欢的“存储库(Elasticsearch等)”中。Logstash能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用Grok从非结构化数据中派生出结构,从IP地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。
  • Kibana: 是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。并且可以为Logstash和ElasticSearch提供的日志分析友好的 Web 界面,可以汇总、分析和搜索重要数据日志。还可以让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(Dashboard)实时显示Elasticsearch查询动态

简单的说就是:Logstash收集、处理和转发信息,Elasticsearch存储和搜索信息,Kibana展示信息。

2、Logstash(简要介绍,因为Logstash需要做较多配置)

Logstash 事件处理管道具有三个阶段:inputsfiltersoutputinputs生成事件(收集),filters修改它们(处理),outputs将它们发送到其它地方(转发)。

2.1、inputs

input plugin用于提取数据, 这些数据可以来自日志文件,TCP或UDP侦听器,若干协议特定插件(如syslog或IRC)之一,甚至是排队系统(如Redis,AQMP或Kafka)。 此阶段使用围绕事件来源的元数据标记传入事件。
一些常用的输入:

  • file:从文件系统上的文件读取
  • redis: 从 redis 服务器读取
  • beats:处理 Beats 发送的事件。
  • tcp: 从 TCP 套接字读取事件

2.1、filters

filters是 Logstash 管道中的中间处理设备。如果事件符合特定条件,可以将过滤器与条件结合起来对事件执行操作。换句话说可以对事件进行一些处理。
一些有用的过滤器包括:

  • grok:解析和构造任意文本。 Grok 目前是 Logstash 中将非结构化日志数据解析为结构化和可查询的最佳方式。
  • mutate:对事件字段执行一般转换。 您可以重命名、删除、替换和修改事件中的字段。
  • drop:完全删除一个事件,例如调试事件。
  • geoip:添加有关 IP 地址地理位置的信息

2.1、outputs

outputs是 Logstash 管道的最后阶段,可以将已处理的事件加载到其他内容中,例如ElasticSearch或其他文档数据库,或排队系统,如Redis,AQMP或Kafka。 它还可以配置为与API通信。 一个事件可以有多个输出,但是一旦所有输出处理完成,事件就完成了它的执行。
一些常用的输出包括:

  • elasticsearch:将事件数据发送到 Elasticsearch。
  • file:将事件数据写入磁盘上的文件。
  • kafka:将事件写入 Kafka 主题

3、SpringBoot + ELK环境搭建

本机环境介绍:
linux:

pikaqiu@pikaqiu-virtual-machine:~$ uname -a
Linux pikaqiu-virtual-machine 5.11.0-27-generic #29~20.04.1-Ubuntu SMP Wed Aug 11 15:58:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Docker 环境:

pikaqiu@pikaqiu-virtual-machine:~$ docker version
Client: Docker Engine - Community
 Version:           20.10.0
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        7287ab3
 Built:             Tue Dec  8 18:59:53 2020
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.0
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值