Logstash 与RocketMq集成
Logstash介绍与安装
什么是Logstash
Logstash是一个开源的数据收集引擎,可以动态地从多个不同的设备中收集数据、进行数据转换(transform),然后输出到“存储”中。这个存储可以是多种多样的。
最初logstash用于日志的收集分析,但现在其拥有了广泛的功能,是elastic生态栈中的重要组成部分。它可以利用各种插件,来应对各式各样的输入源、转换操作和输出源。如下图所示:
图中表示,输入源可以是各种渠道的,如数据库、redis等等,输出也可以是各种形式的,如输出到hadoop、ES等等。
Logstash quick start
Logstach需要java8、11、或者15.
我的主机是win10,java版本为:
同时,Logstash依赖于JAVA_HOME环境变量。
从https://www.elastic.co/cn/downloads/logstash 中可以直接下载压缩包。目前我的下载版本为7.13.2:
解压之后的目录结构为:
整个Logstash的pipeline可以抽象为输入-》转换-》输出:
(输出不一定是ES)
测试启动命令为:
bin\logstash -e 'input { stdin { } } output { stdout {} }
会报错:
这是因为win10下不能用单引号,改成双引号后可以成:
bin\logstash -e "input { stdin { } } output { stdout {} }"
其中,-e表示允许你从命令行指定配置,当然也可以从一个Logstash配置文件中启动。
最后一行会输出:
输入hello world,可以看见输出的message:
出现这些信息就表示已经安装成功并可以使用了。
在线安装logstash插件
因为我们最后是要生成一个Logstash插件,因此需要配置插件的环境。官网中指出,需要Ruby环境。
Gem安装
gem是一个Ruby的包管理工具,我的理解的话,就是类似于Nodejs的npm、python的pip。
可以在https://rubyinstaller.org/downloads/中下载ruby,右侧推荐的版本是Ruby+Devkit 2.7.X (x64)
安装基本就是一路点next就好。可以在命令行中查看版本:
默认情况下gem的源在国外,就类似于pip的源、maven的源也在国外一样:
可以将其修改为国内镜像站,https://gems.ruby-china.com/
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
在Logstash根目录下有一个Gemfile文件,也可以将其gem源修改:
改成: