web-dev-qa-db-ja.com

リモートサーバーのRAMおよびCPU使用率を監視しますか?

リモートサーバーのCPUとRAM使用率を監視し、RAM使用率が高いときに通知する通知システムをセットアップして、そのプロセスを自動的に強制終了します。

Nagiosプラグインを試しましたが、いくつかのエラーがありました。

それに代わるものはありますか?

編集htopfreetopなどを提案しないでください。リモートサーバーにsshし続けてチェックするつもりはないのでその健康を繰り返し!

3
Tasdik Rahman

topに精通していますか?各プロセスのCPUとRAM使用量(およびその他)、および合計を表示します。

top -u USERを実行して、特定のユーザーのプロセスのみを表示することもできます。引数なしでtopを実行することから始めます。 qを押して終了します。

編集

スクリプト内で使用する場合:top -b -n1を試して、非対話モードで実行します。その後、headsed、およびgrepでデータを解析できます。

1
talz

カスタムスクリプトを作成します。あなたのための完全な解決策ではありませんが、おそらく役立つでしょう。

#!/bin/bash

#we use output from "uptime" and "w" on every 5 min

UPTIME=`uptime`;
W=`w`;
RAM=`free -m`;
PS=`ps auxf | sort -nr -k 4 | head -15`
DATUM=`date`;
sleep 3
MYSQL=`mysqladmin -u root -pmz567sQld processlist;`
sleep 3
SYN=`netstat -natp | grep SYN`
sleep 3
HTTPD=`pgrep httpd | wc -l`
sleep 3

echo "######################################" >> /var/log/load-result/load_log
echo "$DATE" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "UPTIME:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$UPTIME" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "W COMMAND:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$W" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "FREE RAM:" >> /var/log/load-result/load_log
echo "$RAM" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "TOP 10 processes:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$PS" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "MYSQL PROCESSLIST:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$MYSQL" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "POTENTIAL ATTACKERS:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$SYN" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "NUMBER OF HTTPD PROCESS (currently maxclients are 64):" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$HTTPD" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "CURRENTLY OPENED HTTPD CONNECTIONS:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "#####################################" >> /var/log/load-result/load_log

その後、crontabルールを追加して、ログファイルを使用して5分ごとにログをメールに送信します。また、5分ごとにスクリプトを実行します

Sudo nano /etc/crontab

*/5 * * * * sh /path_to_script/name_of_script     
*/5 * * * * mail -s "insert_subject" some_adress@domain < /var/log/load-result/load_log
1
2707974