この記事は公開から1年以上が経過しています。内容が古い場合があるのでご注意下さい。

前回のkSarですが、コマンドラインからも使うことができます。
クライアントPCでもできますし、サーバ側でも可能です。

今回は、活用編として、サーバ側にkSarをインストールして、ブラウザで簡単にグラフを確認できるようにしてみます。

内容としては、

  • 1日前と2日前のグラフを指定のURLから見えるようにする。
  • 更新は1日1回行う。

の2点です。

※当日のグラフを(極力)リアルタイム定期的に更新させるということも可能ですが、サーバへの負荷を考慮して、今回は日次の処理のみとしました。

Javaのインストール

kSarはJava製なので、Javaをインストールしますが、今回は標準リポジトリからOpenJDKをインストールします。
SunのページからJavaをインストールしてもいいんですが、できるだけ標準リポジトリからインストールしたいので、互換性のあるOpenJDKにしました。

# yum -y install java-1.7.0-openjdk

kSarのインストール

次にkSarのインストールです。
今回は、「kSar.jar」ファイルは「/root/bin/」ディレクトリ以下に設置することにします。

ダウンロードは前回と同様の手順で、以下のURLからファイルをダウンロード、解凍します。
http://sourceforge.net/projects/ksar/

# unzip kSar-5.0.6.zip

解凍できたら、解凍したディレクトリごと「/root/bin/ksar」というディレクトリに名前を変えて設置します。

# mv kSar-5.0.6 /root/bin/ksar
# cd /root/bin/ksar

データ変換スクリプトの設置

次に、同じディレクトリ「/root/bin/ksar」に、sarデータの変換スクリプトを設置します。
このスクリプトの概要は、

  • 1日前と2日前のsarデータをテキストに変換し、
  • kSarをコマンドラインから使って、上記のテキストデータをJPGファイルに出力
  • 作成したJPGファイルを指定のドキュメントルートにコピー
    ※ドキュメントルートは今回は、/var/www/html/ksarディレクトリです。
    というものです。

具体的な中身は以下のとおりです。

スクリプト:ksar2jpg.sh

#!/bin/bash
JAR=/root/bin/ksar/kSar.jar
DIR=/var/log/sa
DATE1=$(date +%d --date "1 day ago")
DATE2=$(date +%d --date "2 day ago")
TEMPDIR=$(mktemp -d)
DOCROOT=/var/www/html/ksar

rm -rf ${DOCROOT}/*jpg

sar -A -f /var/log/sa/sa${DATE1} > ${TEMPDIR}/sa${DATE1}.txt
sar -A -f /var/log/sa/sa${DATE2} > ${TEMPDIR}/sa${DATE2}.txt

java -jar ${JAR} -input ${TEMPDIR}/sa${DATE1}.txt -outputJPG ${TEMPDIR}/1dago
java -jar ${JAR} -input ${TEMPDIR}/sa${DATE2}.txt -outputJPG ${TEMPDIR}/2dago

cp -p ${TEMPDIR}/*dago_all-cpu.jpg ${DOCROOT}/
cp -p ${TEMPDIR}/*dago_LinuxkbmemSar.jpg ${DOCROOT}/
cp -p ${TEMPDIR}/*dago_LinuxloadSar.jpg ${DOCROOT}/
cp -p ${TEMPDIR}/*dago_LinuxprocSar.jpg ${DOCROOT}/
cp -p ${TEMPDIR}/*dago_eth0-if1.jpg ${DOCROOT}/

rm -rf ${TEMPDIR}

設置できたら、パーミッションを755に変更しておきます。

# chmod 755 /root/bin/ksar/ksar2jpg.sh

読み込みHTMLの作成

単にJPGファイルを置くだけではブラウザでは使いづらいので、JPGを読み込むHTMLファイルを用意して、その中で各JPGファイルを読み込むようにします。
このHTMLで、1日前、2日前ごとにそれぞれのグラフのJPGを縦に表示させて、グラフの比較がしやすいようにしてみました。

HTMLファイル:index.html
指定のドキュメントルートに以下の内容の「index.html」を設置します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="ja" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>過去2日間のSarデータ</title>
<style type="text/css">
.auto-style2 {
font-family: HGP創英角ゴシックUB;
font-size: xx-large;
}
.auto-style4 {
font-family: HGPnpp޼UB;
color: #FFFFFF;
margin-top: 17px;
background-color: #3F3F3F;
}
.auto-style7 {
color: #000000;
font-family: HGP創英角ゴシックUB;
background-color: #FFFFFF;
}
.auto-style8 {
font-size: x-large;
font-family: HGP創英角ゴシックUB;
}
.auto-style9 {
font-family: HGP創英角ゴシックUB;
}
</style>
</head>

<body>

<p class="auto-style2">Easy Performance Monitor by kSar</p>
<p class="auto-style4" style="width: 1225px; height: 24px;">
<span class="auto-style9"> </span><span class="auto-style8">全CPU使用率</span></p>
<table style="width: 100%">
<tr>
<td style="width: 626px; height: 20px;" class="auto-style9">  <strong>1日前</strong></td>
<td style="height: 20px"> <strong><span class="auto-style7"> 2日前</span></strong></td>
</tr>
<tr>
<td style="width: 626px"><img src="1dago_all-cpu.jpg" width="600" /></td>
<td><img src="2dago_all-cpu.jpg" width="600" /></td>
</tr>
</table>
<br />
<br>
<p class="auto-style4" style="width: 1225px"><span class="auto-style9"> </span><span class="auto-style8">メモリ使用量</span></p>
<table style="width: 100%">
<tr>
<td style="width: 626px" class="auto-style9">  <strong>1日前</strong></td>
<td> <span class="auto-style9"><strong>2日前</strong></span></td>
</tr>
<tr>
<td style="width: 626px">
<img src="1dago_LinuxkbmemSar.jpg" height="450" width="600" /></td>
<td><img src="2dago_LinuxkbmemSar.jpg" width="600" /></td>
</tr>
</table>
<br />
<p class="auto-style4" style="width: 1225px"><span class="auto-style9"> </span><span class="auto-style8">ロードアベレージ</span></p>
<table style="width: 100%">
<tr>
<td style="width: 626px" class="auto-style9">  <strong>1日前</strong></td>
<td> <span class="auto-style9"><strong>2日前</strong></span></td>
</tr>
<tr>
<td style="width: 626px">
<img src="1dago_LinuxloadSar.jpg" height="450" width="600" /></td>
<td><img src="2dago_LinuxloadSar.jpg" width="600" /></td>
</tr>
</table>
<table style="width: 100%">
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<br />
<p class="auto-style4" style="width: 1225px"><span class="auto-style9"> </span><span class="auto-style8">1秒あたりのプロセス数</span></p>
<table style="width: 100%">
<tr>
<td style="width: 626px" class="auto-style9">  <strong>1日前</strong></td>
<td> <span class="auto-style9"><strong>2日前</strong></span></td>
</tr>
<tr>
<td style="width: 626px">
<img src="1dago_LinuxprocSar.jpg" height="450" width="600" /></td>
<td><img src="2dago_LinuxprocSar.jpg" width="600" /></td>
</tr>
</table>
<table style="width: 100%">
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<br />
<p class="auto-style4" style="width: 1225px"> <span class="auto-style8">トラフィック</span></p>
<table style="width: 100%">
<tr>
<td style="width: 626px" class="auto-style9">  1日前</td>
<td> <span class="auto-style9"><strong>2日前</strong></span></td>
</tr>
<tr>
<td style="width: 626px">
<img src="1dago_eth0-if1.jpg" height="450" width="600" /></td>
<td><img src="2dago_eth0-if1.jpg" width="600" /></td>
</tr>
</table>
<table style="width: 100%">
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<br>

</body>

</html>

定期処理の設定

このスクリプトをcronに登録して、毎日更新するようにします。
今回は毎日0時5分に処理するように設定しました。

05 00 * * * /root/bin/ksar/ksar2jpg.sh 2&>1 | logger -i -t ksar2jpg

スクリーンショット

実際にどんな表示になるか、スクリーンショットです。
000

001

まとめ

ここまで、ksarをなんとか使ってWeb-UIのようなものを作ってみましたが、sarデータは、何かあった時に後から1日単位で詳細に調べることができるツールなので、kSarも都度PDFレポートを作成するような使い方が合っていると思います。

データを常に貯め続けるという使い方には向いていないので、そういうことは機能面でも優れたmuninやcactiでやった方がいいでしょう。。。

今回は、kSarはこんなこともできるよ、という紹介でしたw

関連記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です