2

最近、OpsGenie ハンドラ ( opsgenie.rb) を最新のコミュニティ バージョンに更新しまし

ハンドラーは次のように定義されます。

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

json の設定opsgenie-pagerは次のとおりです。

{
  "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"}

「開発インスタンス」(vagrant ボックス) では、OpsGenie ハンドラーを正常に使用してアラートを作成できます。

undefined method 'option' for Opsgenie:Class (NoMethodError)エラーの原因は何ですか?

4

1 に答える 1

2

これは時代遅れの宝石の結果だったようです。

たまたま、「開発インスタンス」と「本番」の間にインストールされているパッケージ (rpm と gem) を確認しました。

開発インスタンス ( でインストール)のsensu-pluigngemvagrant upは現在のバージョン (1.1.0) でしたが、本番環境にインストールされたバージョンは古いバージョン (0.6.3) でした。

この宝石を更新する

gem update sensu-plugin

この問題を解決しました!

于 2015-02-03T17:45:25.257 に答える