logstash 插件开发_为Java开发人员启动Logstash插件开发

logstash 插件开发

我最近对Logstash感兴趣,在玩了一段时间之后,我决定创建自己的自定义插件以供学习。 我选择从Reddit中提取数据是因为a)我经常使用它,并且b)没有提供该功能的现有插件。<!-more-→

Elasticsearch网站提供了相当详尽的文档来创建自己的Logstash插件。 这种努力需要Ruby技术-不仅是语言语法,而且还包括生态系统。 预期该站点假定读者熟悉两者。 不幸的是,这不是我的情况。 我一直在用Java开发很多东西,在Scala中涉猎了一些,我对Kotlin很有兴趣-最后,我只是一个JMV开发人员(这里和那里有一些Javascript)。 长话短说,我从Ruby开始。

在此阶段,有两种可能的方法:

  1. 阅读有关Ruby,Gems,bundler,整个九码的文档和教程,并在几个月(或更长时间)后回来
  2. 或通过潜入开发现场学习

鉴于我没有几个月,而且我所学的都足够好,所以我选择了第二个选项。 这篇文章是我所经历的步骤的总结,希望它可以使遇到同样情况的其他人受益。

第一步不是最难的

尽管可以从头开始使用新的Logstash插件,但文档建议从模板开始。 在线过程中对此进行了说明。 这一代产生以下结构:

$ tree logstash-input-reddit
├── Gemfile
├── LICENSE
├── README.md
├── Rakefile
├── lib
│   └── logstash
│       └── inputs
│           └── reddit.rb
├── logstash-input-reddit.gemspec
└── spec
    └── inputs
        └── reddit_spec.rb

对于Ruby新手而言,并不是很明显,该结构是Ruby Gem之一 。 通常,依赖项在关联的Gemfile中声明:

source 'https://rubygems.org'
gemspec

但是,在这种情况下, gemspec指令添加了一个附加的间接级别。 在关联的gemspec文件中不仅声明依赖项,还声明元数据。 这是Bundler实用工具gem的功能。

要安装依赖项,首先需要安装bundler gem。 是的,有摩擦...

Ruby是极限

尝试安装gem会产生以下结果:

 gem install bundler
Fetching: bundler-1.13.6.gem (100%)
ERROR:  While executing gem ... (TypeError)
    no implicit conversion of nil into String

第一个实现-花费了很多时间(浏览和阅读),是Ruby运行时有不同的风格。 简单的Ruby是不够的,Logstash插件开发:它需要一个专门的运行在JVM上运行又名 JRuby的

第二个认识是,虽然在一台机器上安装多个Ruby运行时很容易,但不可能同时运行它们。 尽管Homebrew使jruby软件包可用,但似乎每个系统只有一个单独的gem存储库,它对由不同运行时进行管理的React非常差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值