hbase监控简单实用脚本

我们以前使用过的对hbase和hdfs进行健康检查,及剩余hdfs容量告警,简单易用

#/bin/bash

bin=`dirname $0`

bin=`cd $bin;pwd`

STATE_OK=0

STATE_WARNING=1

STATE_CRITICAL=2

STATE_UNKNOWN=3

STATE_DEPENDENT=4

source /etc/profile

DFS_REMAINING_WARNING=15

DFS_REMAINING_CRITICAL=5

ABNORMAL_QUERY="INCONSISTENT|CORRUPT|FAILED|Exception"

HADOOP_WEB_INTERFACE=hadoop的Namenode对外接口ip

# hbck and fsck report

output=/data/logs/cluster-status

$HBASE_HOME/bin/hbase hbck >> $output

$HADOOP_HOME/bin/hadoop fsck /hbase >> $output

# check report

count=`egrep -c "$ABNORMAL_QUERY" $output`

if [ $count -eq 0 ]; then

echo "[OK] Cluster is healthy." >> $output

else

echo "[ABNORMAL] Cluster is abnormal!" >> $output

# Get the last matching entry in the report file

last_entry=`egrep "$ABNORMAL_QUERY" $output | tail -1`

echo "($count) $last_entry"

exit $STATE_CRITICAL

fi

# Check RegionServer Status

dead_region_servers=`curl -s http://${HADOOP_WEB_INTERFACE}:60010/master-status | grep "Dead Region Servers" -A 500 | grep "Regions in Transition" -B 500 | egrep -o ‘target="_blank">.*</a>‘ | awk -F">" ‘{print $2}‘ | awk -F"<" ‘{print $1}‘`

if [ -z $dead_region_servers ];then

echo "[OK] All RegionServers is healthy."

echo "[OK] All RegionServers is healthy." >> $output

else

echo "[ABNORMAL] the dead regionserver list:" >> $output

echo $dead_region_servers >> $output

exit $STATE_CRITICAL

fi

# HDFS usage

dfs_remaining=`curl -s http://${HADOOP_WEB_INTERFACE}:50070/dfshealth.jsp |egrep -o "DFS Remaining%.*%" | egrep -o "[0-9]*\.[0-9]*"`

dfs_remaining_word="DFS Remaining%: ${dfs_remaining}%"

echo "$dfs_remaining_word" >> $output

# check HDFS usage

dfs_remaining=`echo $dfs_remaining | awk -F ‘.‘ ‘{print $1}‘`

if [ $dfs_remaining -lt $DFS_REMAINING_CRITICAL ]; then

echo "Low DFS space. $dfs_remaining_word"

exit_status=$STATE_CRITICAL

elif [ $dfs_remaining -lt $DFS_REMAINING_WARNING ]; then

echo "Low DFS space. $dfs_remaining_word"

exit_status=$STATE_WARNING

else

echo "HBase check OK - DFS and HBase healthy.

$dfs_remaining_word"

exit_status=$STATE_OK

fi

exit $exit_status

时间: 2024-08-10 11:49:47

hbase监控简单实用脚本的相关文章

【sehll学习】linux运维一个简单shell脚本监控系统内存

学习shell脚本入门后,慢慢要尝试编写一些脚本练练手,在这先简单的学习写个系统内存的监控. 1.首先先要确定一下截取一下需要关注的内存使用值,可使用free 命令来操作 free -m 显示 一般在监控内存是我们都是截取 第三行(-/+ buffers/cache)的值.确定后可以使用管道线和grep命令来获取这个的值. free -m | grep - | awk  '{print $4}' 获取到他的值为  858 当中 grep -  就是匹配一下要选取的内容,不太熟悉的可以学习一下gr

简单实用的启动脚本文件(更新中)

原来工作遇到的脚本,记下来几个,感觉很有用: 1 # Some shotcuts of the shells 2 # .startsh 3 # 4 # User specific aliases and functions 5 # 6 alias ..='cd ..' 7 alias ...='cd ../..' 8 alias cls=clear 9 alias ll='ls -al' 10 alias grep='grep -n' 11 alias net='netstat -n|grep'

简单实用的PHP防注入类实例

这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注入类.分享给大家供大家参考.具体如下: PHP防注入注意要过滤的信息基本是get,post,然后对于sql就是我们常用的查询,插入等等sql命令了,下面我给各位整理两个简单的例子,希望这些例子能给你网站带来安全. PHP防注入类代码如下: 复制代码 代码如下: <?php /**  * 参数处理类  *

微信公众平台之超简单实用的天气预报后台实现

微信公众平台之超简单实用的天气预报后台实现 概述,前段时间我在开发一个自己的微信公众平台,需要实现天气预报功能,在网上度娘了下,实现天气预报的接口API还蛮多的,有:中国气象局.雅虎和新浪等,中国天气预报接口需要全国的编码,雅虎的有时候访问不了,研究了下还是新浪提供的接口比较简单实用.新浪天气预报API的URL是http://php.weather.sina.com.cn/xml.php?city=%B1%B1%BE%A9&password=DJOYnieT8234jlsK&day=0.其

nagios 监控 网卡流量 脚本

#!/bin/bash # #Time     : 2014-06-23 #Author   : ftlynx #Function : use NET-SNMP get NIC traffic on nagios. Usage(){ echo "Usage: check_traffic.sh [options]" echo "     -H     Host IP." echo "     -P     net-snmp community string.

FMDB数据库的简单实用

引入和FMDB第三方类库,  demo地址:http://pan.baidu.com/s/1c0pbfxA 1 #define dataBasePath [[(NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)) lastObject]stringByAppendingPathComponent:dataBaseName] 2 #define dataBaseName @"MyDatabase

简单实用的CSS网页布局中文排版技巧

由于汉字的特殊性,在css网页布局中,中文排版有别于英文排版.排版是一个麻烦的问题,小编认为,作为一个优秀的网页设计师和网页制作人员,掌握一些简单的中文排版技巧是不可或缺的,所以今天特意总结了几个简单实用的技巧,希望对大家有所帮助. 一.如何设定文字字体.颜色.大小等 font-style设定斜体,比如font-style:italic font-weight设定文字粗细,比如font-weight:bold font-size设定文字大小,比如font-size:12px line-heigh

Java对象简单实用(计算器案例)

Java对象简单实用(计算器案例) 对 Java中的对象与属性,方法的使用,简单写了个案例 1 import java.util.Scanner; 2 class Calculste 3 { 4 int a; //定义两个整数 5 int b; 6 String option; //定义接收操作符的字符串 7 public void count(){ 8 9 //对操作符进行判断 10 switch(option){ 11 case "+": 12 System.out.println

php简单实用的操作文件工具类(创建、移动、复制、删除)

php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $file) )