BIG-IP資料採取スクリプト(bash)


f5networks
BIG-IP異常時にサポートへ調査依頼するあたって必須となる資料を採取するスクリプトです。

採取する資料は下記の3種です。
・ qkview
・ bigtop -once (指定回数)
・ b config save (UCS)

#!/bin/sh
#-----------------------------------------------------------
#    名前:
#          BIG-IP 資料採取スクリプト
#    機能:
#          下記のシステム情報を収集する
#           - qkview
#           - bigtop -once (指定回数)
#           - b config save
#    スクリプト動作確認環境:
#          BIG-IP v10.1.x
#    戻り値:
#          0   -> 正常終了
#          1=< -> 異常終了
#    作成:
#          mani.tar(https://manitaninforest.wordpress.com)
#-----------------------------------------------------------
#
#    INIT
#
HOST=`/bin/hostname`
TEMP=$0.$$
DIR1=/var/tmp
DIR2=${DIR1}/${TEMP}

mkdir -p ${DIR2}

# bigtop取得サイクル指定
COUNT=5     # 回数指定
INTERVAL=3  # 待ち時間指定(sec)

#
#    ヘッダ
#
Header(){
echo -n "[$0 `date '+%H:%M:%S'`]: "
}

#
#    Active/Standbyチェック
#
FAILOVER=`b failover show | awk '{print $2}'`
if [ ${FAILOVER} == "standby" ]
then
Header;echo "This node is ${FAILOVER}. Please run on an active node. exit 1."
exit 1
fi
Header;echo "$0 start."

#
#    qkview取得
#
TIME=`/bin/date '+%y%m%d.%H%M%S'`
FILE1=qkview_${HOST}_${TIME}_tech.out
OUTPUT1=${DIR2}/${FILE1}
COMM="qkview -f ${OUTPUT1}"
Header;echo "${COMM} start."

nice -20 ${COMM} 2>/dev/null
RC=$?
if [ ${RC} -eq 0 ]
then
Header;echo "${COMM} end.[${RC}]"
else
Header;echo "${COMM} failed.[${RC}]"
exit 1
fi

#
#    bigtop取得
#
Header;echo "bigtop -once start."

i=1
while [ ${i} -le ${COUNT} ]
do
sleep ${INTERVAL} &
TIME=`/bin/date '+%y%m%d.%H%M%S'`
FILE2=bigtop_${HOST}_${TIME}.out
OUTPUT2=${DIR2}/${FILE2}
Header;echo -n "[${i}] bigtop -once ${OUTPUT2} ..."
bigtop -once > ${OUTPUT2} 2>/dev/null
RC=$?
if [ ${RC} -eq 0 ]
then
echo "OK.[${RC}]"
else
Header;echo "bigtop -once > ${OUTPUT2} NG.[${RC}]"
exit 1
fi
i=`expr ${i} + 1`
wait
done
Header;echo "bigtop -once end."

#
#    UCS取得(b config save)
#
TIME=`/bin/date '+%y%m%d.%H%M%S'`
FILE3=configsave_${HOST}_${TIME}_err.ucs
OUTPUT3=${DIR2}/${FILE3}
Header;echo "b config save ${OUTPUT3} start."

b config save ${OUTPUT3} 2>/dev/null
RC=$?
if [ ${RC} -eq 0 ]
then
Header;echo "b config save ${OUTPUT3} end.[${RC}]"
else
echo "failed.[${RC}]"
exit 1
fi

#
#    Archive
#
TIME=`/bin/date '+%y%m%d.%H%M%S'`
ARCH=$0_${HOST}_${DATE}${TIME}.tgz
Header;echo "gtar -zcvf ${DIR1}/${ARCH} start."
cd ${DIR2}
gtar -zcvf ../${ARCH} ./* >/dev/null
if [ $RC -eq 0 ]
then
Header;echo "gtar -zcvf ${DIR1}/${ARCH} end."
cd ${DIR1}
#/bin/rm -f ${TEMP}
Header;echo "[output file]:"
ls -l ${ARCH}
Header;echo "$0 nomal end."
exit 0
else
Header;echo "gtar -zcvf ${DIR1}/${ARCH} failed.[${RC}]"
exit 1
fi

上記のスクリプトをBIG-IPの任意のディレクトリに配置してください。
下記例では/var/tmpに格納しています。

[root@hoge:Active] tmp # ls -rlt
total 23340
-rw-r--r-- 1 root   root       2119 Dec 27 14:30 ColBIP.sh
[root@hoge:Active] tmp #

bigtopの取得サイクルについては、サポートの要求に従って書き換えてください。

# bigtop取得サイクル指定
COUNT=5     # 回数指定
INTERVAL=3  # 待ち時間指定(sec)

引数無しで実行します。

[root@hoge:Active] tmp # sh ColBIP.sh
[ColBIP.sh 14:33:00]: ColBIP.sh start.
[ColBIP.sh 14:33:00]: qkview -f /var/tmp/ColBIP.sh.19628/qkview_hoge.local_121227.143300_tech.out start.
[ColBIP.sh 14:33:41]: qkview -f /var/tmp/ColBIP.sh.19628/qkview_hoge.local_121227.143300_tech.out end.[0]
[ColBIP.sh 14:33:41]: bigtop -once start.
[ColBIP.sh 14:33:41]: [1] bigtop -once /var/tmp/ColBIP.sh.19628/bigtop_hoge.local_121227.143341.out ...OK.[0]
[ColBIP.sh 14:33:44]: [2] bigtop -once /var/tmp/ColBIP.sh.19628/bigtop_hoge.local_121227.143344.out ...OK.[0]
[ColBIP.sh 14:33:47]: [3] bigtop -once /var/tmp/ColBIP.sh.19628/bigtop_hoge.local_121227.143347.out ...OK.[0]
[ColBIP.sh 14:33:50]: [4] bigtop -once /var/tmp/ColBIP.sh.19628/bigtop_hoge.local_121227.143350.out ...OK.[0]
[ColBIP.sh 14:33:53]: [5] bigtop -once /var/tmp/ColBIP.sh.19628/bigtop_hoge.local_121227.143353.out ...OK.[0]
[ColBIP.sh 14:33:56]: bigtop -once end.
[ColBIP.sh 14:33:56]: b config save /var/tmp/ColBIP.sh.19628/configsave_hoge.local_121227.143356_err.ucs start.
[ColBIP.sh 14:34:02]: b config save /var/tmp/ColBIP.sh.19628/configsave_hoge.local_121227.143356_err.ucs end.[0]
[ColBIP.sh 14:34:02]: gtar -zcvf /var/tmp/ColBIP.sh_hoge.local_121227.143402.tgz start.
[ColBIP.sh 14:34:03]: gtar -zcvf /var/tmp/ColBIP.sh_hoge.local_121227.143402.tgz end.
[ColBIP.sh 14:34:03]: [output file]:
-rw-r--r-- 1 root root 10460987 Dec 27 14:34 ColBIP.sh_hoge.local_121227.143402.tgz
[ColBIP.sh 14:34:03]: ColBIP.sh nomal end.
[root@hoge:Active] tmp #

出力ファイル一式を格納したディレクトリと、それをアーカイブした.tgzファイルがカレントに出力されます。

[root@hoge:Active] tmp # ls -rlt
total 23340
-rw-r--r-- 1 root   root       2119 Dec 27 14:30 ColBIP.sh
drwxr-xr-x 2 root   root       4096 Dec 27 14:34 ColBIP.sh.19628
-rw-r--r-- 1 root   root   10460987 Dec 27 14:34 ColBIP.sh_hoge.local_121227.143402.tgz
[root@hoge:Active] tmp #

出力ファイル一式は以下の様になります。

[root@hoge:Active] tmp # ls -l ColBIP.sh.19628
total 11496
-rw-r--r-- 1 root root    20303 Dec 27 14:33 bigtop_hoge.local_121227.143341.out
-rw-r--r-- 1 root root    20303 Dec 27 14:33 bigtop_hoge.local_121227.143344.out
-rw-r--r-- 1 root root    20303 Dec 27 14:33 bigtop_hoge.local_121227.143347.out
-rw-r--r-- 1 root root    20303 Dec 27 14:33 bigtop_hoge.local_121227.143350.out
-rw-r--r-- 1 root root    20303 Dec 27 14:33 bigtop_hoge.local_121227.143353.out
-rw-r--r-- 1 root root   469453 Dec 27 14:34 configsave_hoge.local_121227.143356_err.ucs
-rw-r--r-- 1 root root 11148545 Dec 27 14:33 qkview_hoge.local_121227.143300_tech.out
[root@hoge:Active] tmp #

※もし出力ファイル一式を格納したディレクトリが不要であれば、スクリプト内の下記部分のコメントを外して利用してください。

#/bin/rm -f ${TEMP}

また、qkviewのtech.outファイルはgzipで圧縮されたtarボールですので内容は下記の様に確認できます。

[root@hoge:Active] tmp # file qkview_hoge.local_121227.143300_tech.out
qkview_hoge.local_121227.143300_tech.out: gzip compressed data, from Unix
[root@hoge:Active] tmp # gzip -dc qkview_hoge.local_121227.143300_tech.out | tar tvf - | head
-rw-r--r-- root/root      5195 2012-12-27 14:33:23 sccp_aom_module.xml
-rw-r--r-- root/root   1536629 2012-12-27 14:33:29 proc_module.xml
-rw-r--r-- root/root   1611675 2012-12-27 14:33:30 stat_module.xml
-rw-r--r-- root/root   3865196 2012-12-27 14:33:33 mcp_module.xml
-rw-r--r-- root/root   2506912 2012-12-27 14:33:32 var/rrd/connections
-rw-r--r-- root/root      3338 2010-03-01 11:01:00 var/rrd/connections.info
-rw-r--r-- root/root    148000 2012-12-27 14:33:32 var/rrd/bladeconnections
-rw-r--r-- root/root       987 2010-03-01 11:01:00 var/rrd/bladeconnections.info
-rw-r--r-- root/root   1327456 2012-12-27 14:33:32 var/rrd/throughput
-rw-r--r-- root/root      2153 2010-03-01 11:01:00 var/rrd/throughput.info
tar: Read 9216 bytes from -
[root@hoge:Active] tmp #

ご参考まで。

F5 Tech Depot
http://f5networks.co.jp/depot/
F5 BIG-IP LTM 製品マニュアル
http://support.f5.com/kb/en-us/products/big-ip_ltm.html

カテゴリー: Linux タグ: , , パーマリンク

コメントを残す