如何安装 Elastic 栈中的 Logstash

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

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

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

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

 

安装 JAVA

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

$ java -version

 

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

localhost:~ liuxg$ java -version
java version "12.0.2" 2019-07-16
Java(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:

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.deb
sudo dpkg -i logstash-7.3.0.deb

rpm:

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.rpm
sudo rpm -i logstash-7.3.0.rpm

mac and linux:

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.tar.gz
tar -xzvf logstash-7.3.0.tar.gz

brew:

brew tap elastic/tap
brew install elastic/tap/logstash-full

win:

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

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

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

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

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

 

 

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

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

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

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

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

logstash.conf

input { 
  stdin{ }
}

output {
     stdout {
       codec => rubydebug
   }
}

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

./bin/logstash -f path_to_logstash_conf_file

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

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

input {
   stdin{}
}
output {
   file {
      path => "path_to_log_file/output.log"
   }
}

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

heartbeat.conf

input {
  heartbeat {
    interval => 10
    type => "heartbeat"
  }
}

output {
  stdout {
    codec => rubydebug
  }
}

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

./bin/logstash -f heartbeat.conf

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

{
      "@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

 

相关推荐