MuninでElasticSearchのリソース監視

 

server側

yum install apache
yum -y install munin --enablerepo=epel

関連パッケージ設置

/etc/httpd/conf.d/munin.conf

設定はいじらなくそのまま

htpasswd -c /etc/munin/munin-htpasswd sys

Basic認証

 

service httpd restart 
service munin-node start 
chkconfig munin-node on

再起動

 

これでMuninページにアクセスできることを確認

image

 

 

client側

 

 

elasticsearch監視用プラグイン設置(client側)

 

gitからプラグインダウンロード

git clone "https://github.com/y-ken/munin-plugin-elasticsearch.git"

該当プラグインファイルを「/usr/share/munin/plugins/」へコピー

cd munin-plugin-elasticsearch
cp -p elasticsearch_* /usr/share/munin/plugins/

シンボリックリンクしておく

ln -s /usr/share/munin/plugins/elasticsearch_* /etc/munin/plugins/

 

関連モジュール追加

僕の場合Json.pmモジュールが足りなかったので追記

Json.pmモジュール追加

perl -MCPAN -e shell 
cpan[1]> install JSON

 

プラグインから取得した結果を投げる設定

新規

/etc/munin/plugin-conf.d/elasticsearch

(or)既存

/etc/munin/plugin-conf.d/munin-node

へ以下の設定を追記

[elasticsearch_*] 
env.host [host name]
env.port 9200

 

新規の場合以下の設定が入ってる前提

vim /etc/munin/munin.conf
includedir /etc/munin/conf.d

 

 

再起動

service munin-node restart

 

動作確認

 

munin-node-configure --shell | grep elasticsearch

エラーが出ないか確認

「Wrong amount of autoconf」といのが出ていたが、正常に値を取れてるので特に問題ないようだ

 

追記したpluginがyesになっていることを確認

munin-node-configure --suggest | grep elastic 
elasticsearch_cache        | yes  | no 
elasticsearch_cluster_shards | yes  | no 
elasticsearch_docs         | yes  | no 
elasticsearch_gc_time      | yes  | no 
elasticsearch_index_size   | yes  | no 
elasticsearch_index_total  | yes  | no 
elasticsearch_jvm_memory   | yes  | no 
elasticsearch_jvm_pools_size | yes  | no 
elasticsearch_jvm_threads  | yes  | no 
elasticsearch_open_files   | yes  | no

or

/usr/share/munin/plugins/elasticsearch_cache autoconf
yes

http://blog.enjoitech.com/article/85

プラグインを実行して正常に値が出ることを確認

/usr/share/munin/plugins/elasticsearch_cache 
filter_size.value 25329376 
field_size.value 545788774

値が出る

再度muninの画面を見るとCategoriesにElasticsearchの項目が追加されていることがわかる

image

 

用語整理
autoconf

Munin付属のプラグイン追加・削除ツールであるmunin-node-configureに通知を行う項目である。

autoconfに対応しているプラグインはmunin-node-configureにより、自動で利用可能か確認し追加することができる。

 

エラーNon-zero exit during autoconf
munin-node-configure --shell | grep elasticsearch

してみたらこんなエラーが発生

# elasticsearch_cache:

#       Non-zero exit during autoconf (2)

 

この場合以下のようなコマンドを打つ

perl elasticsearch_cache autoconf 

or

echo '{"hoge":"fuga", "piyo" : {"fizz": "buzz"}}' | perl -MJSON -E "say to_json(decode_json(<>), { pretty => 1 });" 

するとエラーの原因が出る

Can’t locate JSON.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at elasticsearch_cache line 15.

BEGIN failed–compilation aborted at elasticsearch_cache line 15.

http://munin-monitoring.org/ticket/738

解決


以下のように足りないモジュールを追加

perl -MCPAN -e shell
cpan[1]> install JSON

yes

 

再度やってみると

echo '{"hoge":"fuga", "piyo" : {"fizz": "buzz"}}' | perl -MJSON -E "say to_json(decode_json(<>), { pretty => 1 });" 
{ 
   "piyo" : { 
      "fizz" : "buzz" 
   }, 
   "hoge" : "fuga" 
}

正常に結果が出た

 

参考したページ:

http://www.ramuda.co.jp/techlabo/archives/1484

http://www.seeds-std.co.jp/seedsblog/671.html

http://qiita.com/murachi1208/items/2d27d386a2891ccf4ed1

 http://www.clear-code.com/blog/2010/4/8.html

http://qiita.com/zembutsu/items/0f8e570c4016ddb4aefa

http://www.seeds-std.co.jp/seedsblog/671.html

http://webdir.tistory.com/219

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です