ruby - 没有要加载的文件——sensu-handler

标签 ruby rubygems sensu

刚开始使用 Sensu 并在尝试测试处理程序时遇到以下错误:

/etc/sensu/handlers$ ./hipchat.rb
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- sensu-handler (LoadError)
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
from ./hipchat.rb:4

处理程序是 Hipchat handler from Github .我在同一目录 (/etc/sensu/handlers) 中有处理程序 hipchat.rb 和 hipchat.json,并设置了 API key 和房间,但是当我故意触发一个应该触发的严重错误时,那里没有消息出现:

 {"timestamp":"2014-07-15T22:32:38.936944+0000","level":"info","message":"handling event","event":{"client":{"name":"foo.bar.com","address":"10.101.105.41","subscriptions":["test","webservers","base"],"timestamp":1405463543},"check":{"handlers":["default","hipchat"],"command":"/etc/sensu/plugins/check-procs.rb -p cron -C 1 ","interval":60,"subscribers":["webservers"],"name":"cron_check","issued":1405463558,"executed":1405463558,"output":"CheckProcs CRITICAL: Found 0 matching processes; cmd /cron/\n","status":2,"duration":0.571,"history":["0","0","0","0","0","0","0","0","0","2","2","2","2","2","2","2","2","2","2","2","2"]},"occurrences":12,"action":"create"},"handler":{"type":"pipe","command":"cat","name":"stdout"}}

 $ which -a ruby
 /usr/bin/ruby
 $ which gem
 /usr/bin/gem
 $ ruby --version
 ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]
 $ lsb_release -a
 Description:   Ubuntu 10.04.4 LTS
 Codename:  lucid

除此之外,Sensu 似乎运行得很愉快。如果我设置 EMBEDDED_RUBY=true 并运行

$ /opt/sensu/embedded/bin/ruby hipchat.rb

我没有得到任何输出,但是当我退出 ruby​​ 时,我得到:

^C/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-plugin-0.3.0/lib/sensu-plugin/utils.rb:23:in `read': Interrupt
from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-plugin-0.3.0/lib/sensu-plugin/utils.rb:23:in `read_event'
from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-plugin-0.3.0/lib/sensu-handler.rb:53:in `block in <class:Handler>'
/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require': cannot load such file -- hipchat (LoadError)
from /opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
from hipchat.rb:5:in `<main>'

显然,Ruby 不是我的第一语言。
我需要做什么才能让 Ruby 找到/使用 sensu-handler?

编辑:

在 sensu 服务器日志中也注意到了这一点:

 {"timestamp":"2014-07-15T23:33:17.827369+0000","level":"info","message":"handler output","handler":{"type":"pipe","command":"/etc/sensu/handlers/hipchat.rb","severities":["critical","ok"],"name":"hipchat"},"output":"/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require': cannot load such file -- hipchat (LoadError)\n"}

当 hipchat.rb 试图在第 5 行要求“hipchat”时,它指的是什么文件? hipchat.json?

最佳答案

因为没有人通过回答问题来获得免费积分。答案是:

使用 Sensu 的嵌入式 Ruby 安装 Hipchat gem:

sudo /opt/sensu/embedded/bin/gem install hipchat

如果任何地方提到有一个 Hipchat gem ,那就太好了。正如我提到的,我是 Ruby 的新手,所以这不是显而易见的。

至于非 Sensu Ruby 问题,看来我只需要找到一种安装 Ruby 1.9 的方法即可。

关于ruby - 没有要加载的文件——sensu-handler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24769751/

相关文章:

ruby-on-rails - 与 Omniauth 一起设计。无法验证,因为 "Invalid credentials"。”

ruby - 使用 Ruby 删除特殊字符,但不删除空格

ruby-on-rails - Rails 3 安装错误 : "invalid value for @cert_chain"

ruby - 在 RHEL6 上安装 Oversip 面临的问题

ruby-on-rails - 期望输入结束的语法错误

ruby-on-rails - 从哈希数组返回特定​​值 - JSON

ruby - Ruby 中的 STL 支持

plugins - 将 Slack 插件安装到 Sensu 非企业版

mysql - Sensu 检查 MySQL 长时间运行的查询。

go - sensulib 包接口(interface)作为函数参数