可以用NodeRED,寫一個收資料的API,然後在Linux中去跑如下的Script,這樣就會自動回報該主機的CPU、RAM跟剩餘空間。
#!/bin/bash
# Function to get CPU usage
get_cpu_usage() {
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
echo "$cpu_usage"
}
# Function to get memory usage
get_memory_usage() {
memory_usage=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}')
echo "$memory_usage"
}
# Function to get disk usage for /dev/vda1
get_disk_usage_vda1() {
disk_usage_vda1=$(df -h /dev/vda1 | awk 'NR==2 {print $5}' | sed 's/%//')
echo "$disk_usage_vda1"
}
# Function to get remaining disk space for /dev/vda1
get_disk_space_vda1() {
disk_space_vda1=$(df -h /dev/vda1 | awk 'NR==2 {print $4}' | sed 's/G//')
echo "$disk_space_vda1"
}
# API URL vda1
api_url="http://nodeRED的網址:1880/ReportServInfo?token=用令牌確保安全性&data=\{\"MACHINE_NAME\":\"主機名稱\",\"CPU_USAGE\":$(get_cpu_usage),\"RAM_USAGE\":$(get_memory_usage),\"STORAGE_DEVICE\":\[\{\"DEVICE\":\"vda1\",\"AVAILABLE_SPACE\":\"$(get_disk_space_vda1)GB\",\"USED_USAGE\":$(get_disk_usage_vda1)\}\]\}"
# Call API
curl "$api_url"