Linuxでシステムのリソース使用に対するアラートを設定する方法

この記事では、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ジョブを用いることで、独自の監視システムを簡単に設定することができます。応用例を通じてさまざまな状況での利用方法も示しましたので、参考にしてください。

created by Rinker
オライリージャパン
¥3,080 (2024/11/21 17:52:11時点 Amazon調べ-詳細)

コメント

コメントする

目次