cloudpack の 自称 Sensu芸人 の かっぱこと 川原 洋平@inokara)です。


0.12 系からの変更(ざっくりベース)

  • 0.12.x 系からだと思われるが sensu-transportsensu-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 .

以下のように出力されればとりあえずゴール。

sensu-013-install-try_01



試行錯誤(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 .

以下のように出力されればとりあえずゴール。

sensu-013-install-try_02

curl -s  localhost:4567/clients | jq .

以下のように出力されればスーパーマリオで言えば旗を掴んでお城の先があった感じ!(わかりにくい)

sensu-013-install-try_03


uchiwa でも…

sensu-013-install-try_04



とりあえず動いた

  • って感じで
  • あとは Dashboard と Client だけど…
  • Dashbord は API が動いていればなんとかなりそう(代替でイケる)

元記事は、こちら