http://www.ymc.ch/en/how-to-monitor-hbase-health-by-nagios
Gerd Königmdさんのスクリプトを参考にします。
環境はCentOS 6.4です。
hbaseのパスを確認
# which hbase
/usr/local/hbase/bin/hbase
編集します
# vi check_hadoop_hbase_state
先頭にJava HOMEを記述
# Java HOME
export JAVA_HOME=/usr/lib/jvm/java
export CLASS_PATH=$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
以下を書き換え
hbaseCmd=/usr/bin/hbase
->
hbaseCmd=/usr/local/hbase/bin/hbase
tmpFile=$(tempfile --suffix '_hbck_out')
->
tmpFile=$(mktemp --suffix '_hbck_out')
このようなスクリプトになりました。
スクリプトを設置
# cp check_hadoop_hbase_state /usr/lib64/nagios/plugins/
動作チェック
# /usr/lib64/nagios/plugins/check_hadoop_hbase_state
nrpeに追記
# emacs /etc/nagios/nrpe.cfg
command[check_hadoop_hbase_state]=sudo /usr/lib64/nagios/plugins/check_hadoop_hbase_state
rootで実行できるようにしておく
# visudo
nrpe ALL=(ALL) NOPASSWD:/usr/lib64/nagios/plugins/check_hadoop_hbase_state
nrpeをリスタート
# /etc/init.d/nrpe restart
Gerd Königmdさんのスクリプトを参考にします。
環境はCentOS 6.4です。
hbaseのパスを確認
# which hbase
/usr/local/hbase/bin/hbase
編集します
# vi check_hadoop_hbase_state
先頭にJava HOMEを記述
# Java HOME
export JAVA_HOME=/usr/lib/jvm/java
export CLASS_PATH=$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
以下を書き換え
hbaseCmd=/usr/bin/hbase
->
hbaseCmd=/usr/local/hbase/bin/hbase
tmpFile=$(tempfile --suffix '_hbck_out')
->
tmpFile=$(mktemp --suffix '_hbck_out')
このようなスクリプトになりました。
#!/bin/sh # # Description: # This plugin will return information about the status of HBASE # Java HOME export JAVA_HOME=/usr/lib/jvm/java export CLASS_PATH=$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH hbaseCmd=/usr/local/hbase/bin/hbase problemStrings="inconsistent|corrupt|failed|exception" if [ ! -x $hbaseCmd ]; then echo "ERROR: cannot execute $hbaseCmd" exit 2 fi tmpFile=$(mktemp --suffix '_hbck_out') if [ ! -f "$tmpFile" ]; then echo "Problem creating a tempfile for hbck output..." 1>&2 exit 1 fi $hbaseCmd hbck > $tmpFile if [ ! $? -eq 0 ]; then echo "Error while executing $hbaseCmd hbck" exit 2 fi count=$(grep -Ei -c "$problemStrings" $tmpFile) if [ $count -eq 0 ]; then message="Ok. HBase is healthy." exit_code=0 else error=$(grep -Ei "$problemStrings" $tmpFile) message="ERROR: $error" exit_code=2 fi hbckDetails=$(head -n 17 $tmpFile && tail -n 2 $tmpFile) if [ -f "$tmpFile" ]; then rm -f $tmpFile fi echo "$message | $hbckDetails" exit $exit_code
スクリプトを設置
# cp check_hadoop_hbase_state /usr/lib64/nagios/plugins/
動作チェック
# /usr/lib64/nagios/plugins/check_hadoop_hbase_state
nrpeに追記
# emacs /etc/nagios/nrpe.cfg
command[check_hadoop_hbase_state]=sudo /usr/lib64/nagios/plugins/check_hadoop_hbase_state
rootで実行できるようにしておく
# visudo
nrpe ALL=(ALL) NOPASSWD:/usr/lib64/nagios/plugins/check_hadoop_hbase_state
nrpeをリスタート
# /etc/init.d/nrpe restart