在今天的这篇文章中,我们来介绍如何在 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。除了下面的命令之外,我们也可以在地址 Download Logstash Free | Get Started Now | Elastic 直接下载安装。在下面我们使用 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】Secrets keystore for secure settings | Logstash Reference [8.4] | Elastic
【2】 Installing Logstash | Logstash Reference [8.4] | Elastic