如何从另一台机器监控一堆机器的 CPU 使用情况?

如何从另一台机器监控一堆机器的 CPU 使用情况?

我有几台机器(如下所示)正在运行 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 nameCPU 使用率大于 70% 的进程。

ps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3>=70) print $2,$3,$11}'

不确定如何完全自动化此过程?

答案1

您可能应该尝试使用现有的监控解决方案来实现此目的。这几乎正​​是它们的设计目的:监控状况并发送警报(短信或电子邮件)。您可能想查看nagioszabbix获取免费的监控解决方案。

我没用过,但看起来像Cacti 支持阈值警报

collectd也可以发出警报,但我主要只用于collectd性能统计数据的历史收集,不需要对任何内容发出警报。

最重要的是,你自己这样做会浪费你的时间、精力,并可能在你的监控机制中引入错误的可能性。这是各种预制解决方案的常见问题。

相关内容