Sensu Handler给出了未定义的方法错误

时间:2015-02-03 17:45:25

标签: sensu

我们最近将OpsGenie处理程序(opsgenie.rb)更新为当前社区版本,找到here

我们的处理程序定义为:

"opsgenie-pager" : {
  "type": "pipe",
  "command": "/etc/sensu/handlers/opsgenie.rb -j opsgenie-pager"
}

我们opsgenie-pager的json配置是:

{
  "opsgenie-pager": {
  "customerKey": "<Our API Key>",
  "recipients": "<Our Schedule>,<Our Escalation>",
  "source": "Admiral Ackbar",
  "overwrite_quiet_hours": false,
  "tags": [ "admAckbar", "live", "pager" ]
  }
}

当检查返回“CRITICAL”并且调用opsgenie处理程序时,sensu-server.log报告:

{"timestamp":"2015-02-03T06:16:17.804061-0700","level":"info","message":"handler output","handler":{"type":"pipe","command":"/etc/sensu/handlers/opsgenie.rb -j opsgenie-pager","name":"opsgenie-pager"},"output":"/etc/sensu/handlers/opsgenie.rb:15:in `<class:Opsgenie>': undefined method `option' for Opsgenie:Class (NoMethodError)\n"}
{"timestamp":"2015-02-03T06:16:17.804210-0700","level":"info","message":"handler output","handler":{"type":"pipe","command":"/etc/sensu/handlers/opsgenie.rb -j opsgenie-pager","name":"opsgenie-pager"},"output":"\tfrom /etc/sensu/handlers/opsgenie.rb:13:in `<main>'\n"}

在我们的“dev instance”(vagrant box)中,我们能够成功使用OpsGenie处理程序来创建警报。

任何想法会导致undefined method 'option' for Opsgenie:Class (NoMethodError)错误?

1 个答案:

答案 0 :(得分:2)

看起来这是过时宝石的结果。

我偶然检查了我们的&#34; dev实例&#34;之间已安装的软件包(rpms和gems)。和&#34;生产&#34;。

我们的开发实例中的sensu-pluign gem(在vagrant up期间安装)是当前版本(1.1.0),而在Production上安装的版本是旧版本(0.6.3)。 / p>

使用

更新此gem
gem update sensu-plugin

解决了这个问题!