Linux
如何從另一台機器監控一堆機器的 CPU 使用情況?
我有幾台執行 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 或電子郵件)。您可能想查看
nagios
或zabbix
獲取免費的監控解決方案。我沒用過,但看起來Cacti 支持門檻值警報
collectd
也可以提醒,但我主要只collectd
用於性能統計的歷史收集,我不需要提醒任何事情。底線是,自己這樣做會浪費您的時間和精力,並在您的監控機制中引入錯誤的可能性。這是各種預製解決方案的常見問題。