
#!/bin/sh
# File	: cdot_log_ping.sh
# By	: Maarten.deBoer@Atos.net
# Subject	: Script to ping & log to AIP-destinations (AV- & Varonis-servers)
#(0.2)	: Add upload to Graphite
PGM="`basename $0|cut -d\. -f1`"
VER="0.2"
SSH="/usr/bin/ssh -n"
ETC="${HOME}/etc/${PGM}"
TMP="/tmp/${PGM}.$$"

GRAPHITESRV="10.192.109.224 2003"
NC="${HOME}/bin/nc"
GROUP="nl"

if [ ! -f ${ETC} ]; then
  echo " NO ETC (${ETC}) file. Exiting ..."
  exit 2
fi

cat ${ETC}|grep -v ^#|while read LINE
do
# nlnaf105; nlnafsaip79; lif|node;aip79|nlnaf105-01; VAR236; 145.219.226.236;
# ssh nlnaf105 'ping -vserver nlnafsaip79 -lif aip79 -show-detail true -destination 145.219.226.236 -count 1'
  CLUSTER="`echo ${LINE}|awk -F\; '{print $1}'`"
  SVM="`echo ${LINE}|awk -F\; '{print $2}'`"
  TYPE="`echo ${LINE}|awk -F\; '{print $3}'`"
  TYPEINFO="`echo ${LINE}|awk -F\; '{print $4}'`"
  DESTNAME="`echo ${LINE}|awk -F\; '{print $5}'`"
  DESTIP="`echo ${LINE}|awk -F\; '{print $6}'`"

  DOW="`date +%u`"
  LOGFILE="${HOME}/data/ping-${SVM}-${TYPEINFO}-${DESTNAME}-${DOW}.log"

  echo "  ping ${CLUSTER} ${SVM} ${TYPE} ${TYPEINFO} ${DESTNAME} ${DESTIP} into ${LOGFILE}  ..."

  echo -n "`date` "|tee -a ${LOGFILE}
  DATES="`date +%s`"
  if [ "${TYPE}" = "lif" ]; then 
    ${SSH} ${CLUSTER} "ping -vserver ${SVM} -lif ${TYPEINFO} -show-detail true -destination ${DESTIP} -count 5"|grep round-trip > ${TMP}
  fi
  if [ "${TYPE}" = "node" ]; then 
    ${SSH} ${CLUSTER} "ping -vserver ${SVM} -node ${TYPEINFO} -show-detail true -destination ${DESTIP} -count 5"|grep round-trip > ${TMP}
  fi

  cat ${TMP} |tee -a ${LOGFILE}

# round-trip min/avg/max/stddev = 0.584/0.644/0.700/0.047 ms
  MIN="`cat ${TMP}|cut -d\= -f2|awk -F\/ '{print $1}'`"
  AVG="`cat ${TMP}|cut -d\= -f2|awk -F\/ '{print $2}'`"
  MAX="`cat ${TMP}|cut -d\= -f2|awk -F\/ '{print $3}'`"

# upload data via NetCat to Graphite-server
HDR="filer.network.ping.${GROUP}"
  echo "${HDR}.${CLUSTER}.svm.${SVM}.${TYPE}.${TYPEINFO}.${DESTNAME}.min ${MIN} ${DATES}"|${NC} ${GRAPHITESRV}
  echo "${HDR}.${CLUSTER}.svm.${SVM}.${TYPE}.${TYPEINFO}.${DESTNAME}.avg ${MIN} ${DATES}"|${NC} ${GRAPHITESRV}
  echo "${HDR}.${CLUSTER}.svm.${SVM}.${TYPE}.${TYPEINFO}.${DESTNAME}.max ${MIN} ${DATES}"|${NC} ${GRAPHITESRV}

done

rm ${TMP}
exit 0

