最近のトラックバック

無料ブログはココログ

« [ bash ] パスを通す (.bashrc) | トップページ | [ fml ] 基本コマンド »

2005年4月 9日 (土)

[ MRTG ] 使用メモリをグラフ化する

もともとSNMPには使用メモリを表すOIDが存在しないので,
スクリプトを組んで計算するしかないようだ.

基本的にMRTGを用いてグラフ化する場合には,

系列値1
系列値2
連続起動時間
ホスト名

の順に値を出力すればよい.

以下はうちの環境でkshを用いたシェルスクリプトであるが,
シェルの違いやバイナリの出力,
パスの有無等の細かい違いは適宜読み替えてもらいたい.
また,系列値1をメインメモリ使用率,系列値2をスワップメモリ使用率とした.

#!/bin/ksh

IP=$1

SYS=`/usr/local/bin/snmpwalk -v 1 -c public $IP .1.3.6.1.2.1.1.1`
UPT=`/usr/local/bin/snmpwalk -v 1 -c public -O v $IP .1.3.6.1.2.1.1.3`

set -A MTS `/usr/local/bin/snmpwalk -v 1 -c public -O vq $IP .1.3.6.1.4.1.2021.4.3.0`
set -A MAS `/usr/local/bin/snmpwalk -v 1 -c public -O vq $IP .1.3.6.1.4.1.2021.4.4.0`
set -A MTR `/usr/local/bin/snmpwalk -v 1 -c public -O vq $IP .1.3.6.1.4.1.2021.4.5.0`
set -A MAR `/usr/local/bin/snmpwalk -v 1 -c public -O vq $IP .1.3.6.1.4.1.2021.4.6.0`

MEMR=`expr $MTR - $MAR`
SWAR=`expr $MTS - $MAS`
UPTIME=`echo $UPT | awk -F. '{print $1}' | awk '{print $3,$4,$5}'`
HOST=`echo $SYS | awk '{print $5}'`

echo $MEMR
echo $SWAR
echo $UPTIME
echo $HOST

とする.
このスクリプトにexec属性をつけた上で,mrtg.cfgには,

Target[(系列名)]: `(スクリプトのパス) (ホスト名)`
MaxBytes1[(系列名)]: (系列値1最大値)
MaxBytes2[(系列名)]: (系列値2最大値)

とすればよい.

« [ bash ] パスを通す (.bashrc) | トップページ | [ fml ] 基本コマンド »

技術情報」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: [ MRTG ] 使用メモリをグラフ化する:

« [ bash ] パスを通す (.bashrc) | トップページ | [ fml ] 基本コマンド »