[Linux][Redis][04]Monitor

#!/bin/bash

IP=`ifconfig eth0 | grep "inet " | awk '{ print $2}'`

INFLUXDB=192.168.0.28

MASTERLINKSTATUS=`redis-cli -h ${IP} info | grep master_link_status: | cut -d ':' -f 2`

HOST=`hostname`

ROLE=`redis-cli -h ${IP} info | grep role: | cut -d ':' -f 2`

ROLE_ID=""

LINK_STATUS_ID=""

CLIENT_LONGEST_OUTPUT_LIST=`redis-cli -h ${IP} info clients | grep client_longest_output_list: | grep -o "[0-9]\+"`

SENTINEL_STATUS=`redis-cli -h ${IP} -p 26379 info Sentinel | grep sentinel_tilt: | grep -o "[0-9]\+"`

SENTINEL_CLIENTS=`redis-cli -h ${IP} -p 26379 info clients | grep connected_clients: | grep -o "[0-9]\+"`

SENTINEL_OPS=`redis-cli -h ${IP} -p 26379 info Stats | grep instantaneous_ops_per_sec: | grep -o "[0-9]\+"`

SENTINEL_PUBSUB_PATTERNS=`redis-cli -h ${IP} -p 26379 info Stats | grep pubsub_patterns: | grep -o "[0-9]\+"`

 

if [[ ${ROLE} = slave* ]]; then

        ROLE_ID="0"

        if [[ ${MASTERLINKSTATUS} = up* ]]; then

                LINK_STATUS_ID="1"

        elif [[ ${MASTERLINKSTATUS} = down* ]]; then

                LINK_STATUS_ID="0"

        else

                LINK_STATUS_ID="2"

        fi

elif [[ ${ROLE} = master* ]]; then

        ROLE_ID="1"

        if [[ ${MASTERLINKSTATUS} = up* ]]; then

                LINK_STATUS_ID="1"

        elif [[ ${MASTERLINKSTATUS} = down* ]]; then

                LINK_STATUS_ID="0"

        else

                LINK_STATUS_ID="2"

        fi

else

        ROLE_ID="2"

        LINK_STATUS_ID="2"

fi

 

if [[ ${CLIENT_LONGEST_OUTPUT_LIST} =~ ^[0-9]+$ ]]; then

        CLIENT_LONGEST_OUTPUT_LIST=${CLIENT_LONGEST_OUTPUT_LIST}

else

        CLIENT_LONGEST_OUTPUT_LIST="0"

fi

 

if [[ ${CLIENT_BIGGEST_INPUT_BUF} =~ ^[0-9]+$ ]]; then

        CLIENT_BIGGEST_INPUT_BUF=${CLIENT_BIGGEST_INPUT_BUF}

else

        CLIENT_BIGGEST_INPUT_BUF="0"

fi

 

if [[ ${SENTINEL_STATUS} = 0* ]]; then

        SENTINEL_STATUS="1"

else

        SENTINEL_STATUS="0"

fi

 

if [[ ${SENTINEL_CLIENTS} =~ ^[0-9]+$ ]]; then

        SENTINEL_CLIENTS=${SENTINEL_CLIENTS}

else

        SENTINEL_CLIENTS="0"

fi

 

if [[ ${SENTINEL_PUBSUB_PATTERNS} =~ ^[0-9]+$ ]]; then

        SENTINEL_PUBSUB_PATTERNS=${SENTINEL_PUBSUB_PATTERNS}

else

        SENTINEL_PUBSUB_PATTERNS="0"

fi

 

if [[ ${SENTINEL_OPS} =~ ^[0-9]+$ ]]; then

        SENTINEL_OPS=${SENTINEL_OPS}

else

        SENTINEL_OPS="0"

fi

 

curl -X POST "http://$INFLUXDB:8086/write?db=telegraf" -d "redisstatus,host=${HOST} roleid=${ROLE_ID},linkstatusid=${LINK_STATUS_ID},client_longest_output_list=${CLIENT_LONGEST_OUTPUT_LIST},client_biggest_input_buf=${CLIENT_BIGGEST_INPUT_BUF},sentinel_status=${SENTINEL_STATUS},sentinel_clients=${SENTINEL_CLIENTS},sentinel_ops=${SENTINEL_OPS},sentinel_pubsub_patterns=${SENTINEL_PUBSUB_PATTERNS}"

posted @ 2016-09-20 15:13  wuzhenzhou  阅读(189)  评论(0编辑  收藏  举报