在今天的这篇文章中,我们来介绍如何在Linux及MacOS上安装Elastic栈中的Logstash。
Logstash是一个功能强大的工具,可与各种部署集成。 它提供了大量插件,可帮助您解析,丰富,转换和缓冲来自各种来源的数据。 如果您的数据需要Beats中没有的其他处理,则需要将Logstash添加到部署中。
Logstash是Elastic栈非常重要的一部分,但是它不仅仅为Elasticsearch所使用。它可以介绍广泛的各种数据源。Logstash可以帮利用它自己的Filter帮我们对数据进行解析,丰富,转换等。
最后,它可以把自己的数据输出到各种需要的数据储存地,这其中包括Elasticsearch。
为了能够使得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,请打开Terminal窗口并使用适用于您的系统的命令:
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.deb
sudo dpkg -i logstash-7.3.0.deb
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.rpm
sudo rpm -i logstash-7.3.0.rpm
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.tar.gz
tar -xzvf logstash-7.3.0.tar.gz
brew tap elastic/tap
brew install elastic/tap/logstash-full
从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的文件内容如下:
input {
stdin{ }
}
output {
stdout {
codec => rubydebug
}
}
然后,我们可以使用如下的命令来运行我们的logstash:
./bin/logstash -f path_to_logstash_conf_file
通过这样的方式,我们可以启动任何一个我们喜欢的longstash配置文件。这个文件可能并不存在于当前的Logstash的安装目录中。以后我们的Logstash整个安装目录被删除,那么我们的配置文件也将在这里。
我们也可以通过如下的配置文件,把我们在terminal上输入的信息输出到一个文件中:
input {
stdin{}
}
output {
file {
path => "path_to_log_file/output.log"
}
}