Skip to content
Snippets Groups Projects
Select Git revision
  • a7bb1164b5f6a6e752f69665e2ec342d7aa4df7a
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_conn

Blame
  • check_couchdb 2.29 KiB
    #!/bin/bash
    # ======================================================================
    #
    # Icinga/ Nagios Check
    # COUCHDB
    #
    # ----------------------------------------------------------------------
    #
    # REQUIREMENTS:
    #   - curl 
    #
    # SYNTAX:
    #   - check_couchdb [-h] [-t FILE] -m MODE
    #
    # ----------------------------------------------------------------------
    # 2023-08-28  v0.1  <axel.hahn@unibe.ch>
    # ======================================================================
    
    . $(dirname $0)/inc_pluginfunctions
    
    export self_APPVERSION=0.1
    
    function showHelp(){
        local _self; _self=$(basename $0)
        cat <<EOF
    $( ph.showImlHelpHeader )
    
    Show couchdb status.
    
    SYNTAX:
    $_self [-h] [-t FILE] -m MODE
    
    OPTIONS:
        -h or --help   show this help.
        -m MODE        test a value; for debugging purposes
        -t FILE        take couchdb auth from Telegraph config
                       add file like /etc/telegraf/telegraf.conf
    
    EXAMPLE:
    $_self -m up
        Check if couchdb is up and running
    
    EOF
    }
    
    # --- check param -h
    case "$1" in
        "--help"|"-h")
            showHelp
            exit 0
            ;;
        *)
    esac
    
    sTelegraph=$(ph.getValueWithParam "" "t" "$@")
    sMode=$(ph.getValueWithParam '' "m" "$@")
    
    if [ -n "$sTelegraph" ]; then
            if [ ! -r "${sTelegraph}" ]; then
                    echo "ERROR: Telegraph config file [${sTelegraph}] cannot be read."
                    showHelp
                    ph.abort
            fi
            _user=$( grep "basic_username = " "${sTelegraph}" | cut -f 2 -d '"' )
            _pw=$(   grep "basic_password = " "${sTelegraph}" | cut -f 2 -d '"' )
            export COUCH_URL=http://${_user}:${_pw}@localhost:5984
    fi
    
    if [ -z "$COUCH_URL" ]; then
        echo "ERROR: I have no couchdb url + autentication yet."
        echo "Maybe you need to add -t /etc/telegraf/telegraf.conf."
        ph.abort
    fi
    
    case "${sMode}" in
        "up")
            response=$( curl -s "${COUCH_URL}/_up" )
            _status=$( jq '.status' <<< "${response}" | tr -d '"')
            if ! echo "$_status" | grep "ok" >/dev/null; then
                    ph.setStatus critical
            fi
            ph.status "Couchdb status (value in /_up is '$_status')"
            echo "Reponse: "; echo "${response}" | jq
            _status=$( jq '.status' <<< "${response}" | tr -d '"')
            ;;
        *)
            echo "ERRROR: [${sMode}] is an INVALID mode"
            showHelp
            ph.abort
    
    esac
    
    ph.exit