この記事では、Linuxシステムでリソース使用(CPU、メモリ、ディスクスペースなど)に対するアラートを設定する方法について詳しく説明します。シェルスクリプトとCronジョブを用いて、独自の監視システムを作成します。具体的なコード例、その解説、そして多数の応用例を含めています。
目次
はじめに
システムのリソース使用に対するアラートは、管理者がシステムの異常を早期に察知し、対応するために非常に有用です。Linuxシステムには多数の監視ツールが存在しますが、今回は基本的なシェルスクリプトとCronジョブを用いて独自の監視システムを作ります。
必要なツールと前提条件
この記事を理解し、実行するには以下の前提条件が必要です。
– Linuxシステムへのアクセス権
– シェルスクリプトの基礎知識
– Cronの基礎知識
基本的なアラートスクリプトの作成
スクリプトの全体構造
基本的なシェルスクリプトの構造は以下のようになります。
#!/bin/bash
# CPU使用率をチェック
# ...
# メモリ使用率をチェック
# ...
# ディスク使用率をチェック
# ...
CPU使用率のチェック
以下はCPU使用率をチェックするスクリプトの一部です。
#!/bin/bash
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
if [ $CPU_USAGE -gt 90 ]; then
echo "CPU使用率が90%を超えました"
fi
コードの解説
`top -bn1`コマンドは、CPU使用率を表示します。その出力から必要な部分を`grep`と`awk`で抽出しています。
応用例
1. アラートをメールで送信する
#!/bin/bash
# ...
if [ $CPU_USAGE -gt 90 ]; then
echo "CPU使用率が90%を超えました" | mail -s "CPU Alert" user@example.com
fi
2. メモリ使用率も監視する
#!/bin/bash
# ...
MEM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100}')
if [ $MEM_USAGE -gt 90 ]; then
echo "メモリ使用率が90%を超えました"
fi
3. ディスク使用率の監視
#!/bin/bash
# ...
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 90 ]; then
echo "ディスク使用率が90%を超えました"
fi
4. 複数のサーバーで実行する
5. ログファイルに記録する
#!/bin/bash
# ...
if [ $CPU_USAGE -gt 90 ]; then
echo "$(date) : CPU使用率が90%を超えました" >> /var/log/cpu_usage.log
fi
まとめ
Linuxのシステムリソース使用に対する独自のアラートシステムの設定方法について詳しく説明しました。シェルスクリプトとCronジョブを用いることで、独自の監視システムを簡単に設定することができます。応用例を通じてさまざまな状況での利用方法も示しましたので、参考にしてください。
コメント