zoukankan      html  css  js  c++  java
  • [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}"

  • 相关阅读:
    抽象工厂模式
    工厂方法模式
    简单工厂模式
    多例模式
    深入分析 Java 中的中文编码问题
    PipedInputStream和PipedOutputStream详解
    单例模式
    Java IO和NIO文章目录
    wsdlLocation可以写成项目的相对路劲吗
    ssh框架配置事务管理器
  • 原文地址:https://www.cnblogs.com/wuzhenzhou/p/5888948.html
Copyright © 2011-2022 走看看