Logstash - 教程

  • 简述

    Logstash是一个开源的、集中的、事件和日志管理器。它是 ELK(ElasticSearch、Logstash、Kibana)技术栈的一部分。在本教程中,我们将了解 Logstash 的基础知识、它的功能以及它所具有的各种组件。
    本教程专为希望通过简单易行的步骤学习 Logstash 及其编程概念的基础知识的软件专业人士而设计。它通过合适的示例描述了 Logstash 的组件和功能。
    读者应该对 RubyJSON 和 Web 技术有基本的了解。此外,这将有助于读者熟悉日志记录技术和正则表达式模式。
    Logstash 是一种基于过滤器/管道模式的工具,用于收集、处理和生成日志或事件。它有助于集中和实时分析来自不同来源的日志和事件。
    Logstash 是使用在 JVM 上运行的 JRuby 编程语言编写的,因此您可以在不同的平台上运行 Logstash。它从几乎所有类型的来源收集不同类型的数据,如日志、数据包、事件、事务、时间戳数据等。数据源可以是社交数据、电子商务、新闻文章、CRM、游戏数据、网络趋势、金融数据、物联网、移动设备等。
  • Logstash 一般功能

    Logstash 的一般特性如下:
    • Logstash 可以从不同来源收集数据并发送到多个目的地。
    • Logstash 可以处理所有类型的日志记录数据,例如 Apache 日志、Windows 事件日志、网络协议数据、来自标准输入的数据等等。
    • Logstash 还可以处理 http 请求和响应数据。
    • Logstash 提供了多种过滤器,通过解析和转换,帮助用户在数据中找到更多的意义。
    • Logstash 还可用于处理物联网中的传感器数据。
    • Logstash 是开源的,在 Apache 许可证 2.0 版下可用。
  • Logstash 关键概念

    Logstash 的关键概念如下:

    事件对象

    它是Logstash中的主要对象,封装了Logstash管道中的数据流。Logstash 使用此对象来存储输入数据并添加在过滤阶段创建的额外字段。
    Logstash 为开发人员提供了一个事件 API 来操作事件。在本教程中,此事件被称为各种名称,如记录数据事件、日志事件、日志数据、输入日志数据、输出日志数据等。

    管道

    它由 Logstash 中从输入到输出的数据流阶段组成。输入数据进入管道,以事件的形式进行处理。然后以用户或终端系统所需的格式发送到输出目的地。

    输入

    这是 Logstash 管道中的第一阶段,用于获取 Logstash 中的数据以进行进一步处理。Logstash 提供了各种插件来从不同平台获取数据。一些最常用的插件是——File、Syslog、Redis 和 Beats。

    筛选

    这是 Logstash 的中间阶段,发生事件的实际处理。开发人员可以使用 Logstash 的预定义正则表达式模式来创建序列,以区分事件中的字段和接受的输入事件的标准。
    Logstash 提供了各种插件来帮助开发人员解析事件并将其转换为所需的结构。一些最常用的过滤器插件是——Grok、Mutate、Drop、Clone 和 Geoip。

    输出

    这是 Logstash 管道的最后一个阶段,输出事件可以格式化为目标系统所需的结构。最后,它使用插件将完成处理后的输出事件发送到目的地。一些最常用的插件是 - Elasticsearch、File、Graphite、Statsd 等。
  • Logstash 优势

    以下几点解释了 Logstash 的各种优势。
    • Logstash 提供正则表达式模式序列来识别和解析任何输入事件中的各种字段。
    • Logstash 支持用于提取日志数据的各种 Web 服务器和数据源。
    • Logstash 提供了多个插件来解析日志数据并将其转换为任何用户想要的格式。
    • Logstash 是集中式的,这使得处理和收集来自不同服务器的数据变得容易。
    • Logstash 支持许多数据库、网络协议和其他服务作为日志事件的目标源。
    • Logstash 使用 HTTP 协议,该协议使用户能够升级 Elasticsearch 版本,而无需在锁定步骤中升级 Logstash。
  • Logstash 的缺点

    以下几点解释了 Logstash 的各种缺点。
    • Logstash 使用 http,这会对日志数据的处理产生负面影响。
    • 使用 Logstash 有时会有点复杂,因为它需要对输入的日志数据有很好的理解和分析。
    • 过滤器插件不是通用的,因此,用户可能需要找到正确的模式序列以避免解析错误。
    在下一章中,我们将了解 ELK Stack 是什么以及它如何帮助 Logstash。