Logstash 是 Elastic Stack 中功能最强大的 ETL 工具,相较于 beats 家族,虽然它略显臃肿,可是强在功能丰富、处理能力强大。你们在使用的过程当中确定也体验过其启动时的慢吞吞,那么有什么办法能够减小等待 Logstash 的启动时间,提升编写其处理配置文件的效率呢?本文给你们推荐一个小技巧,帮助你们解决以下两个问题,让你们更好地与这个笨重的你们伙相处。json
Logstash 启动的时候能够加上 -r
的参数来作到配置文件热加载,效果是:ruby
它的含义以下:工具
当你写好配置文件,好比 test.conf ,启动命令以下:测试
bin/logstash -f test.conf -r
启动完毕,修改 test.conf 的内容并保存后,过 1 秒钟,你会发现 Logstash 端有相似以下日志输出(注意红色框标记的部分),此时说明 reload 的成功。spa
若是你修改的配置文件有错误,会看到报错的日志,你能够根据错误提示修改。插件
至此,第一个问题解决!debug
编写配置文件的另外一个痛点是须要针对不一样格式的输入内容进行详细的测试,以防解析报错的状况出现。此时你们经常使用标准输入来解决这个问题(stdin input),可是标准输入对于文字编辑支持不太友好,并且配置文件热更新的功能也不支持标准输入。日志
在这里向你们推荐使用 http input 插件,配置以下:code
input{ http{ port => 7474 codec => "json" } }
而后你们再用本身喜欢的 http 请求工具,好比 POSTMan、Insomnia 等向 http://loclahost:7474
发送待测试内容便可,以下是 Insomnia 的截图。rem
至此,第二个问题也解决了。
相信看到这里,你们必定是跃跃欲试了,赶忙打开电脑,找到 Logstash,而后编辑 test.conf,输入以下内容:
input{ http{ port => 7474 codec => "json" } } filter{ } output{ stdout{ codec => rubydebug{ metadata => true } } }
而后执行启动命令:
bin/logstash -f test.conf -r
打开 Insomnia ,输入要测试的内容,点击发送,开始舒爽流畅的配置文件编写之旅吧!