01、Java Logstash_Kibana-LogStash 简介

LogStash 简介

  • 1.什么是 LogStash
  • 2.为什么使用 Logstash
  • 3.Logstash 工作原理
  • 3.1 Data Source
  • 3.2 Logstash Pipeline

1.什么是 LogStash

 

  • 官方文字说明:Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中
  • 通俗说明:Logstash 是一款强大的数据处理工具,常用作日志处理
  • 到目前为止,Logstash 已经有超过 200 个可用的插件,以及创建和贡献自己的灵活性。社区生态非常完善,对于我们可以放心的使用。
     

2.为什么使用 Logstash

  • 通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。
  • 这样一系列流程下来,对于我们排查故障以及及时找到故障原因,造成了比较大的麻烦。因此,如果我们能把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动
  • 所以日志集中管理功能就可以使用 ELK 技术栈进行实现。Elasticsearch 只有数据存储和分析的能力,Kibana 就是可视化管理平台。还缺少数据收集和整理的角色,这个功能就是 Logstash 负责的

3.Logstash 工作原理

3.1 Data Source

  • Logstash 支持的数据源有很多。例如对于日志功能来说只能能有日志记录和日志传递功能的日志都支持,Spring Boot 中默认推荐 logback 支持日志输出功能(输出到数据库、数据出到文件)。
  • 我们就使用 logback 进行日志输出给 Logstash

3.2 Logstash Pipeline

  • 整个整体就是 Logstash 的功能

在Logstash 中包含非常重要的三个功能:

  • a) Input
    输入源,一般配置为自己监听的主机及端口。DataSource 向指定的 ip 及端口输出日志, Input 输入源监听到数据信息就可以进行收集。
  • b) Filter
    过滤功能,对收集到的信息进行过滤(额外处理),也可以省略这个配置(不做处理)
  • Output
    把收集到的信息发送给谁。在 ELK 技术栈中都是输出给 Elasticsearch,后面数据检索和数据分析的过程就给 Elasticsearch 了
  • 最终效果:通过整体步骤就可以把原来一行日志信息转换为 Elasticsearch 支持的 Document 形式(键值对形式)的数据进行存储