c/fe

http://d.hatena.ne.jp/uzulla から移行しました。

cacti on windows with XAMPP

Cactiでグラフサーバーを立てた、某ゲームマッチングサーバー運用において必要なのだ。
構築を手抜き簡単にする為にXampp+Cactiで監視サーバーを立てた。


xamppは言わずとしれたワンパッケージでApacheやらMysqlやらPerlやらPHPやらftpdやらがWindowsに導入できるモノ。
CactiWindowsで動かすのに必須なアプリがほぼ一発で入ってしまうので、こりゃCacti on Windowsに最適!と言えるものだが、流石に何カ所かはそのままでは行かなかったのでメモ(コマンドラインの実行環境だけだけどね)。


1,パッケージをそろえる
必要なパッケージは以下の通り。

cacti-0.8.6i.zip
net-snmp-5.3.1-1.win32.exe
rrdtool-1.0.49-win32-bin.zip
xampp-win32-1.5.4a-installer.exe

たった四つ!(linuxならCactiだけでいいんだろうけど(笑))バラバラにいれたらApacheやらMysqlやらPerlやらPHPやら…この何倍になることやら…。
rrdtoolは1.0系なら設定場所が一つ少ない、1.2でも一カ所プルダウン換えるだけだけど。


2,Xamppをインストール
絶対にc:\program files\の中にインストールしない。
ガッツ石松とのOracleインストールに勝った猿もここでは勝てない)
理由はCactiのPoller(Cron(タスク)で回すスクリプト)がスペースの有るディレクトリでは上手く動かない。
例えばc:\optなどに入れる。


他の初期設定などはありふれているので省略。
http://joomla.mu-fan.com/content/view/21/12/
此方などの分かり易いサイトをどうぞ。


3,各パッケージを解凍
cacti以外をc:\optの中に入れる、別でも良いけど当然Program filesの中には入れちゃダメ(だと思う)。
cactiはc:\opt\xampp\htdocsの中に解凍する


4,Cacti用DBの作成
XamppのphpMyAdminなどでCactiで使うDBを作る。
DB名、ユーザー名、パスワードは自由だが、後で使うのでメモる。
例:cacti_db cacti_user cacti_password
phpmyadminの使い方は省略。

phpmyadminのインポータで初期DBデータを作ったcacti_dbにインポートする。
インポートすべきsqlファイルはc:\opt\xampp\htdocs\cacti\cacti.sql


5,Cacti設定
c:\opt\xampp\cacti\include\config.php
をひらき、DBの設定を編集する。

例:
$database_default = "cacti_db";
$database_username = "cacti_user";
$database_password = "cacti_passwd";

ウェブ画面で設定
http://localhost/cacti/
からアクセスする。
各種プログラムのパスは適切に設定する、入れていないプログラムは空欄でOK。


6,Poller.phpの設定
ここがキモ、デフォルトのCactiではDaemonなどがなく、一定時間に一度スクリプトを回して処理が行われる。
Poller.phpコマンドラインphpで呼び出され、内部でPerlを利用している。


マイコンピューターを右クリックしてプロパティをひらき、詳細設定>環境変数をひらく。
システム環境変数のPathにperl.exeとphp.exeへの実行Pathを追加する
!ここの設定をミスるとOSに後遺症が残ります!
例:%SystemRoot%\system32;(略);C:\opt\xampp\perl\bin;c:\opt\xampp\php
最後にperl.exeとphp.exeの入ったディレクトリを区切り文字セミコロンで追加。


「設定後に」cmd.exeをひらき、php -v等として実行出来ることを確認する(単体で実行した場合に入力待ちで固まるのは正しい、Ctrl-Cで抜けて下さい)。
もし見つからないなどといわれればPath設定が間違い。DLLが不足しているなどのエラーメッセージが出た場合、そのDLLを探し(msvcr71.dllならxampp\apache以下に有る筈)、Pathの通った所(c:\windows\system32等)にコピーする。


perlphpが実行できる様になったらば
c:\> php c:\opt\xampp\htdocs\cacti\poller.php
を実行する。

この時、新しくウインドウがひらいたり、画面に多少エラーが出るかもしれない、これは問題無し。

例:
C:\opt\xampp\htdocs\cacti>php poller.php
OK
OK
ERROR: Not enough arguments
OK
OK
OK
OK
OK
OK
11/10/2006 07:12:08 PM - SYSTEM STATS: Time:4.0528 Method:cmd.php Processes:1 Th
reads:N/A Hosts:3 HostsPerProcess:3 DataSources:11 RRDsProcessed:8

等、最後の一行が必ず出る事を確認、チラチラ出るエラーはサンプルのLocalhostの監視設定がLinux向けで有る為で、localhostのグラフ作成を殺せば消える。


7,タスクマネージャにPollerを追加
5分毎に動作するようにタスクマネージャに追加する。
c:\opt\xampp\php\php.exe c:\opt\xampp\htdocs\cacti\poller.php

ウィザードでは五分毎に設定できないので、一度毎日で設定した後でスケジュール>詳細設定から「タスクを繰り返し実行:五分間隔:継続期間24時間」と設定してOKする。


以上でpollerが五分毎に起動するはず。
ためしにタスクを実行して、ちゃんと終了するか(初期ならせいぜい10秒)確認する。前回の結果が0(0x0)かも確認する。



以上でシステム側の設定は完了、後はcactiの設定普通におこなえばOK。


何度も言うが、Xamppって凄い楽でいいね、Tomcatも融合した奴がでないだろうか、XAMPPTみたいな。