2007/8/18 土曜日

Cactiでネットワーク機器を監視しよう@Windows その2

Filed under: PC — pnpk @ 5:28:10

■Cactiのインストール 〜環境構築その1〜
必要なアプリケーションのダウンロード〜PHPのインストールまでを今回は行います。

※今回用いたテスト環境はWindows Server 2003 R2 SP2です。また特に記載が無い場合にはデフォルト設定となっています。他のOSの場合若干動作が異なる可能性がありますのでご了承を。

■必要アプリケーションのダウンロード

Cactiをインストールする前に必要なアプリケーションがあるのでダウンロードしましょう。結構な数あるんですが、まあ根気ですね。適当なディレクトリにダウンロードしてください。

Cacti 0.8.6j (cacti-0.8.6j.zip)
Plugin Architecture - v1.1 (cacti-plugin-arch.zip)
Cactid 0.8.6g (cacti-cactid-0.8.6i-cygwin-1.5.21.zip)
PHP 4.4.7(php-4.4.7-Win32.zip)
MySQL 4.1.22(mysql-4.1.22-win32.zip)
RRDTool 1.049 (rrdtool-1.0.49-win32-bin.zip)
NET-SNMP 5.4.1.1 (net-snmp-5.4.1-1.win32.exe)
ActivePerl 5.8.8.822 (ActivePerl-5.8.8.822-MSWin32-x86-280952.msi)
Cygwin (setup.exe)

■IISのインストール
001.jpg

コントロールパネル→プログラムの追加と削除→Windowsコンポーネントの追加と削除

からIISをインストールしてください。

■Cacti0.8.6jのインストール
004.jpg
“cacti-0.8.6j.zip”を解凍してフォルダ名を”Cacti”に変更後、

C:\Inetpub\wwwroot

にコピーします。

■CactiのConfig設定

C:\Inetpub\wwwroot\cacti\include\config.php

を開き、48行目の

$config['url_path'] = '/';

$config['url_path'] = '/cacti/';

に変更してください。

■Plugin Architectureのインストール
005.jpg
Plugin Architectureはプラグイン機能を付与するアドインファイルです。解凍したら”files-0.8.6j”の中身を

C:\Inetpub\wwwroot\cacti

に上書きコピーしてください。

■PHP 4.4.7のインストール
006.jpg
“php-4.4.7-Win32.zip”を解凍し、

C:\

に名前を”php”に変更してコピーします。続けて

C:\php\dlls

の中のDLLを全て

C:\WINDOWS\system32

にコピーしてください。

マイコンピュータ→プロパティ→詳細設定→環境変数

008.jpg
を開き、”システム環境変数”から”Path”を選択して”編集”を選択して”;c:\php”を追記します。

同じく”システム環境変数”から”新規”を選択して

010.jpg

MIBS=ALL
MIBSDIR=c:\php\mibs
PHPRC=c:\php

を追加します。”PHPRC=c:\php”を追加することで”php.ini”にそのままでPathを通せるようになります。

以下の

C:\php\php.ini-recommended

をコピーして

php.ini

にリネームします。これをメモ帳で開き

385行目
register_argc_argv = Off

register_argc_argv = On

429行目※先頭の;も忘れずに
;include_path = ".;c:\php\includes"

include_path = ".;c:\php\includes;C:\php\PEAR"

436行目
doc_root =

doc_root = "C:\Inetpub\wwwroot"

443行目
extension_dir = "./"

extension_dir = "C:\php\extensions"

578行目
;extension=php_ldap.dll

extension=php_ldap.dll

592行目
;extension=php_snmp.dll
;extension=php_sockets.dll

extension=php_snmp.dll
extension=php_sockets.dll

を変更します。
※LDAP認証を行わない場合には578行目は必要無いです

■IISの設定
PHPがIIS上で実行出来るようにIISの設定を変更します。

ファイル名を指定して実行→inetmgr

を実行して”IISマネージャ”を開き、

015.jpg

Webサイト→プロパティ

を開きます。

016.jpg

Webサイトのプロパティ→ホームディレクトリ→構成→マッピング→追加

C:\php\sapi\php4isapi.dll

を登録します。

Webサイトのプロパティ→ISAPIフィルタ

を選択し、”追加”で同じく”PHP”を追加します。

018.jpg

Webサイトのプロパティ→ドキュメント

index.php

を追加します。

020.jpg

Webサービス拡張→新しいWebサービス拡張を追加

で”PHP”を登録します。

ファイル名を指定して実行→iisreset

の後、

C:\Inetpub\wwwroot

index.php

を作成し、中身を

<?php
 phpinfo();
?>

として保存します。その後

http://localhost

にアクセスして以下のような画面が出ればOKです。
022.jpg

PHPのモジュールが上手く動作しているかを確認するにはコマンドプロンプトで

php -m

と入力しても確認する事が出来ます。

次回はMySQLのインストールから始めます。

Popularity: 10%

コメント (10) »

  1. こんにちは。
    いつも楽しく読ませていただいております。

     私もCactiをインストールしてみましたが、各アプリを導入後ブラウザで
    http://localhost/cacti/を入力したところ、IEの画面で下記のエラーが
    出ました。
    **************************************
     Error

    You have created a new database, but have not yet imported the ‘cacti.sql’ file. At the command line, execute the following to continue:

    mysql -u cactiuser -p cacti

    コメント by よはん — 2008/4/2 水曜日 @ 13:54:58

  2. コメントありがとうございます。
    cacti.sqlがインポートされていないという事なのでとりあえず

    http://pnpk.net/cms/archives/276

    こちらの

    ■TABLEの作成

    この項目を実行してみてください。

    コメント by pnpk — 2008/4/2 水曜日 @ 14:53:26

  3. こんにちは。
    レスありがとうございます。
    http://pnpk.net/cms/archives/276
    の作業はすべておこなったのですが上述のエラーが出ます。
    cacti.sqlを再度インポートするとERROR 1050 (42S01) at line 5: Table ‘cdef’ already existsと返されます。似たような経験はおありでしょうか?

    コメント by よはん — 2008/4/3 木曜日 @ 10:01:15

  4. コメントありがとうございます。

    既にテーブルありますよ。という事ですね。

    http://forums.cacti.net/post-86725.html

    こちらのフォーラムに同じ現象の事が記載されておりました。

    cacti.sqlをインポートした時のエラーは”既にテーブルがあるからテーブル追加出来ませんよ”という事で、ブラウザ上からアクセスしたものについてはテーブルがありませんよ。という事ですね、ややこしいです。

    おそらくCactiを実行するユーザに対してCacti用のテーブルのアクセス権限が付与されていないのだと思います。

    http://pnpk.net/cms/archives/276

    こちらの■ユーザ設定のあたりにGRANTっていうコマンドを実行している部分があるんですがこのあたりをもう一度実行してみてください。

    切り分け方法としては一度Cactiに登録しているMYSQLのユーザをcactiuserではなくrootに変更してCactiがきちんと動作するか見てみるのも良いかも知れません。

    コメント by pnpk — 2008/4/3 木曜日 @ 16:58:28

  5. こんばんは。
    素早い返事ありがとうございます。 
    実はhttp://forums.cacti.net/post-86725.htm
    のフォーラムは質問する前に確認しました。
     include.phpは確認して、pnpkさんの記述どおりであることは
    確認しました。またデータベースcactiを一旦Dropして再度cactiを生成した
    上でcacti.sqlの再インポートを行ったのですが効果なしでした。
     ユーザcactiuserへのGrant文による権限の付与ですが、これを行った後
    SELECT * FROM mysql.user WHERE User=’cactiuser’ \Gでcactiuserの権限をみると
    すべてNとなってました。
     これは不具合なのでしょうか?

    コメント by よはん — 2008/4/3 木曜日 @ 18:33:46

  6. コメントありがとうございます。
    実はDB詳しく無いのですが分る範囲でお答えいたします。

    rootでログインした後に以下のコマンドでDBに対する権限が分ります。

    SHOW GRANTS FOR ‘cactiuser’@'localhost’;

    以下のようであれば権限は付与されていると思います。

    GRANT ALL PRIVILEGES ON `cacti`.* TO ‘cactiuser’@'localhost’

    また、設定変更した後には必ず

    flush privileges;

    を実行してください。

    また、すべてNとなってましたという部分についてはcactiuserに対する権限ですよね?そうであれば画面見ていないので確実では無いですが、おそらく問題無いと思います。

    コメント by pnpk — 2008/4/3 木曜日 @ 19:15:54

  7. お疲れ様です。
    SHOW GRANTS FOR ‘cactiuser’@’localhost’;
    実行した結果、GRANT ALL PRIVILEGES ON `cacti`.* TO ‘cactiuser’@’localhost’が出ました。よって権限は付与されてると思います。
     今回は「にわか鯖管のメモ」をメインに、「にわか鯖管のメモ」で分からないところは、pnpkさんのブログを参考にして設定しました。ところでPNPKさんの、archives/276の中の「明示的に短いハッシュを生成」はどういう目的で行うのでしょうか?
     ここは「にわか鯖管のメモ」には記述されてなく、目的もわからなかったので
    あえて設定していません。ひょっとするとここが原因ということは考えられない
    でしょうか?pnpkさんのブログのarchives/275、276の手順は,「明示的に短いハッシュを生成」以外は全て行ってます。

    コメント by よはん — 2008/4/4 金曜日 @ 11:38:31

  8. こんにちは、コメントありがとうございます。

    明示的に短いハッシュを生成というのはMySQLの認証に古いタイプの認証を許可させる手順です。

    自分で試した時にこのコマンドを実行しなければCacti動作しなかったと記憶しています。

    にわか鯖管のメモさんのページに記載が無いのはMYSQLのバージョン差異によるものかな?と思います。

    ただし最新のMYSQLで動作確認していないので今もこの手順が必要かどうかは分りませんが、この記事を書いた時点ではこの手順が必要でした。

    以下のサイトにも同様の記載ありますのでこちらも一度参照してみてください。

    http://docs.cacti.net/node/457

    If you are running MySQl 4.1 and above…とありますのでMYSQL4.1以上を使う場合にはこの手順必要なようです。

    コメント by pnpk — 2008/4/4 金曜日 @ 12:12:20

  9. ありがとうございます。
    ようやく問題解決しました。
     ユーザーCactiに全権限を付与したあと、明示的に短いハッシュを生成したところ
    Cactiの初期設定画面が表示されました。
     私のために毎回クイック&的確なレスを返してくださいまして誠にありがとう
    ございました。
     pnpkさんの協力がなければここまで辿り着けなかったとおもいます。

    最後に一点だけ疑問なのですが「古いタイプの認証」とはどういう意味なんでしょうか? 

    コメント by よはん — 2008/4/4 金曜日 @ 15:27:40

  10. コメントありがとうございます。
    お役に立てたようでなによりです。

    古いタイプの認証についてなんですが、こちらMYSQLのパスワードハッシュについて記載されたサイトを見つけたので参照してみてください。

    4.7.9. MySQL 4.1 のパスワードハッシュ
    http://dev.mysql.com/doc/refman/5.1/ja/password-hashing.html

    コメント by pnpk — 2008/4/4 金曜日 @ 19:26:57

コメント RSS トラックバック URI

コメントをどうぞ

HTML convert time: 0.646 sec. Powered by WordPress ME