cloudpack の 自称 Sensu芸人 の かっぱこと 川原 洋平(@inokara)です。
0.12 系からの変更(ざっくりベース)
- 0.12.x 系からだと思われるが sensu-transport や sensu-em 等の機能毎に gem 化して sensu のコアコンポーネントのメンテナンス性を高めるとともに、拡張性をもたせた構造になってきていると思われる
- また、Ruby 2.1 系への対応とかもされているようだ
注意点
- 0.13 系は オフィシャルのリポジトリ(Stable or Unstable)には上がっていないので手動でインストールする
- 今回は従来 0.12.6 がインストールされている環境にて sensu のコアコンポーネントを差し替える方法でインストールを試みた
今回のゴール
- Sensu Server と Sensu API が起動してバージョン確認が出来るまで
- 追加で client を動かして Uchiwa で確認する
関連パッケージ
yum install openssl-devel
yum install gcc
yum install gcc-c++
yum install jq
jq は API で確認する際に利用する。
試行錯誤
依存関係パッケージの導入と git clone
トライアンドエラーの後に以下のような感じに。
/opt/sensu/embedded/bin/gem install multi_json --no-ri --no-rdoc -V -v '1.10.1'
/opt/sensu/embedded/bin/gem install sensu-em --no-ri --no-rdoc -V -v '2.2.0'
/opt/sensu/embedded/bin/gem install sensu-em --no-ri --no-rdoc -V -v '2.2.0'
/opt/sensu/embedded/bin/gem install sensu-logger --no-ri --no-rdoc -V -v '0.0.1'
/opt/sensu/embedded/bin/gem install sensu-settings --no-ri --no-rdoc -V -v '0.0.7'
/opt/sensu/embedded/bin/gem install sensu-extensions --no-ri --no-rdoc -V -v '0.0.5'
/opt/sensu/embedded/bin/gem install sensu-transport --no-ri --no-rdoc -V -v '0.0.7'
/opt/sensu/embedded/bin/gem install bundler --no-ri --no-rdoc -V
cd /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-transport-0.0.7
/opt/sensu/embedded/bin/bundle install
/opt/sensu/embedded/bin/gem install sensu-spawn --no-ri --no-rdoc -V -v '0.0.3'
/opt/sensu/embedded/bin/gem install uuidtools --no-ri --no-rdoc -V -v '2.1.4'
/opt/sensu/embedded/bin/gem install em-redis-unified --no-ri --no-rdoc -V -v '0.5.0'
cd /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/
git clone https://github.com/sensu/sensu.git
cd sensu
git checkout -b v0.13.0 v0.13.0.beta.2
cd /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/
mv sensu sensu-0.13
小手先修正
/opt/sensu/bin/sensu-server
vi /opt/sensu/bin/sensu-server
以下のように修正。
# gem 'sensu', version
# load Gem.bin_path('sensu', 'sensu-server', version)
load "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13/bin/sensu-server"
/opt/sensu/bin/sensu-api
vi /opt/sensu/bin/sensu-api
以下のように修正。
#gem 'sensu', version
#load Gem.bin_path('sensu', 'sensu-api', version)
load "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13/bin/sensu-api"
/opt/sensu/bin/sensu-client
vi /opt/sensu/bin/sensu-client
以下のように修正。
#gem 'sensu', version
#load Gem.bin_path('sensu', 'sensu-client', version)
load "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13/bin/sensu-client"
起動
/etc/init.d/sensu-server start
/etc/init.d/sensu-api start
動作確認
Sensu API で
curl -s localhost:4567/info | jq .
以下のように出力されればとりあえずゴール。
試行錯誤(2)
だいたい依存する gem が解ったので今度はバージョン変えて、ちょっと手抜きして。
cd /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems
git clone https://github.com/sensu/sensu.git
cd sensu
git checkout -b v0.13 v0.13.0
/opt/sensu/embedded/bin/bundle install
起動
/etc/init.d/sensu-server start
/etc/init.d/sensu-api start
/etc/init.d/sensu-client start
動作確認
Sensu API で
curl -s localhost:4567/info | jq .
以下のように出力されればとりあえずゴール。
curl -s localhost:4567/clients | jq .
以下のように出力されればスーパーマリオで言えば旗を掴んでお城の先があった感じ!(わかりにくい)
uchiwa でも…
とりあえず動いた
- って感じで
- あとは Dashboard と Client だけど…
- Dashbord は API が動いていればなんとかなりそう(代替でイケる)
元記事は、こちら