RaspberryPi (Raspberian) に SensuClient を導入しようとしたが挫折
Raspberry Pi を監視すべく、Sensu Client の導入をしてみたいと思います。
当然ながら、ARM版の Sensu はなく、自前でビルドする必要があります。 ビルドの方法は下記ページに記載しておりますが、最近だとDockerのコンテナでビルドするようです。
Raspberry Pi に Docker をインストール
$ sudo apt-get install docker.io
起動してみます。
$ sudo initctl start
docker start/running, process 21208
$ sudo initctl status docker
docker stop/waiting
うーむ、すぐに停止するようです。
/var/log/upstart/docker.log を見る限り、下記にエラーがあるようです。
[f59cf284] -job init_networkdriver() = ERR (1)
詳しくはわからないのですが、LXC非対応だからでしょうか。 Dockerでビルドするのは諦めました。
自力でビルドしてみる
Ruby のインストール
まずは、Rubyが必要なので、rbenv で Ruby をインストール
rbenvを使用したRuby環境構築 (Raspbian) - Qiita を参考に2.3.0をインストール。 依存パッケージは、libssl-dev libreadline-dev でいけました。 Gem のインストールに bundle が必要なので、bundler のインストールも忘れずに。
$ gem install bundler
sensu/sensu-build: Omnibus build tooling for Sensu. のページを参考にしてビルドをしてみました。
$ cd /tmp
$ wget https://github.com/sensu/sensu-build/archive/0.22.2-1.zip
$ unzip 0.22.2-1.zip
$ export SENSU_VERSION=0.22.2
$ export BUILD_NUMBER=1
$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Using rake 10.4.2
Installing json 1.6.6 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/mizu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/json-1.6.6/ext/json/ext/generator
/home/mizu/.rbenv/versions/2.3.0/bin/ruby -r ./siteconf20160319-24369-1ajseh4.rb extconf.rb
creating Makefile
current directory: /home/mizu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/json-1.6.6/ext/json/ext/generator
make "DESTDIR=" clean
current directory: /home/mizu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/json-1.6.6/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
In file included from generator.c:1:0:
../fbuffer/fbuffer.h: In function ‘fbuffer_to_s’:
../fbuffer/fbuffer.h:151:47: error: macro "rb_str_new" requires 2 arguments, but only 1 given
VALUE result = rb_str_new(FBUFFER_PAIR(fb));
^
../fbuffer/fbuffer.h:151:20: warning: initialization makes integer from pointer without a cast
VALUE result = rb_str_new(FBUFFER_PAIR(fb));
^
In file included from generator.c:2:0:
generator.c: In function ‘cState_aref’:
generator.h:96:27: warning: variable ‘state’ set but not used [-Wunused-but-set-variable]
JSON_Generator_State *state; \
^
generator.c:632:5: note: in expansion of macro ‘GET_STATE’
GET_STATE(self);
^
generator.c: In function ‘isArrayOrObject’:
generator.c:863:10: warning: unused variable ‘c’ [-Wunused-variable]
char c, *p = RSTRING_PTR(string), *q = p + string_len - 1;
^
Makefile:238: recipe for target 'generator.o' failed
make: *** [generator.o] Error 1
make failed, exit code 2
Gem files will remain installed in /home/mizu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/json-1.6.6 for inspection.
Results logged to /home/mizu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/armv7l-linux/2.3.0-static/json-1.6.6/gem_make.out
Using backports 2.6.2
Using clamp 0.3.1
Using ipaddress 0.8.0
Using mixlib-cli 1.5.0
Using mixlib-config 2.2.1
Using mixlib-log 1.6.0
Using mixlib-shellout 1.4.0
Using systemu 2.2.0
Using yajl-ruby 1.2.1
Using bundler 1.11.2
An error occurred while installing json (1.6.6), and Bundler cannot continue.
Make sure that `gem install json -v '1.6.6'` succeeds before bundling.
json のインストールでこけているみたい。
同じような悩みをもっている人がいるみたいだけど、いまいち解決方法が見つからない。。。
助けて。。。
Read other posts