Нет такого файла для загрузки - sensu-handler
Просто начинаю работать с 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 от Github. У меня есть обработчики hipchat.rb и hipchat.json в одном каталоге (/etc/sensu/handlers) с настроенным ключом API и комнатой, но там не появляется никаких сообщений, когда я намеренно вызываю критическую ошибку, которая должна сработать:
{"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"}
На какой файл ссылается hipchat.rb, когда он пытается запросить "hipchat" в строке 5? hipchat.json?
2 ответа
Так как никто не взял бесплатные очки, ответив на вопрос. Ответ:
Используйте встроенный Ruby от Sensu для установки гема Hipchat:
sudo /opt/sensu/embedded/bin/gem install hipchat
Было бы неплохо, если бы где-то упоминалось, что есть драгоценный камень хипчат. Как я уже говорил, я новичок в Ruby, так что это было неочевидно.
Что касается не относящихся к Sensu проблем Ruby, похоже, мне просто нужно найти способ установить Ruby 1.9.
У меня была похожая проблема, но с использованием Sensu Mailer. Я узнал, что это было с rvm, не играющим хорошо со встроенным sensu ruby. По сути, мне пришлось переустановить главный сервер sensu с помощью rvm, используя системный ruby.
rvm --default use system
После переустановки Sensu я смог установить необходимые гемы, которые фактически установились бы в папку Sensu Embedded Ruby Gem.
/opt/sensu/embedded/bin/gem install mail --no-ri --no-rdoc -v 2.5.4