※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

2011/12/07 20:23:05

NetScreenのSA値をTELNETで取得し、MRTGでグラフ化する方法
※SNMPが対応していないので。

1 値の取得
 1-1 TELNEで値を取得
 1-2 取得した値を加工
 1-3 上記の作業をCronで5分おきに自動実行させる。

2 MRTGで登録
 2-1 mrtg.cfgに記載する。

--------------------------------------------------------------------
1 TELNEで値を取得
TELNET自動実行用のシェルを作成する。
# more telnet-192.168.xx.x8.sh
#!/bin/sh
sh /home/ken/mrtg/sa-cmds.sh | /usr/kerberos/bin/telnet 192.168.xx.x8 > /home/ken/mrtg/ns1.log

TELNETで実行させるコマンド
# more sa-cmds.sh
#!/bin/sh
sleep 1; echo UserID #ユーザID
sleep 1; echo PASS #パスワード
sleep 5; echo 'get sa | inc total' #コマンドを記入
sleep 1; echo exit

2 取得した値を加工

#more cat-sa.sh
cat /home/ken/mrtg/ns1.log | grep sa: > /home/ken/mrtg/ns.log

0 Cronで自動実行
/home/ken/mrtg/sa-check.sh
# more sa-check.sh
#!/bin/sh
/home/ken/mrtg/telnet-192.168.xx.x8.sh
/home/ken/mrtg/cat-sa.sh

2 MRTGで登録
 2-1  SA値取得のシェルを作成
# more mrtg-sa.sh
#!/bin/sh
LANG=C
export LANG
MAX=`cat /home/ken/mrtg-data/max.txt | awk '{print $1}'`
SA=`cat /home/ken/mrtg-data/ns.log | awk '{print $4}'`
UPTIME=`uptime | awk '{print $3$4}' | sed -e "s/,//g"`
echo "$MAX"
echo "$SA"
echo "$UPTIME"
echo "MAX and SA"

※max.txt 最大値のみ固定でファイルを置いておく
# more max.txt
1024 1024 1024

2-2 mrtg.cfgに記載する。
$ more mrtg.cfg
#  for UNIX
WorkDir: /var/www/mrtg
######################################################################
# System:何とかシステム
# Description:NetScreenSA値取得
# Contact:○○
# Location:○○
######################################################################
Language:UTF-8
Target[sa]: `/home/ken/mrtg-data/mrtg-sa.sh`
MaxBytes[sa]: 1024
Options[sa]: growright,absolute,gauge,nopercent
Unscaled[sa]: dwmy
WithPeak[sa]: ymw
YLegend[sa]: SA
ShortLegend[sa]:個
LegendI[sa]: MAX SA:
LegendO[sa]: SA:
Legend1[sa]: MAX SA
Legend2[sa]: SA
Title[sa]: SA Count
PageTop[sa]: <h1>SSGxx SA Count</h1>

------------------------------
注意点
権限に注意
Cronの実行権限、ファイルの実行権限/所有権現があっていないと、うまくファイルが作成されない。
かなりやっつけで作りました。
SNMPに頼らないほにゃららのページなどいくつかのページを参照させていただきました。
添付ファイル