#!/usr/bin/php -q # : # Purpose : Check how the ESX's network performance # : # Info : http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1428 # : # Notes : No Support Given # : 1.0 - be sure to enter a trailing slash for the directory #============:============================================================== # 1.0 : 07/04/2006 # : Initial coding //PARAMS $ARG1 = $argv[1]; $ARG2 = $argv[2]; $ARG3 = $argv[3]; $ARG4 = $argv[4]; //DEFAULTS if ($ARG3 == "") { $ARG3 = 5000;} if ($ARG4 == "") { $ARG4 = 10000;} //FUNCTIONS function perf($ARG1,$ARG2,$ARG3,$ARG4) { // GET THE RXQQV VALUE ON THE REMOTE SYSTEM $COMMAND="/usr/bin/ssh -x -q -l root $ARG1 cat /proc/vmware/net/$ARG2 | grep Remote"; exec($COMMAND,$OUTPUT,$ERROR); if ($ERROR <> 0) { echo "WARN - Permission Error - check authorized_keys or NIC not present"; exit(0);} $output = str_replace("Remote: ", "",$OUTPUT[0]); $TxQOvQ = trim(substr($output, 110, 11)); //DEFINE THE TEMP STORAGE FILENAME $ARG2 = str_replace("/", "", $ARG2); $ARG2 = str_replace(":", "", $ARG2); $filename = "./$ARG2$ARG1.TxQOvQ"; //GET PREVIOUS VALUE $OUTPUT=""; $COMMAND="cat $filename"; exec($COMMAND,$OUTPUT,$ERROR); $previous = $OUTPUT[0]; //WRITE THE CURRENT VALUE $fp = fopen($filename, 'w') or exit(2); fwrite($fp,"$TxQOvQ"); fclose($fp); //CALC DIFFERENCE $diff = $TxQOvQ - $previous; //CHECKUPTIME switch (TRUE) { case ($diff > $ARG4): echo "CRITICAL - TxQOvQ($TxQOvQ)"; exit(2); break; case ($diff > $ARG3): echo "WARNING - TxQOvQ($TxQOvQ)"; exit(1); break; case ($diff < $ARG3): echo "OKAY - TxQOvQ($TxQOvQ)"; exit(0); break; default: echo "Something odd!"; exit(2); } } function help() { echo "check_esx_networkperformance.php %SERVER : perf check\n"; echo "check_esx_networkperformance.php HELP : this text\n"; exit(2); } //MAIN switch (TRUE) { case ($ARG1 <> ""): perf($ARG1,$ARG2,$ARG3,$ARG4); break; default: help(); } ?>