1、Logstash是什么?

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。如下图所示:

2、Logstash的数据输入

数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

3、Logstash的过滤器:实时解析和转换数据

数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。

Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响,例如:

(1)利用 Grok 从非结构化数据中派生出结构
(2)从 IP 地址破译出地理坐标
(3)...

4、Logstash的数据输出

尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。

Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。

5、安装Logstash

从官网下载,解压即可:https://www.elastic.co/cn/downloads/logstash

安装完毕之后,请先让我们通过最基本的Logstash管道来测试一下刚才安装的Logstash,如下所示:

bin/logstash -e 'input { stdin {} } output { stdout {} }'

备注:选项 -e 的意思是允许你从命令行指定配置

Logstash管道有两个必需的元素:输入和输出,以及一个可选元素:过滤器。输入插件从数据源那里消费数据,过滤器插件根据你的期望修改数据,输出插件将数据写入目的地。

启动以后,下面我们在命令行下输入"hello world"

[root@localhost logstash7]# bin/logstash -e 'input { stdin {} } output { stdout {} }'
Using JAVA_HOME defined java: /usr/local/java/jdk11
WARNING, using JAVA_HOME while Logstash distribution comes with a bundled JDK
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
.........
[2020-12-08T14:33:53,723][INFO][logstash.runner] Starting Logstash {"logstash.version"=>"7.10.0", "jruby.version"=>"jruby 9.2.13.0 (2.5.7) 2020-08-03 9a89c94bcc Java HotSpot(TM) 64-Bit Server VM 11.0.9+7-LTS on 11.0.9+7-LTS +indy +jit [linux-x86_64]"}
.........
[2020-12-08T14:33:58,603][INFO][logstash.agent] Successfully started Logstash API endpoint {:port=>9600}
# 启动完毕,输入hello world
hello world
{
    "host" => "localhost",
    "@timestamp" => 2020-12-08T06:34:13.871Z,
    "@version" => "1",
    "message" => "hello world"
}

标签: none

添加新评论