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

check_ceph_osd

Blame
  • check_netstat 1.83 KiB
    #!/bin/bash
    # ======================================================================
    #
    # Check NETSTAT and show connections
    #
    # requirements:
    # - netstat
    #
    # ----------------------------------------------------------------------
    # 2020-07-08  v1.0  <axel.hahn@iml.unibe.ch>
    # ======================================================================
    
    
    . `dirname $0`/inc_pluginfunctions
    
    
    # ----------------------------------------------------------------------
    # MAIN
    # ----------------------------------------------------------------------
    
    # --- check required tools
    ph.require netstat
    
    # --- check param -h
    if [ "$1" = "-h" ]; then
        echo "
        usage: $0 [ -w value -c value -h ]
    
            -w  Warning count  (optional)
            -c  Critical count (optional; must be larger than warning)
            -h  this help
    
        If there is no -w and -c then the result is always OK.
        "
        exit 0
    fi
    
    # --- set optional limits
    typeset -i iWarnLimit=`     ph.getValueWithParam 0 w "$@"`
    typeset -i iCriticalLimit=` ph.getValueWithParam 0 c "$@"`
    
    
    # --- count all connections
    tmpfile1=`mktemp`
    tmpfile=`mktemp`
    
    (netstat -wltun; netstat -wtun) | awk '{ print $6 }' | grep -E '(ESTABLISHED|LISTEN|TIME_WAIT)' >$tmpfile1
    typeset -i iTotal=`wc -l $tmpfile1 | awk '{ print $1 }'`
    
    if [ $iWarnLimit -gt 0 -a $iCriticalLimit -gt 0 ]; then
        ph.setStatusByLimit $iTotal $iWarnLimit $iCriticalLimit
    fi 
    
    ph.status "NETSTAT - count of connections: $iTotal"
    
    
    # --- add performance data
    cat $tmpfile1 | sort | uniq -c >$tmpfile
    # result is something like that:
    #      5 ESTABLISHED
    #     10 LISTEN
    #     77 TIME_WAIT
    
    ph.perfadd "established" "`grep ESTABLISHED $tmpfile | awk '{ print $1 }' `"
    ph.perfadd "listen"      "`grep LISTEN      $tmpfile | awk '{ print $1 }' `"
    ph.perfadd "time-wait"   "`grep TIME_WAIT   $tmpfile | awk '{ print $1 }' `"
    
    
    # --- bye
    rm -f $tmpfile $tmpfile1
    ph.exit