zookeeper监控

#! /bin/sh

source  ~/.bash_profile

arr_zk=("127.0.0.3:1999" "127.0.0..4:1999" "127.0.0..5:1999")

printf "\n"

date +"###############zookeeper      é %Y-%m-%d %H:%M:%S ######################"

check_zk_status()

{

    #sysdate=`date "+%Y-%m-%d %H:%M:%S"`

    #echo ""

    #echo "##########    ZK  $sysdate    ##########"

    echo ""

    echo "------------------------------------------------------------------------------------------------------------------------------------"

printf "%-16.16s%-10.10s%-20.20s%-10.10s%-10.10s%-16.16s%-16.16s%-10.10s\n" "IP"  "Port" "Delay(min/avg/max)" "Accept" "Send" "Connections" "Outstanding" "Mode"·                                          " "                        "

if [ "${#arr_zk[@]}" = "0"  ]

  then

        echo "zookeeper"

fi

#echo ${#arr_zk[@]}

for((i=0;i<${#arr_zk[@]};i++))

do

                        # ip

                        zk_ip=`echo ${arr_zk[i]}|cut -d "," -f1 |cut -d ":" -f1`

                        zk_port=`echo ${arr_zk[i]}|cut -d "," -f1 |cut -d ":" -f2`

                        #echo zk_ip:$zk_ip

                        #echo zk_port:$zk_port

                        get_zk_info $zk_ip $zk_port

done

}

get_zk_info(){

if [ ! -f $ZOOKEEPER_HOME/share/zookeeper/zookeeper-*.jar ] ; then

                echo $ZOOKEEPER_HOME/share/zookeeper/zookeeper-*.jar                                   

else

                lib_zk_jar=`echo $ZOOKEEPER_HOME/share/zookeeper/zookeeper-*.jar`

fi

if [ ! -f $ZOOKEEPER_HOME/share/zookeeper/log4j*.jar ] ; then

                echo $ZOOKEEPER_HOME/share/zookeeper/log4j*.jar                                   

else

                lib_log4j_jar=`echo $ZOOKEEPER_HOME/share/zookeeper/log4j*.jar`

fi

  tmp_file=./temp_zk.txt

        if ( [ "x$1" != "x" ] && [ "x$2" != "x" ] );then

                _zk_ip=$1

                _zk_port=$2

                # 0      1                                               

                _zk_flag=0

                _zk_cmd="java  -cp $lib_zk_jar:$lib_log4j_jar:.:$CLASSPATH org.apache.zookeeper.client.FourLetterWordMain $_zk_ip $_zk_port srvr "

                                #echo $_zk_cmd

                        zk_info=""

                        #_echo _zk_cmd $_zk_cmd

                        $_zk_cmd 1>    $tmp_file 2>/dev/null

                        zk_version="-"

                        zk_Latency="-"

                        zk_Received="-"

                        zk_Sent="-"

                        zk_Connections="-"

                        zk_Outstanding="-"

                        zk_Mode="-"

                        zk_NodeCount="-"

                        while read oneline ; do

                                #echo oneline $oneline

                                if [ "x$oneline" = "x" ];then

                                        continue;

                                fi

                                # zk 1  °      ±                 

                                if [ `echo $oneline |grep "version" |wc -l` = "1" ];then

                                        #_echo                        version

                                        zk_version=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_version $zk_version

                                fi

                                # zk 2                         

                                if [ `echo $oneline |grep "Latency" |wc -l` = "1" ];then

                                        #_echo                        Latency

                                        zk_Latency=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_Latency $zk_Latency

                                fi

                                # zk 3                                     

                                if [ `echo $oneline |grep "Received" |wc -l` = "1" ];then

                                        #_echo                        Received

                                        zk_Received=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_Received $zk_Received

                                fi

                                # zk 4              ·                 

                                if [ `echo $oneline |grep "Sent" |wc -l` = "1" ];then

                                        #_echo                        Sent

                                        zk_Sent=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_Sent $zk_Sent

                                fi

                                # zk 5                          Connections

                                if [ `echo $oneline |grep "Connections" |wc -l` = "1" ];then

                                        #_echo                        Connections

                                        zk_Connections=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_Connections $zk_Connections

                                fi

                                # zk 6  Outstanding

                                if [ `echo $oneline |grep "Outstanding" |wc -l` = "1" ];then

                                #_echo                        Outstanding

                                        zk_Outstanding=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_Outstanding $zk_Outstanding

                                fi

                                # zk 7  Zxid

                                if [ `echo $oneline |grep "Zxid" |wc -l` = "1" ];then

                                        #_echo                        Zxid

                                        zk_Zxid=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_Zxid $zk_Zxid

                                fi

                                # zk 8  Mode

                                if [ `echo $oneline |grep "Mode" |wc -l` = "1" ];then

                                        #_echo                        Mode

                                        zk_Mode=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_Mode $zk_Mode

                                fi

                                # zk 9  Mode

                                if [ `echo $oneline |grep "Node count" |wc -l` = "1" ];then

                                        #_echo                        Node count

                                        zk_NodeCount=`echo $oneline |awk -F ':' '{print $2}'`

                                        #_echo zk_NodeCount $zk_NodeCount

                                fi

                        done < $tmp_file

                        #printf "%-16.16s%-10.10s%-19.19s%-10.10s%-10.10s%-16.16s%-16.16s%-10.10s\n" "$_zk_ip"  "$_zk_port" "$zk_Latency" "$zk_Received" "$zk_Sent" "$zk_Connections" "$zk_Outstanding" "$zk_Mode"

      #printf "%-16.16s%-10.10s%-10.10s\n" "$_zk_ip"  "$_zk_port" "$zk_Mode"

      printf "%-16.16s%-10.10s%-20.20s%-10.10s%-10.10s%-16.16s%-16.16s%-10.10s\n" "$_zk_ip"  "$_zk_port" "$zk_Latency" "$zk_Received" "$zk_Sent"  "$zk_Connections" "$zk_Outstanding" "$zk_Mode"

        fi

rm -f $tmp_file

}

check_zk_status

你可能感兴趣的:(zookeeper监控)