web-dev-qa-db-ja.com

サーバーのディスクスペース不足の問題に関する通知

私はubuntuサーバーを持っていて、頻繁にスペースの問題に直面しています。つまり、ログが多くのディスクスペースを消費しています。そこで、チェックを適用して、ディスクの空き容量が5 GB未満になると、ログを削除できるように電子メール通知を受け取るようにします。これを構成するにはどうすればよいですか。他のアプリケーションが必要ですか?

4
tanmayghosh2507

私の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コマンドを提供するものが必要になることに注意してください。

3
Calimo

Nagios を使用して、電子メールの監視と送信を行うことができます。ただし、監視を設定する前に、ログファイルを定期的にローテーションするように logrotate を設定することから始めます。

適切なシステムは、サーバーをホストする場所によって異なります。たとえば、AWSでホストされている場合、Amazonの組み込みの CloudWatch を設定して、新しいモニタリングソリューションをデプロイするのではなく、ヘルスをモニタリングできます。

9
Shishir

2つの異なる戦略を採用できます。

  • 分/時間/日ごとに実行されるカスタムスクリプトを使用して、スペース不足を検出して通知します
  • Zabbix などの真のモニタリングソリューションをインストールしてデプロイします。

単一サーバーの場合、ソリューションn.1が確かに高速なパスです。ただし、複数のサーバーの場合、および/または複数のデータポイント(RAMの使用状況、CPUの負荷など)をチェックする場合は、2番目のサーバーがはるかに望ましいです。

3
shodanshok