Linux

如何從另一台機器監控一堆機器的 CPU 使用情況?

  • December 10, 2014

我有幾台執行 Ubuntu 12.04 的機器,如下所示,我需要找出 CPU 使用率大於 70% 的程序名稱及其 pid。

下面以機器為例-

machineA
machineB
machineC
machineD

我需要讓我的 shell 腳本每 15 分鐘定期執行一次,並檢查上述任何機器的 CPU 使用率是否超過 70%。如果有任何機器的 CPU 使用率超過 70%,則發送一封電子郵件,其中包含機器名稱和程序名稱以及它的 id。

我將執行我的 shell 腳本,machineX並且我為david從 machineX 到所有上述機器的使用者設置了無密碼 ssh 密鑰。

進行所有這些監控的最佳方法是什麼?

我有以下命令可以讓我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}'

不確定如何完全自動化這個過程?

您可能應該嘗試為此使用現有的監控解決方案。這幾乎正是他們的設計目的,監控狀況並發送警報(SMS 或電子郵件)。您可能想查看nagioszabbix獲取免費的監控解決方案。

我沒用過,但看起來Cacti 支持門檻值警報

collectd也可以提醒,但我主要只collectd用於性能統計的歷史收集,我不需要提醒任何事情。

底線是,自己這樣做會浪費您的時間和精力,並在您的監控機制中引入錯誤的可能性。這是各種預製解決方案的常見問題。

引用自:https://unix.stackexchange.com/questions/172642