在 Ubuntu 系统中,cpustat 是一个用于显示 CPU 使用情况的工具,通常由 sysstat 包提供。然而,cpustat 本身并不支持阈值报警功能。如果你想要实现 CPU 使用率的阈值报警,可以考虑以下几种方法:
watch 命令结合 cpustat你可以使用 watch 命令定期运行 cpustat,并通过脚本检查 CPU 使用率是否超过阈值。
安装 sysstat(如果尚未安装):
sudo apt update
sudo apt install sysstat
创建一个脚本(例如 check_cpu.sh):
#!/bin/bash
THRESHOLD=80 # 设置阈值
while true; do
cpu_usage=$(watch -n 1 "cpustat -c | awk '{print $3}'" | tail -n 1)
echo "Current CPU usage: $cpu_usage%"
if (( $(echo "$cpu_usage > $THRESHOLD" | bc) )); then
echo "CPU usage is above the threshold: $cpu_usage%"
# 在这里添加报警逻辑,例如发送邮件或执行其他命令
fi
sleep 5 # 每隔5秒检查一次
done
赋予脚本执行权限:
chmod +x check_cpu.sh
运行脚本:
./check_cpu.sh
sar 和 awk如果你更喜欢使用 sar 命令,可以结合 awk 来实现阈值报警。
安装 sysstat(如果尚未安装):
sudo apt update
sudo apt install sysstat
创建一个脚本(例如 check_cpu_sar.sh):
#!/bin/bash
THRESHOLD=80 # 设置阈值
INTERVAL=1 # 采样间隔(秒)
DURATION=3600 # 总时长(秒)
sar -u $INTERVAL $DURATION | awk -v threshold=$THRESHOLD '
BEGIN { FS=" "; print "Time\tCPU Usage" }
$1 == "Average:" {
cpu_usage = $10
if (cpu_usage > threshold) {
print strftime("%Y-%m-%d %H:%M:%S"), cpu_usage "%"
# 在这里添加报警逻辑,例如发送邮件或执行其他命令
}
}'
赋予脚本执行权限:
chmod +x check_cpu_sar.sh
运行脚本:
./check_cpu_sar.sh
如果你需要更复杂的监控和报警功能,可以考虑使用第三方监控工具,如 Prometheus、Grafana 或 Nagios。这些工具提供了丰富的功能和灵活的配置选项,可以轻松实现阈值报警。
在上述脚本中,你可以根据需要添加报警逻辑。例如,发送邮件可以使用 mail 命令:
echo "CPU usage is above the threshold: $cpu_usage%" | mail -s "CPU Usage Alert" your_email@example.com
确保你的系统已配置好邮件发送功能(例如通过 postfix 或 sendmail)。
通过这些方法,你可以实现基于 cpustat 的 CPU 使用率阈值报警。