tsi-agent.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. eip=1.1.1.1
  28. echo "External IP:" $eip
  29. run_monitoring() {
  30. totalmem=`free -m | grep ^Mem | awk '{print $2}'`
  31. usedmem=`free -m | grep ^Mem | awk '{print $3}'`
  32. freemem=`free -m | grep ^Mem | awk '{print $4}'`
  33. cachemem=`free -m | grep ^Mem | awk '{print $6}'`
  34. availablemem=`free -m | grep ^Mem | awk '{print $7}'`
  35. swapmem=`free -m | grep ^Swap | awk '{print $2}'`
  36. usedswap=`free -m | grep ^Swap | awk '{print $3}'`
  37. cpucnt=`cat /proc/cpuinfo | grep 'processor' | wc -l`
  38. uptimes=`uptime -s`
  39. echo "cpuCnt:" ${cpucnt}
  40. #usecpurate=`top -b -n 1 | grep Cpu | awk '{print $8}' | tr -d "%id," | awk '{print 100-$1}'`
  41. usecpurate=`mpstat 1 1 | tail -1 | awk '{print 100-$NF}'`
  42. echo "useCpuRate:" ${usecpurate}
  43. tasks=`ps aux | grep -v ps | wc -l`
  44. threads=200
  45. #loadavg=`uptime | awk '{print $10}' | cut -f 1 -d ','`
  46. loadavg=`cat /proc/loadavg | awk '{print $1}'`
  47. echo "loadAvg:" ${loadavg}
  48. #DISK 사용율
  49. totaldisk=`df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum; }'`
  50. useddisk=`df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum; }'`
  51. useddiskrate=$((100*$useddisk/$totaldisk))
  52. echo DISK: $(($totaldisk/1024/1024)) GB, Used DISK: $(($useddisk/1024/1024)) GB, Rate: $useddiskrate %
  53. # Call System Status Save REST API
  54. PAYLOAD='{"hostName" : "'${name}'",
  55. "osType" : "'${otype}'",
  56. "osName" : "'${oname}'",
  57. "osVersion" : "'${over}'",
  58. "osArch" : "'${oarch}'",
  59. "kernelRelease" : "'${kernel}'",
  60. "internalIp" : "'${iip}'",
  61. "externalIp" : "'${eip}'",
  62. "totalMem" : "'${totalmem}'",
  63. "swapMem" : "'${swapmem}'",
  64. "totalDisk" : "'${totaldisk}'",
  65. "cpuCnt" : "'${cpucnt}'",
  66. "upTimes" : "'${uptimes}'",
  67. "usedDisk" : "'${useddisk}'",
  68. "usedMem" : "'${usedmem}'",
  69. "freeMem" : "'${freemem}'",
  70. "cacheMem" : "'${cachemem}'",
  71. "availableMem" : "'${availablemem}'",
  72. "usedSwap" : "'${usedswap}'",
  73. "tasks" : "'${tasks}'",
  74. "threads" : "'${threads}'",
  75. "useCpuRate" : "'${usecpurate}'",
  76. "loadAvg" : "'${loadavg}'"
  77. }'
  78. api_result=$(curl -d "${PAYLOAD}" -X POST $SSIP_API_URI -H "$HEADER_CONTEXT_TYPE" --connect-timeout $SSIP_API_TIMEOUT)
  79. # Result
  80. echo ""
  81. echo ${api_result}
  82. echo ""
  83. }
  84. run_monitoring