メモリの閾値監視をシェルスクリプトで自動化する

システム運用改善_memory

【システム運用改善】Linuxサーバのメモリ監視を簡単に自動化しよう!

サーバの運用保守はいろいろな作業があり苦労されている方も多いと思います。今回は経費をほとんどかけずに運用保守作業を自動化するという点の第2弾です。

メモリの稼働状況監視を自動化

今回は有料ソフトウェアを入れる費用が無い場合や無料ソフトウェアでも設定・運用できる人材がいない場合などを想定し、シェルスクルプトで簡易的にメモリの閾値監視を行う方法を説明します。

処理内容

処理名:MEMORY_LIMIT_CHECK.sh


#!/bin/bash

############################################
# 関数定義
############################################

#閾値超過時の通報先
ML_SEND="*****@sample.jp"

#本処理用ログファイル
MEM_LOG="/home/script/log/memory_limit.txt"

#日付取得用
YMD=`date +%y%m%d,%H:%M:%S'`

#メモリ閾値 100%=100で記載
MEM_LIMIT=80
SWAP_LIMIT=10

#メモリ使用率取得
MEM_USED=`free | grep Mem | awk '{ print ($3-$6-$7)/$2*100 }'`
SWAP_USED=`free | grep Swap | awk '{ print $3/$2*100 }'`

############################################
# メイン処理
############################################

echo "`date`" >> $MEM_LOG

#メモリ使用量が閾値を超えた場合メールで通知
if [ $MEM_USED > $MEM_LIMIT ]; then
echo "$HOSTNAME memory over  $MEM_USED %" | mail -s "$HOSTNAME memory over" $ML_SEND
echo "$HOSTNAME memory over  $MEM_USED" >> $MEM_LOG
fi

#メモリ使用量が閾値を超えた場合メールで通知
if [ $SWAP_USED > $SWAP_LIMIT ]; then
echo "$HOSTNAME swap over  $SWAP_USED %" | mail -s "$HOSTNAME swap over" $ML_SEND
echo "$HOSTNAME swap over  $SWAP_USED" >> $MEM_LOG
fi

解説および使用方法

この処理は、メモリの使用率が閾値(上記処理内では仮に80%、スワップ10%と指定)を超えた場合、指定した宛先に対してメールで通知するというものです。
本シェルを本番環境へ配置後、cronにて制御します。システム要件により異なりますが、この処理を例えば5分毎に繰り返し処理するように設定します。 (例えば夜間処理で負荷が高くなることが想定できる場合などは、日中帯のみ監視したり、夜間の監視間隔を広げるなど要件に併せてください)
また、実際のディレクトリ構成等に注意し、修正時は関数定義部分の修正を行ってください。

※なお、本処理ではログを作成していくのでログファイル整理用の処理も併せて設定することをオススメします。

【関連】
CPU閾値監視をシェルスクリプトで自動化
ディスク使用量閾値監視をシェルスクリプトで自動化
閾値監視用ログファイルの整理

  • このエントリーをはてなブックマークに追加

関連記事

コメント

  • トラックバックは利用できません。

  • コメント (4)

  1. Such a refreshing change to find decent content for once, I was getting tired of the retarded drivel I come across of late, thank you.

  2. Good post. I just now discovered your website and had to express that I’ve genuinely enjoyed checking your posts.

  3. What an excellent inspiring article. I really am truly impressed with your musings. You offer very helpful ideas. Keep it up. Keep blogging. looking forward to going through your next article.

  4. Educational material! Finally somebody who knows what they are on about and can also produce insightful content for us the reader. Eagerly looking forward to your next offering.

*

ページ上部へ戻る