我们正在做一个应用程序,我们必须从中找到消息触发RabbitMQ的位置。我们发现该消息是从process.rb文件发布到RabbitMQ的。我们尝试进行休息调用以获取发布到RabbitMQ的消息。所以我们在ubuntu机器上添加了一个gem rest-client-1.8.0。我们尝试在server / process.rb中添加一些代码,并在代码中添加了require'rest-client'。
我已添加标题“rest-client”,如下所示。
require "sensu/server/filter"
require "sensu/server/mutate"
require "sensu/server/handle"
require "rest-client"
错误:
/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require': cannot load such file -- rest-client (LoadError)
from /opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in
require'
来自/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.20.3/lib/sensu/server/process.rb:5:in <top (required)>'
from /opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in
require'
来自/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.20.3/bin/sensu-server:7:in
'
来自/ opt / sensu / bin / sensu-server:23:load'
from /opt/sensu/bin/sensu-server:23:in
'
Sensu安装在我们的ubuntu机器的路径“/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.20.3/lib/sensu”中。我们试图在sensu中安装rest-client gem,因为我们发现Sensu将在自己的Ruby上运行。但是我们遇到了同样的问题。你能告诉我们在哪里安装宝石吗?还有其他方法吗?我必须使用消息,我必须在休息呼叫中传递有效负载。
答案 0 :(得分:0)
您的Sensu安装安装具有嵌入式ruby
分发版。找到您的sensu,默认为/opt/sensu/embedded
,并从其中包含的gem
目录运行bin
。这应该将宝石应用到适当的红宝石位置。
答案 1 :(得分:0)
您正在使用嵌入式ruby并且此错误消息提示您没有安装rest-client gem。
如果你这样做,它并没有用
gem install rest-client
因为这不是你将使用的
/opt/sensu/embedded/bin/gem install rest-client
,以便将其安装到感知的嵌入式红宝石宝石
答案 2 :(得分:0)
这个问题太旧了,已经回答了,但是我正在基于Amazon ECS设置新的AMI,这个插件让我整天都遇到了上面的错误,所以什么都没做,尝试了一切。
即使更新了所有内容,但仍然没有运气,
然后尝试使用特定版本,该版本可以解决我的问题。
/opt/sensu/embedded/bin/gem install rest-client -v=1.7.2
这篇文章肯定值得赞扬。
https://docs.bmc.com/docs/ReleaseProcessMgt/50/installing/installing-alternate-ruby-interpreter