我有几台机器(如下所示)正在运行 Ubuntu 12.04,我需要找出 CPU 使用率大于 70% 的进程名称及其 pid。
以下以机器为例 -
machineA
machineB
machineC
machineD
我需要有一个 shell 脚本,它可以每 15 分钟定期运行一次,并检查上述计算机是否有 CPU 使用率超过 70%。如果有任何机器的 CPU 使用率超过 70%,则发送一封电子邮件,其中包含机器名称、进程名称及其 ID。
我将运行我的 shell 脚本,并且我为用户从 machineX 到上述所有机器machineX
设置了无密码 ssh 密钥。david
进行所有这些监控的最佳方法是什么?
我有以下命令可以获取PID, %CPU and COMMAND name
CPU 使用率大于 70% 的进程。
ps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3>=70) print $2,$3,$11}'
不确定如何完全自动化此过程?
答案1
您可能应该尝试使用现有的监控解决方案来实现此目的。这几乎正是它们的设计目的:监控状况并发送警报(短信或电子邮件)。您可能想查看nagios
或zabbix
获取免费的监控解决方案。
我没用过,但看起来像Cacti 支持阈值警报
collectd
也可以发出警报,但我主要只用于collectd
性能统计数据的历史收集,不需要对任何内容发出警报。
最重要的是,你自己这样做会浪费你的时间、精力,并可能在你的监控机制中引入错误的可能性。这是各种预制解决方案的常见问题。