私はubuntuサーバーを持っていて、頻繁にスペースの問題に直面しています。つまり、ログが多くのディスクスペースを消費しています。そこで、チェックを適用して、ディスクの空き容量が5 GB未満になると、ログを削除できるように電子メール通知を受け取るようにします。これを構成するにはどうすればよいですか。他のアプリケーションが必要ですか?
私のUbuntuサーバーでは、/etc/cron.daily
(私の/dev/sdc
パーティション)の空き容量が200MB未満になると、メールで警告する次のスクリプトが/srv
にあります。
ALERT=200
UNIT=M
PARTITION=/dev/sdc
df -B$UNIT | grep "^$PARTITION" |
while read partition size used free perc mnt ;
do
free_space=$(echo $free | tr -d $UNIT )
if [ $free_space -le $ALERT ]; then
echo "Partition $partition ($mnt) running out of space ($free) on $(hostname) as on $(date)" |
mail -s "Alert: $mnt almost out of disk space on $(hostname) - $free" root
fi
done
当初は nixCraftのこのブログ投稿から取得および適合 でした。これをrootとして/etc/cron.hourly
のファイルに保存し、サーバーとニーズに合わせて最初の3行を変更し、ファイルを実行可能にします。より頻繁に実行したい場合は、スクリプトとして保存し、通常のcronジョブを作成します。
通常はパッケージqmail-run
またはcourier-mta
からmail
コマンドを提供するものが必要になることに注意してください。
Nagios を使用して、電子メールの監視と送信を行うことができます。ただし、監視を設定する前に、ログファイルを定期的にローテーションするように logrotate を設定することから始めます。
適切なシステムは、サーバーをホストする場所によって異なります。たとえば、AWSでホストされている場合、Amazonの組み込みの CloudWatch を設定して、新しいモニタリングソリューションをデプロイするのではなく、ヘルスをモニタリングできます。
2つの異なる戦略を採用できます。
単一サーバーの場合、ソリューションn.1が確かに高速なパスです。ただし、複数のサーバーの場合、および/または複数のデータポイント(RAMの使用状況、CPUの負荷など)をチェックする場合は、2番目のサーバーがはるかに望ましいです。