cactiとは

Cactiとは日本語訳すると「サボテン」といいます。主にSNMPで取得できる、CPUやメモリの使用量、DISKのI/Oをグラフ化してくれるツールです。現在ですとCactiは某大手通信会社の専用線の通信状況のグラフとして提供されるようにまでなっています。

何を知る事が可能か?

Cactiで監視を行うことにより、過去にさかのぼって何が起きたかを知ることが出来ます。また障害が起こる予兆を検知することも出来ます。
例えば以下のグラフですが、これはディスク容量のグラフです。徐々に上がっていっているのがわかります。これを事前に検知することで、100%になる前に余分なファイルを消去することが可能になります。
cacti01

テンプレートを活用

Cactiには様々なテンプレートが用意されており、自分自身で作成することも可能です。またアクセスログやトランザクションログを加工してグラフ化することも可能です。プラグインやテンプレートについてはフォーラムで用意されておりますので活用することをお勧めします。

ApacheのStatusからアクセス数(Hit/s)を取得してみた

Apacheにはstatusを見る方法があり、それをCactiでグラフ化することが可能です。
最終的にはこのようなグラフが出来上がります。
cacti02

Apacheの設定変更

まずは、Apacheの設定変更を行います。Cactiの在るサーバからstatusを閲覧できるように以下のように設定します。

# ExtendedStatus controls whether Apache will generate "full" status
# information (ExtendedStatus On) or just basic information (ExtendedStatus
# Off) when the "server-status" handler is called. The default is Off.
#
ExtendedStatus On

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 192.168.1.100/32
</Location>

最後の

    Allow from 192.168.1.100/32

にはCactiのサーバのIPアドレスを入力します。
設定が完了したら

 service httpd reload

Cactiサーバから確認

cactiサーバにブラウザが入っていたら
http://WEBホストのURL/server-status
にアクセスしてください。
入っていない場合はコマンドで

# curl http://WEBホストのURL/server-status?auto
Total Accesses: 35000169
Total kBytes: 43266836
CPULoad: .361272
Uptime: 83170
ReqPerSec: 420.827
BytesPerSec: 532707
BytesPerReq: 1265.86
BusyWorkers: 9
IdleWorkers: 19
Scoreboard: .R.C.__._._C____.C___C____W.K.K.._........_....._.....R.._......................................................................................................................................................................................................

こんな感じで出ます。

Cactiサーバにファイルをダウンロード

こちらからスクリプトをダウンロードできます
[XML] successor to apachestats 0.4

まずは、perlのスクリプトをcactiサーバにダウンロードします。
cactipl

ダウンロードしたらFTPとかでcactiサーバの/tmpとかにアップロードします。

# cp /tmp/ws_apachestats.pl.gz /usr/share/cacti/scripts/
# cd /usr/share/cacti/scripts/
# gzip -d ws_apachestats.pl.gz
# chmod +x ws_apachestats.pl.gz

次にこのスクリプトが正常に動くか確認です。

# perl ws_apachestats.pl [WEBサーバ名]
apache_total_hits:35001207 apache_total_kbytes:43343528 apache_busy_workers:48 apache_idle_workers:0 thread_O:204 threadC:0 threadD:0 threadG:0 threadI:0 threadK:45 threadL:0 threadR:2 threadS:4 threadW:1 thread_W:0 apache_cpuload:.365706

こんな感じで出たらOKです。

テンプレートの設定

まずは、テンプレートをダウンロードします。先ほどのパールのスクリプトをダウンロードしたページにあります。

cactixml

次にグラフ化のテンプレートを設定します。cactiの管理画面に入って左側の「Import Template」をクリックします。

graph03
参照ボタンをクリックしてダウンロードしたテンプレートを指定します。

graph04

以下のようにSuccessと表示されると思います。

graph05

グラフを表示

ここまできたらあとはグラフを表示するだけです。メニューの右側から「Device」をクリックして、表示させたいWEBサーバを選択します。「Create Graphes for new host」をクリックします。
graph06

次に表示させたい計測結果のテンプレートを選択します。
graph07

このように表示させる色などの選択画面が出ますのでそのままCreateします。
graph08

次に右側のメニューから「Graph Trees」を選択したらサーバの一覧が出ますので、追加したいWEBサーバを選択します。そこで下記のようにグラフを選択すればグラフが表示されるようになります。graph09