在 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 使用率阈值报警。