tsi-agent.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!/bin/bash
  2. SSIP_API_URI="http://10.4.4.40:8444/api/system-status"
  3. SSIP_API_TIMEOUT=3
  4. HEADER_CONTEXT_TYPE="Content-Type: application/json"
  5. # Check hostname
  6. name=$HOSTNAME
  7. echo -e "Hostname:" $name
  8. # Check OS Type
  9. otype=$(uname -o)
  10. echo -e "Operating System Type:" $otype
  11. # Check OS Release Version and Name
  12. oname=`cat /etc/os-release | grep 'NAME' | grep -v 'PRETTY_NAME' | grep -v 'CODENAME' | cut -f2 -d\"`
  13. over=`cat /etc/os-release | grep 'VERSION' | grep -v '_' | cut -f2 -d\"`
  14. echo "OS Name:" $oname
  15. echo "OS Version:" $over
  16. # Check Architecture
  17. oarch=$(uname -m)
  18. echo "Architecture:" $oarch
  19. # Check Kernel Release
  20. kernel=$(uname -r)
  21. echo "Kernel Release:" $kernel
  22. # Check Internal IP
  23. iip=$(hostname -I)
  24. echo "Internal IP:" $iip
  25. # Check Internal IP
  26. eip=$(dig +short myip.opendns.com @resolver1.opendns.com)
  27. echo "External IP:" $eip
  28. run_monitoring() {
  29. totalmem=`free -m | grep ^Mem | awk '{print $2}'`
  30. usedmem=`free -m | grep ^Mem | awk '{print $3}'`
  31. freemem=`free -m | grep ^Mem | awk '{print $4}'`
  32. cachemem=`free -m | grep ^Mem | awk '{print $6}'`
  33. availablemem=`free -m | grep ^Mem | awk '{print $7}'`
  34. swapmem=`free -m | grep ^Swap | awk '{print $2}'`
  35. usedswap=`free -m | grep ^Swap | awk '{print $3}'`
  36. cpucnt=`cat /proc/cpuinfo | grep 'processor' | wc -l`
  37. uptimes=`uptime -s`
  38. echo "cpuCnt:" ${cpucnt}
  39. #usecpurate=`top -b -n 1 | grep Cpu | awk '{print $8}' | tr -d "%id," | awk '{print 100-$1}'`
  40. usecpurate=`mpstat 1 1 | tail -1 | awk '{print 100-$NF}'`
  41. echo "useCpuRate:" ${usecpurate}
  42. tasks=`ps aux | grep -v ps | wc -l`
  43. threads=200
  44. #loadavg=`uptime | awk '{print $10}' | cut -f 1 -d ','`
  45. loadavg=`cat /proc/loadavg | awk '{print $1}'`
  46. echo "loadAvg:" ${loadavg}
  47. #DISK 사용율
  48. totaldisk=`df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum; }'`
  49. useddisk=`df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum; }'`
  50. useddiskrate=$((100*$useddisk/$totaldisk))
  51. echo DISK: $(($totaldisk/1024/1024)) GB, Used DISK: $(($useddisk/1024/1024)) GB, Rate: $useddiskrate %
  52. # Call System Status Save REST API
  53. PAYLOAD='{"hostName" : "'${name}'",
  54. "osType" : "'${otype}'",
  55. "osName" : "'${oname}'",
  56. "osVersion" : "'${over}'",
  57. "osArch" : "'${oarch}'",
  58. "kernelRelease" : "'${kernel}'",
  59. "internalIp" : "'${iip}'",
  60. "externalIp" : "'${eip}'",
  61. "totalMem" : "'${totalmem}'",
  62. "swapMem" : "'${swapmem}'",
  63. "totalDisk" : "'${totaldisk}'",
  64. "cpuCnt" : "'${cpucnt}'",
  65. "upTimes" : "'${uptimes}'",
  66. "usedDisk" : "'${useddisk}'",
  67. "usedMem" : "'${usedmem}'",
  68. "freeMem" : "'${freemem}'",
  69. "cacheMem" : "'${cachemem}'",
  70. "availableMem" : "'${availablemem}'",
  71. "usedSwap" : "'${usedswap}'",
  72. "tasks" : "'${tasks}'",
  73. "threads" : "'${threads}'",
  74. "useCpuRate" : "'${usecpurate}'",
  75. "loadAvg" : "'${loadavg}'"
  76. }'
  77. api_result=$(curl -d "${PAYLOAD}" -X POST $SSIP_API_URI -H "$HEADER_CONTEXT_TYPE" --connect-timeout $SSIP_API_TIMEOUT)
  78. # Result
  79. echo ""
  80. echo ${api_result}
  81. echo ""
  82. }
  83. run_monitoring