1

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

ハンドラーはGithub の Hipchat ハンドラーです。API キーとルームが設定された同じディレクトリ (/etc/sensu/handlers) にハンドラー hipchat.rb と hipchat.json がありますが、発生するはずの重大なエラーを意図的にトリガーしてもメッセージは表示されません。

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

せんすは、それ以外は楽しそうに走っているようです。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"}

5 行目で「hipchat」を要求しようとしているときに、hipchat.rb が参照しているファイルは何ですか? ヒップチャット.json?

4

2 に答える 2

3

誰も質問に答えて無料ポイントを獲得しなかったので。答えは次のとおりです。

Sensu の組み込み Ruby を使用して、Hipchat gem をインストールします。

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

Hipchat の gem があるとどこかで言及されていれば、どんなことでもよかったと思います。前述したように、私は Ruby を初めて使用するので、これは自明ではありませんでした。

Sensu Ruby 以外の問題については、Ruby 1.9 をインストールする方法を見つける必要があるようです。

于 2014-07-16T19:07:28.067 に答える
0

同様の問題がありましたが、sensuメーラーを使用していました。埋め込まれた sensu ruby​​ で rvm がうまく動作しないことが原因であることがわかりました。基本的に、システム ruby​​ を使用して、rvm で sensu マスター サーバーを再インストールする必要がありました。

rvm --default use system

sensu を再インストールした後、実際に sensu が埋め込まれた ruby​​ gem フォルダーにインストールされる必要な gem をインストールすることができました。

/opt/sensu/embedded/bin/gem install mail --no-ri --no-rdoc -v 2.5.4
于 2015-03-01T03:51:04.663 に答える