一、背景环境
1、http://localhost:16010/master-status查看hbase环境发现是正常的。
2、zabbix监控hbase的hmaster和hregion也是正常的
但是有时候会出现region的不一致性问题,这个我们也需要进行监控。
二、监控方案
- shell脚本获取status的值,如果是OK则表示region是一一致性,如果是INCONSISTENT,表示有不一致问题。
- 在zabbix-agent.d目录下创建自定义监控项
- 在zabbix界面中创建item,graph,trigger.
1、shell脚本内容
注意:直接写hbase hbck|grep "Status"|awk '{print $2}'
这里执行hbase hbck 需要大概1分钟的时间,由于zabbix执行脚本最长时间为30秒,所以这里如果直接这样写指令,zabbix会报超时的错误,所以先将hbase hbck打印的日志到一个文件中
脚本一中的内容
#这里是执行hbase hbck 将打印在终端的内容写到txt文件中,然后脚本二再从这个txt中获取status的值。
cd /opt/software/shell
/opt/hbase/bin/hbase hbck >wyl.txt
脚本二中的内容
注意 这里由于调用wyl.txt文件中的日志,进而获取status的值,但是由于某个时间内,wyl.txt中的日志是脚本一正在往里面写,但是又没有写全,这时候脚本二获取到的是空值,所以脚本二的判断条件要注意一下。
#zabbix会调用这个脚本,调用这个脚本的时候就不会有打印的日志。
cd /opt/software/shell
status=`cat wyl.txt |grep "Status"|awk '{print $2}'`
if [ $status='INCONSISTENT' ]
then
echo 0
else
echo 1
fi
2、创建zabbix自定义项:
[root@namenode2 zabbix_agentd.d]# cat check_hbase_status.conf
# hbck获取status的值
UserParameter=hbase.hbck.status,sh /opt/software/shell/hbase_status.sh
3、重启zabbix-agent
service zabbix-agent restart
4、zabbix-get端获取监控的值
[root@kafzook1 opt]# zabbix_get -s 192.168.14.130 -k hbase.hbck.status
1
5、在zabbix界面进行监控item,graph,trigger.
这里之前写过很多次,这里就不去创建了。