GUIによる効率的なシステム管理、監視

2010年12月8日(水)
古賀 政純

kSarをコマンド・ラインから利用してみる

kSarは、コマンド・ライン・ベースによる実行も可能です。以下は、sarコマンドの結果のテキスト・ファイルをロードし、グラフの画像データを出力するkSarのコマンド・ラインでの利用例です。

# LC_ALL=C java -jar [kSarのパス]/kSar.jar \
-input “file://[テキストファイルのパス]” \
-outoutJPG [JEPGファイル保存ファイル名]
(実際には一行)

これにより、テキスト・ファイルをグラフの画像(上記例ではJPEG形式)に変換できます。このため、スクリプトなどでバッチ処理を行うことが可能となります。以下は、kSarとsarコマンドを使って、sarコマンドで得られたバイナリ・データから、テキスト・ファイルとグラフのJPEG画像データを生成するスクリプトの例です。

sarバイナリ・データからグラフのJPEG画像を生成するkSar2jpg.shスクリプト

#!/bin/sh
# Put kSar.jar into /usr/local/kSar-x.x.x/ before using this script.
# This script creates a sar text output and jpgs from a sar binary file.
# The sar binary file is required to use this script.
# Reference:
#  - Binary: sar -A 1 -o /var/log/sarA1.log
#  - Text:   sar -A -f /var/log/sarA1.log > /var/log/sarA1.txt
#  - JPG:    java -jar kSar.jar \
#                 -input "file:///var/log/sarA1.txt" \
#                 -outputJPG /var/log/sar_result/sarA1.XXX.jpg 
Usage(){
 echo "Usage: $0 binaryfile textfile startime endtime "
 echo "e.g. : $0 binaryfile textfile"
 echo "e.g. : $0 binaryfile textfile 09:00:00 17:30:00"; exit 1
}
kSarPath(){
 echo "kSar.jar not found."; exit 1
}
export LANG=C
JAR=/usr/local/kSar-5.0.6/kSar.jar
BIN=$1
TXT=$2
START=$3
END=$4
DIR=${TXT}_jpgs_${START}_${END}

[ -f $JAR ] || kSarPath
[ -e $BIN ] || Usage
[ -z $BIN ] && Usage
[ -z $TXT ] && Usage
JPG=${DIR}/$(basename ${TXT})

if [ "$START" != "" -a "$END" = "" ]; then
 Usage
fi
[ -d $DIR ] || mkdir -p $DIR
echo "Now converting a sar binary file to a text file..."
if [ "$START" = "" -a "$END" = "" ]; then
 LC_ALL=C sar -A -f $BIN                   > $TXT \
  || (rm -rf $DIR; Usage)
else
 LC_ALL=C sar -A -f $BIN -s $START -e $END > $TXT \
  || (rm -rf $DIR; Usage)
fi
echo "Now converting a sar txt file to jpg files..."
 LC_ALL=C java -jar $JAR -input "file://${TXT}" -outputJPG ${JPG} \
  || exit 1
exit 0

このスクリプトは、引数にsarコマンドで得られたバイナリ・データ、出力したいテキスト・ファイル名を指定します。例えば、

  • バイナリ・データ : /root/sarA1.bin
  • 出力したいテキスト・ファイル名 : /root/sarA1.txt

とすると、以下のように指定します。

# ./kSar2jpg.sh /root/sarA1.bin /root/sarA1.txt

出力される画像データは、テキスト・データと同じディレクトリ配下の「/root/sarA1.txt_jpg__」ディレクトリに保存されます。また、特定の期間のみ、例えば、朝の9時0分から夕方の17時30分までのデータを抽出したい場合は、以下のように指定します。

# ./kSar2jpg.sh /root/sarA1.bin /root/sarA1.txt 09:00:00 17:30:00

この場合は、画像データが、/root/sarA1.txt_jpg_[開始時刻]_[終了時刻]ディレクトリに保存されます。下図は、kSar2jpg.shの実行の様子です。sarコマンドのバイナリ・データ、/root/sarA1.binを読み込んで、朝9時0分から夕方17時30分までのテキスト・データ、/root/sarA1.txtとグラフのJPG画像が得られていることが分かります。

図11: kSar2jpg.shスクリプトの実行の様子。過去の履歴が記録されたバイナリ・データから、朝9時~夕方17時30までのデータを抽出してグラフのJPEG画像に変換している(クリックで拡大)

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています