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

Cactiでネットワーク機器を監視しよう@Windows その1
Cactiでネットワーク機器を監視しよう@Windows その2
Cactiでネットワーク機器を監視しよう@Windows その3
Cactiでネットワーク機器を監視しよう@Windows その4
Cactiでネットワーク機器を監視しよう@Windows その5
Cactiでネットワーク機器を監視しよう@Windows その6
Cactiを便利に使おう@Cacti Templates

■Cactiのインストール 〜環境構築その2〜
今回はMySQLのインストール〜Cactiの起動画面表示までを解説しますね。インストールするアプリケーションが多いのでそのへんがややこしいですね。

■MySQLのインストール
MySQLのインストールのインストールを行います。インストールPathなんかはCactiのデフォルト設定に合わせるために変更してしまうことにします。

001.jpg
“mysql-4.1.22-win32.zip”を解凍して”Setup.exe”を実行します。

002.jpg
Customを選択してNext

003.jpg
インストール先を

C:\mysql\

に変更したらNext

004.jpg
Installをクリック

005.jpg
Skip Sign-Upを選択してNext

006.jpg
Configure the MySQL Server nowにチェックを入れてFinish

007.jpg
Nextをクリック

008.jpg
Standard Configurationを選択してNext

009.jpg
Install As Windows Service(Service NameはMySQL)、Include Bin Directory in Windows PATHにチェックを入れてNext

010.jpg
rootパスワードを入力してNext

011.jpg
Executeをクリック

012.jpg
画面のように設定が完了したようであればFinishをクリックして終了します。

■DATABASEの作成それではCacti用のデータベース作成を行いましょう。コマンドプロンプトを開き

mysqladmin --user=root -p create cacti

と入力します。パスワードを求められた場合には先ほどのRootパスワードを入力してください。

■TABLEの作成
続けて”C:\Inetpub\wwwroot\cacti\cacti.sql”を読み込みます。

mysql --user=root -p cacti < C:\Inetpub\wwwroot\cacti\cacti.sql

■ユーザ設定
ちょっと分かりにくいかも知れませんが、操作としては以下のコマンドを順に入力すればOKです。

ログイン

mysql --user=root -p

データベース変更

use cacti;

ユーザ"cactiuser"にデータベース"cacti"に対してフルコントロール権限を付与

GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';

設定ファイル再読み込み

flush privileges;

明示的に短いハッシュを生成

UPDATE mysql.user SET Password = OLD_PASSWORD('cactiuser') WHERE Host = 'localhost' AND User = 'cactiuser';

設定ファイル再読み込み

flush privileges;

■RRDTool 1.0.49のインストール
"rrdtool-1.0.49-win32-bin.zip"を解凍したら"rrdtool"にリネームして

C:\

にコピーします。

※2008/08/19追記
"rrdtool-1.2.15-win32-perl58.zip"をインストールした方がグラフがキレイに表示されたのでこちらをお勧めします。
ダウンロードはこちらから行ってください。

ダウンロード後、適当なディレクトリに解凍したら

rrdtool\Release

の中にある

rrdcgi.exe
rrdtool.exe

C:\rrdtool

にコピーします。既にRRDTool 1.0.49のインストールを行っている環境の場合は一度ファイルを消してからコピーしてください。(微妙に名前の違うファイルがあるからです)バージョンによってCactiの管理画面の設定(RRDTool Utility Version)を変更しなければならないので忘れないようにしてください。

■Net-SNMP 5.4.1のインストール

013.jpg
"net-snmp-5.4.1-1.win32.exe"を実行します。

014.jpg
I accept...を選択してNext

015.jpg
Nextをクリック

016.jpg
インストール先を"C:\net-snmp"に変更してNext

017.jpg
Installをクリック

018.jpg
Finishをクリック

■ActivePerl 5.8.8.882 のインストール

019.jpg
"ActivePerl-5.8.8.822-MSWin32-x86-280952.msi"を実行します。

020.jpg
I accept...を選択してNext

021.jpg
Nextをクリック

022.jpg
Nextをクリック

023.jpg
Installをクリック

024.jpg
Finishをクリック

025.jpg

http://<サーバー名>/cacti/

にアクセスして"Cacti Installation Guide"が表示されたらOKです。

9 COMMENTS

pnpk

少し長くなってしまったのでメモみたいになってますが別に記載しました。

Cactiのindex.phpはアクセスした状態ではMYSQLに接続するわけでは無いので、この状態でPHPの応答が停止するようであればPHPに問題があるのかもしれません。

この場合はphp.iniを初期状態に戻すか、phpを再インストールしてみるのがいいと思います。

また、index.phpの中に多数別のphpファイルを読み込んでいる部分があるのですが、これらにもアクセス権限があるか確認してみてください。

てっとり早くアクセス権限を確認する方法はsysternalsのFileMonをサーバ側で実行し、ファイルアクセスの状態を確認する事です。

http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx

ブラウザでCactiにアクセスした際、FileMon経由でファイルに正常にアクセス出来ているか確認出来ます。
※英語ですがなんとなく直観で操作出来ると思います。

FileMonはアクセス権限設定を確認する際によく利用しています。

pnpk

こんばんは、コメントありがとうございます。
なるほど、了解いたしました。

Cacti 0.8.6jの動作条件を調べてみたところ、

Cacti requires that the following software is installed on your system.
 ・RRDTool 1.0.49 or 1.2.x or greater
 ・MySQL 3.23 or greater, 4.0.20d or
  greater highly recommended for advanced features
 ・PHP 4.1 or greater, 4.3.6 or greater highly
  recommended for advanced features

となっていましたので、導入したアプリケーションが要件を満たしていないという事は無さそうです。

フォーラムによると各アプリケーションを最新版にアップデートした場合に、上記のエラーであれば解決したという事が書いてありましたが、Cacti以外、それぞれ最新のものをお使いのようですしこの辺は関係無いかも知れませんね。

その他いくつか試してみてください。的な書き込みを見つけたので試してもらっても良いでしょうか。

1.Zend Encoderを無効にする
Zend Optimizerを利用している場合のみ改善する可能性ありますが、正直WEBアプリケーションは苦手です。

php.iniファイルに以下を追加してください。

zend_optimizer.enable_loader = 0

参考
http://www.webmasterworld.com/php/3314213.htm

2.Cactiのバージョンを上げてみる

http://www.cacti.net/downloads/

こちらを確認したところ、Cacti 0.8.6系の最新版はcacti-0.8.6kというバージョンなので、こちらを利用して現象が再現するか確認出来ますでしょうか。

3.設定を再度見直す

php.iniの設定ファイルの見直し、もしくはPHPを一度アンインストールして、再度インストールしなおすことは出来ますでしょうか。

また、自分で記載した内容で恐縮なのですが1年以上前に記載した内容なので若干内容が古いです。(例えばPHP4は既にサポートが終わっていますので使い続けるのはセキュリティ上問題が起こる可能性があります)

ですので、時間が許せばという曖昧な回答になってしまいますが、最新版を利用した手順も準備しようと思います。

適格でないアドバイスのみで恐縮ですが、上記を確認いただけますでしょうか。

よろしくお願いします。

manami

何度もすいません。
まず、PHPが正常に動作していることは確認しております。
http://localhostで手順と同様の画面が表示されます。

以下が核アプリケーションのバージョンです。
Winsows Server 2003 R2 SP2
PHP 4.4.9
MySQL 4.1.22
Cacti 0.8.6j
となっております。出来るだけ手順に書かれているバージョンを
用意したつもりですが、手に入らなかったものもあり、手順とは
違うバージョンのものを使用したりしています。

また、エラーメッセージですが、すいません、正しい文章を
控えなかったため、分かりません。
本トラブルの切り分けができれば幸いです。

何卒宜しくお願い致します。

pnpk

こんばんは。
インターネット上を検索してみたところ、記載いただきましたエラーは発見出来ませんでした。

名前の近いエラーがあったのですがこちらでよろしいでしょうか。

“PHP has encountered a Stack overflow”

Cactiフォーラムにこのエラーであれば記載がありました。SQLの設定に問題があるとこのメッセージが表示されるとかしないとか書いてある気がしますが、具体的な解決方法は分りませんでした。

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

同様のエラーに遭遇した事が無いので適格なアドバイスは出来ませんが、差し支え無ければまず以下を確認した結果を教えていただけますでしょうか。

・OSは何を使っていますか
・PHPのバージョンはいくつですか
・MySQlのバージョンはいくつですか
・Cactiのバージョンは最新ですか

Cactiは複数のアプリケーションが連携して動作しているのでちょっとややこしいかもしれません。ですので、根本的な部分ですが、PHP、MYSQLはきちんと動作していますでしょうか。

追記ですが、

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

の項目を参照していただき、PHPがそもそも動作するか確認してみてください。

よろしくお願いいたします。

manami

早速のお返事ありがとうございました。
アクセス権を調整した結果、WEBサイトに接続しました、応答を待っています。
というメッセージがIEの下に出るのですが、その後、ページを表示できませんと
出てしまいます。

1度だけ、ブラウザに文字が表示されましたが、
PHP has stack Overflowと出ていたようです。一度しか表示されなかったので
文章が正確ではないかもしれません。

何度も申し訳ありませんが、ご教授頂ければ幸いです。

pnpk

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

ローカルのadministratorでIISにWebブラウザ経由でアクセスしているという事でよろしいでしょうか。

Webブラウザ経由でIISにアクセスした場合、IISで明示的に認証設定を行っていない限りは、IISをインストールした時にローカルユーザの中に作成されるIUSR_XXXXというアカウントでIIS上のコンテンツは実行されます。

ですので、IUSR_XXXX、に対して、Cactiディレクトリ配下に読み取り属性があるかアクセス権限を確認してみてください。

この現象はCactiディレクトリをIISの公開ディレクトリ配下に切り取り・貼り付けでフォルダを置くと発生する事があります。(アクセス権限が継承されないためです。)

今スタンドアローンのIISサーバが無かったので試せていませんが、Active Directoryに参加しているサーバですと、IUSR_XXXXでは無く、Authentication Users(詰まる所ローカルUsersという事です。)にアクセス許可が必要なようでした。

IISを既定ディレクトリにインストールしている場合には

C:Inetpubwwwroot

配下にCactiが展開されていると思いますので、wwwrootを一度も削除していなようであればwwwrootのセキュリティ権限を

“子オブジェクトすべてのアクセス許可エントリを、ここに表示されているエントリで子オブジェクトに適用するもので置換する”

にチェックを入れて適用してみてください。

また、今回の件、簡単な切り分け方法として、

C:Inetpubwwwroot

配下に新規作成で適当なファイルを作ってみて、これにIIS経由でアクセスしてみてください。これが表示されればCactiのアクセス権限がおかしい可能性が高いです。

以上を一度ご確認いただけますでしょうか。

よろしくお願いいたします。

manami

こんにちは。
一応、手順通りに進めてきたつもりですが、最後にhttp:///cacti/
をIEで開こうとしたところ、「このページを表示する権限がありません」と
出てしまいました。サーバ名のところをIPアドレスにしても同じでした。
また、localhostでも試しましたが、同じです。

アクセスしているのはローカルのadministratorです。
どうしたら良いのでしょうか。ご教授ください。宜しくお願いします。

このページを表示する権限がありません
Web サーバーでこのリソースに対して構成されているアクセス制御リスト (ACL) により、このディレクトリまたはページを表示できません。

よはん

早速のレスありがとうございます。
投稿内容が4分の3位カットされた模様です。

 PKNKさんがレスされた手順は全ておこないました。
その上で、http:///cactiをIEで入力すると
上述のエラーが出たのです。
 念のために、DosプロンプトでC:\Inetpub\wwwroot\cacti>mysql -u cactiuser -p cacti

コメントを残す

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