Logstash 简明教程

Logstash - Introduction

Logstash 是一种基于 filter/pipes 模式的工具,用于收集、处理和生成日志或事件。它有助于集中化实时分析来自不同来源的日志和事件。

Logstash 用 JRuby 编程语言编写,在 JVM 上运行,因此可以在不同平台上运行 Logstash。它从几乎所有类型的来源收集不同类型的数据,例如日志、分组、事件、事务、时间戳数据等。数据源可以是社交数据、电子商务、新闻文章、CRM、游戏数据、Web 趋势、财务数据、物联网、移动设备等。

Logstash General Features

Logstash 的一般功能如下 −

  1. Logstash 可以从不同来源收集数据,并发送到多个目标。

  2. Logstash 可以处理所有类型的日志数据,例如 Apache 日志、Windows 事件日志、网络协议数据、来自标准输入的数据等等。

  3. Logstash 还可以处理 http 请求和响应数据。

  4. Logstash 提供了多种过滤器,可帮助用户通过解析和转换数据来从数据中发现更多含义。

  5. Logstash 还可以用于处理物联网中的传感器数据。

  6. Logstash 是开源的,根据 Apache 许可证版本 2.0 提供。

Logstash Key Concepts

Logstash 的关键概念如下 −

Event Object

它是 Logstash 中的主要对象,它封装了 Logstash 管道中的数据流。Logstash 使用此对象来存储输入数据和添加在过滤阶段创建的额外字段。

Logstash 为开发人员提供一个事件 API 来操作事件。在本教程中,此事件被称作各种名称,如日志数据事件、日志事件、日志数据、输入日志数据、输出日志数据等。

Pipeline

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

Input

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

Filter

这是 Logstash 的中间阶段,在此阶段发生实际的事件处理。开发人员可以使用 Logstash 预先定义的 Regex 模式,为事件中的字段之间的区别以及接受的输入事件的标准创建序列。

Logstash 提供各种插件来帮助开发人员解析事件并将其转换成为所需的结构。一些最常用的过滤器插件包括 Grok、Mutate、Drop、Clone 和 Geoip。

Output

这是 Logstash 管道中的最后一个阶段,在此阶段可以将输出事件格式化为目标系统所需的结构。最后,它在完全处理后使用插件将输出事件发送到目标。一些最常用的插件包括 Elasticsearch、文件、Graphite、Statsd 等。

Logstash Advantages

以下几点解释了 Logstash 的各种优势。

  1. Logstash 提供 regex 模式序列来识别和解析任何输入事件中的各种字段。

  2. Logstash 支持各种 Web 服务器和数据源以提取日志数据。

  3. Logstash 提供多个插件来解析和转换日志数据成任何用户所需的格式。

  4. Logstash 是集中的,这使得从不同的服务器处理和收集数据变得容易。

  5. Logstash 支持许多数据库、网络协议和其他服务作为日志事件的目标源。

  6. Logstash 使用 HTTP 协议,这使用户能够在无需分步升级 Logstash 的情况下升级 Elasticsearch 版本。

Logstash Disadvantages

以下几点阐述了 Logstash 的各种劣势。

  1. Logstash 使用 HTTP,这会对日志数据的处理产生负面影响。

  2. 使用 Logstash 有时可能会有些复杂,因为它需要对输入日志数据有充分的理解和分析。

  3. 过滤器插件不是通用的,所以用户可能需要找到正确的模式序列才能避免解析错误。

在下一章中,我们将了解 ELK 堆栈是什么以及它如何帮助 Logstash。