我们最近将OpsGenie处理程序(opsgenie.rb)更新为当前的社区版本,found 这里。
我们的处理程序被定义为:
"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" ]
}
}当检查作为“关键”返回并调用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实例“(迷航框)中,我们能够成功地使用OpsGenie处理程序来创建警报。
有什么想法会导致undefined method 'option' for Opsgenie:Class (NoMethodError)错误吗?
发布于 2015-02-03 17:45:25
看来这是过时的宝石造成的。
偶然的是,我在"dev实例“和"production”之间检查了已安装的包(rpms和gems)。
我们的dev实例中的sensu-pluign gem (在vagrant up期间安装)是当前版本(1.1.0),而生产上安装的版本是旧版本(0.6.3)。
用
gem update sensu-plugin解决了这个问题!
https://stackoverflow.com/questions/28305382
复制相似问题