Logstash 简介



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

Logstash 使用 JRuby 编程语言编写,运行在 JVM 上,因此您可以在不同的平台上运行 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 提供各种插件来从不同的平台获取数据。一些最常用的插件是 - 文件、Syslog、Redis 和 Beats。

过滤器

这是 Logstash 的中间阶段,事件的实际处理在这里发生。开发者可以使用 Logstash 预定义的正则表达式模式来创建序列,以区分事件中的字段和可接受的输入事件的标准。

Logstash 提供各种插件来帮助开发者将事件解析和转换到所需的结构。一些最常用的过滤器插件是 - Grok、Mutate、Drop、Clone 和 Geoip。

输出

这是 Logstash 管道的最后一个阶段,输出事件可以格式化为目标系统所需的结构。最后,它使用插件将完成处理后的输出事件发送到目标。

Logstash 优势

以下几点说明了 Logstash 的各种优势。

  • Logstash 提供正则表达式模式序列来识别和解析任何输入事件中的各种字段。

  • Logstash 支持各种 Web 服务器和数据源来提取日志数据。

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

  • Logstash 是集中的,这使得它易于从不同的服务器处理和收集数据。

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

  • Logstash 使用 HTTP 协议,使用户能够升级 Elasticsearch 版本而无需同步升级 Logstash。

Logstash 缺点

以下几点说明了 Logstash 的各种缺点。

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

  • 使用 Logstash 有时会有点复杂,因为它需要对输入日志数据有很好的理解和分析。

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

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

广告