TORIPIYO DIARY

recent events, IoT, programming, security topics

ksarを使ってMac上でグラフィカルにsarファイルを分析する

EC2インスタンスのsarファイルを分析する必要があり、sarの内容をグラフィカルに描画できるksarを使いました。ちょっとつまづくところがあったので、使い方をまとめます。

1. sarファイルをテキストファイル形式で出力する。(sa16は例。ファイル名は日にちで変わる。)

LC_ALL=C sar -A -f sa16 > sa16.txt
  • LC_ALL=Cを付与して英語形式でテキストファイルを出力させます。日本語が含まれていると、ksarからうまく読み込めないそうです。
  • サーバ上にsa16.txtファイルがある場合は、scpコマンドなどでローカルに持ってきましょう。

2. sa16.txtファイル内から、以下のkbhugfreeのセクションの記述を削除する。

00:00:01    kbhugfree kbhugused  %hugused
00:01:01            0         0      0.00
00:02:01            0         0      0.00
00:03:01            0         0      0.00
00:04:01            0         0      0.00
00:05:01            0         0      0.00
...
23:59:01            0         0      0.00

perlを使って消すのであれば、

perl -0pi -e 's;\S+\s+kbhugfree.*(\d\d:\d\d:\d\d\s+\d\s+\d\s+\d\.00)+;;s' sa16.txt

となります。
このkbhugfreeの箇所の記述は、現在のksarでは対応していないようで、ksarで読み込もうとすると、

java.lang.NumberFormatException: For input string: "kbhugfree"
	at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
	at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
	at java.base/java.lang.Float.parseFloat(Float.java:455)
	at java.base/java.lang.Float.<init>(Float.java:554)
	at net.atomique.ksar.Linux.Parser.parse(Parser.java:1046)
	at net.atomique.ksar.kSar.parse(kSar.java:750)
	at net.atomique.ksar.FileRead.run(FileRead.java:62)
time to parse: 342ms number of line: 25905 line/msec: 75.0

というエラーが出力されて、グラフを描画することが出来ません。

3. ksarを起動する。

https://sourceforge.net/projects/ksar/ から、ksarのzipファイルをダウンロードしてきて解凍。

java -jar kSar-5.0.6/kSar.jar

で起動させます。

4. sa16.txtファイルを読み込む。
ウィンドウが表示されたら、

Data => Load from text file... => ダイアログからsa16.txtファイルを選択

で、Data import is finishedというメッセージが表示されて、グラフが読み取れるようになります。
こんな感じで項目が表示されれば、読み取り成功。分析しまくりましょう。
f:id:ha107chan:20190116224949p:plain