[ 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 ] 基本コマンド »
「技術情報」カテゴリの記事
- [Win7] 起動時に自動的にVPN接続する(2013.09.06)
- [ Hard ] CPDP-940修理(2013.01.14)
- [ 玄箱 ] squeeze化(2012.01.05)
- [ Hard ] DCP-4200 子機設定手順(2011.01.24)
- [ Linux ] 旧distのapt(2012.01.26)
コメント