【腾讯云 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~