如何安装 Elastic 栈中的 Logstash

2021-01-08 16:25:48 浏览数 (1)

腾讯云 Elasticsearch Service】高可用,可伸缩,云端全托管。集成X-Pack高级特性,适用日志分析/企业搜索/BI分析等场景


在今天的这篇文章中,我们来介绍如何在 Linux 及 MacOS 上安装 Elastic 栈中的 Logstash。

Logstash 是一个功能强大的工具,可与各种部署集成。 它提供了大量插件,可帮助您解析,丰富,转换和缓冲来自各种来源的数据。 如果你的数据需要 Beats中 没有的其他处理,则需要将 Logstash 添加到部署中。

Logstash 是 Elastic 栈非常重要的一部分,但是它不仅仅为 Elasticsearch 所使用。它可以介绍广泛的各种数据源。Logstash 可以帮利用它自己的 Filter 帮我们对数据进行解析,丰富,转换等。

最后,它可以把自己的数据输出到各种需要的数据储存地,这其中包括 Elasticsearch。

安装 JAVA

为了能够使得 Logstash 能正常工作,我们首先必须安装 JAVA。对于 Ubuntu 的使用者来说,可以参照我之前写的文章 “如何在Ubuntu上安装 Java” 来进行安装 Java。对于 MacOS 的开发者来说,可以直接在 Terminal 中打入命令:

代码语言:javascript复制
$ java -version

如果没有安装 Java,Mac 系统会自自动弹出一个对话框让我们去按照相应的步骤去安装 JAVA。最后别忘记设置自己的JAVA_HOME 变量。设置完以后,我们可以看到我的输出是像下面的:

代码语言:javascript复制
localhost:~ liuxg$ java -versionjava version "12.0.2" 2019-07-16Java(TM) SE Runtime Environment (build 12.0.2 10)Java HotSpot(TM) 64-Bit Server VM (build 12.0.2 10, mixed mode, sharing)localhost:~ liuxg$ echo $JAVA_HOME/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home

如果你能看到上面的输出,说明你的 JAVA 安装时成功的。

安装 Logstash

注意:在这里,我们以安装版本7.3为例。如果你想安装其它的版本,请把下面的数字改为相应的版本信息进行下载及安装。 我们必须安装和Elasticsearch版本一致的 Logstash。除了下面的命令之外,我们也可以在地址https://www.elastic.co/downloads/logstash 直接下载安装。在下面我们使用7.3.0版本为例来进行安装。如果你想安装其它的版本,直接在命令行中替换命令行中的7.3.0为你想要的版本号码。

要下载并安装 Logstash,请打开 Terminal 窗口并使用适用于您的系统的命令:

deb:

代码语言:javascript复制
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.debsudo dpkg -i logstash-7.3.0.deb

rpm:

代码语言:javascript复制
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.rpmsudo rpm -i logstash-7.3.0.rpm

mac and linux:

代码语言:javascript复制
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.tar.gztar -xzvf logstash-7.3.0.tar.gz

brew:

代码语言:javascript复制
brew tap elastic/tapbrew install elastic/tap/logstash-full

win:

代码语言:javascript复制
从Logstash下载页面下载Logstash 7.3.0 Windows zip文件。将zip文件的内容解压缩到计算机上的目录,例如CProgram Files。 使用短路径(少于30个字符)以避免在Windows上遇到文件路径长度限制。

至此,Logstash 的安装以及完成。

我们怎么检查我们的 Logstash 安装是正确的呢?

首先,让我们通过运行最基本的 Logstash 管道来测试您的 Logstash 安装。

Logstash 管道有两个必需元素,输入和输出,以及一个可选元素 filter。 输入插件使用来自源的数据,过滤器插件在您指定时修改数据,输出插件将数据写入目标。

要测试 Logstash 安装,请运行最基本的 Logstash 管道。 例如:

代码语言:javascript复制
cd logstash-7.3.0bin/logstash -e 'input { stdin { } } output { stdout {} }'

等Logstash完成启动后,我们在stdin里输入一下文字,我们可以看到如下的输出:

如果你在你的 Terminal 中看到和我一样的输出,说明你的 Logstash 安装时成功的。

 我们也可以创建一个自己的 logstash.conf 文件,并存于你的文件系统的一个目录下。这个 logstash.conf 的文件内容如下:

logstash.conf

代码语言:javascript复制
input {   stdin{ }} output {     stdout {       codec => rubydebug   }}

然后,我们可以使用如下的命令来运行我们的 logstash:

代码语言:javascript复制
./bin/logstash -f path_to_logstash_conf_file

通过这样的 -f 选项,我们可以启动任何一个我们喜欢路径的 longstash 配置文件。这个文件可能并不存在于当前的 Logstash 的安装目录中。以后我们的 Logstash 整个安装目录被删除,那么我们的配置文件也将在这里。

我们也可以通过如下的配置文件,把我们在 terminal 上输入的信息输出到一个文件中:

代码语言:javascript复制
input {   stdin{}}output {   file {      path => "path_to_log_file/output.log"   }}

比如,我们创建一个如下的 heartbeat.conf 文件:

heartbeat.conf

代码语言:javascript复制
input {  heartbeat {    interval => 10    type => "heartbeat"  }} output {  stdout {    codec => rubydebug  }}

我们可以使用入下的命令来运行:

代码语言:javascript复制
./bin/logstash -f heartbeat.conf

你就可以看到如下的输出:

代码语言:javascript复制
{      "@version" => "1",    "@timestamp" => 2020-05-04T23:10:15.893Z,          "type" => "heartbeat",          "host" => "liuxg",       "message" => "ok"}{      "@version" => "1",    "@timestamp" => 2020-05-04T23:10:25.885Z,          "type" => "heartbeat",          "host" => "liuxg",       "message" => "ok"}

更多关于 Logstash 的文章,请参阅 logstash。

参考

【1】https://www.elastic.co/guide/en/logstash/current/keystore.html

【2】 https://www.elastic.co/guide/en/logstash/current/installing-logstash.html


最新活动

包含文章发布时段最新活动,前往ES产品介绍页,可查找ES当前活动统一入口

Elasticsearch Service自建迁移特惠政策>>

Elasticsearch Service 新用户特惠狂欢,最低4折首购优惠 >>

Elasticsearch Service 企业首购特惠,助力企业复工复产>>

关注“腾讯云大数据”公众号,技术交流、最新活动、服务专享一站Get~

0 人点赞