チャプター 3.Windowsへのインストール

必要となるソフトウェア構成

  1. (任意) Apache> - WindowsでIISを実行している場合はこのソフトウェアは不要です。

  2. Cacti> - Zip形式で配布されているパッケージを、Webルートもしくは任意の場所へインストールします。 大抵の場合は、"Cacti"というディレクトリを作成して、その中にインストールするのが望ましいでしょう。

  3. Spine - Zip形式で配布されているパッケージを、"c:\cacti" へインストールします。その際、"spine.conf.dist"がそのディレクトリ内に作成されますのでこれを確認します。

  4. RRDTool - CactiのWebサイトからインストールします。インストールは、"c:\cacti"に行ってください。

  5. PHP 4.3.6+ または 5.x - "c:\php"へインストールします。もし、"c:\Program Files\php"にインストールする場合は、Cactiからバイナリを参照する時に8.3形式のファイル名で指定する必要があります。

  6. MySQL 4.x または MySQL 5.x - デフォルトで指定されている場所へインストールします。これは通常、" c:\Program Files\MySQL\MySQL Server X.XX"になります。

  7. (任意) Cygwin - CygwinのWebサイトから"setup.exe"をダウンロードし、実行します。 "setup.exe"は今後も構成を変更する場合に必要となりますので削除せずに保管しておきます。

  8. (任意) Net-SNMP - "c:\net-snmp"へインストールします。もし、"c:\Program Files\net-snmp"にインストールする場合は、Cactiからバイナリを参照する時に8.3形式のファイル名で指定する必要があります。

PHPの設定

  1. PHP4を使用している場合は、"c:\php\dlls"内にあるファイルを"c:\php"へ移動します。

  2. Windowsの環境変数"PATH"に "c:\php"を追記します。環境変数の設定はコントロールパネルを開いて、[システム]-[詳細設定]-[環境変数]-[システム変数]で行えます。

  3. Windowsの環境変数に、"PHPRC"を新規に作成し、 "c:\php"を設定します。

  4. 現在使用しているWindowsの環境変数に、"MIBDIRS"変数を新しく作成します。変数へ指定する値は、PHP4であれば" PHP 4, set it to c:\php\mibs"を設定し、PHP5であれば、"c:\php\extras\mibs"を設定します。

  5. PHP4.3.5またはそれ以下の場合は、"c:\tmp"を作成します。

  6. "c:\php\php.ini.dist"のファイル名を、"php.iniに変更して、内容を次のように変更します。

    PHP4を使用している場合は、次の行を追記もしくはコメントアウトされている部分の解除を行います。

    extension_dir = c:\php\extensions
    extension=php_snmp.dll
    extension=php_sockets.dll
    cgi.force_redirect = 0

    PHP5を使用している場合は、次の行のコメントアウトされている部分を解除します。

    extension_dir = c:\php\ext
    extension=php_mysql.dll
    extension=php_snmp.dll
    extension=php_sockets.dll
    cgi.force_redirect = 0

    PHP4.3.5もしくはそれ以下を使用している場合は、次の行を追加します。
    尚、4.3.6もしくはそれ以上を使用している場合にこの行がある場合は削除してください。

    session.save_path=c:\tmp
  7. PHPのインストールガイドには、特定のDLLファイルは事前に" c:\winnt\system32"へ移動しておくことが推奨されています。その場合、それらのファイルを削除する必要があります。ファイルを削除する方法については、PHPのインストールマニュアルを参照してください。

  8. Cactiでテンプレートファイルをインポート出来るようしたい場合は次の行のコメントアウトを解除します:

    file_uploads = On
  9. スケジュールされたタスクをユーザーが実行するために、Windowsの環境変数"MIBDIRS"に設定しているディレクトリ内の".index"ファイルへのアクセス権を変更します。

WEBサーバ(Apache)の設定

  1. ApacheをインストールまたはApacheが指定のポートへ設定されていることを確認する前に、まず現在のシステム上でIIS Webサーバが停止していることを確認してください。

  2. Apacheのバージョンが1.3.xで使用している場合は、PHP5をインストールすることはお勧めできません。 もしPHP4を使用している場合は、"httpd.conf"に次の行を追加します。ファイルの編集はタスクバーの[スタート]-[すべてのプログラム]-[Apache HTTP Server X.XX]-[Configure Server]-[Edit the httpd.conf file]から行えます。

    Apacheのバージョンが1.3.xでかつ、PHP4を使用している場合は、次の行を追加します:

    LoadModule php4_module c:\php\sapi\php4apache.dll
    AddModule mod_php4.c
    AddType application/x-httpd-php .php
    DirectoryIndex index.html index.htm index.php

    Apacheのバージョンが2.xでかつ、PHP4を使用している場合は、次の行を追加します:

    LoadModule php4_module c:\php\sapi\php4apache2.dll
    AddType application/x-httpd-php .php
    DirectoryIndex index.html index.htm index.php

    Apacheのバージョンが2.xでかつ、PHP5を使用している場合は、次の行を追加します。

    LoadModule php5_module c:\php\php5apache2.dll
    AddType application/x-httpd-php .php
    DirectoryIndex index.html index.htm index.php

WEBサーバ(IIS)の設定

  1. インターネット インフォメーション サービス(IIS)マネージャーを起動し、「既定のWebサイト (大抵の場合はこの名前になります)」を右クリックし、プロパティを選択します。

  2. [ホームディレクトリ]タブで、[構成]を選択して、 [追加]をクリックします。表示されたウィンドウの[参照]から"php4isapi.dll"または" php5isapi.dllを選択して拡張子に.phpを指定します。注)IIS6を使用している場合は、「すべての動詞」を選択し、「スクリプトエンジン」を有効にします。

  3. [ISAPIフィルタ]タブで、[追加]をクリックし、 表示されたウィンドウの[参照]から"php4isapi.dll"または"php5isapi.dll"を選択しします。フィルタの名前には"php"として[OK]をクリックします。

  4. [ドキュメント]タブをクリックして、リストに"index.php"を追加します。

  5. IIS6を使用している場合は、「Webサービス拡張」に「新しいWebサービス拡張を追加する」を選択します。拡張名には"php"を指定して、[追加]をクリックします。表示されたウィンドウの[参照]から"php4isapi.dll" または"php5isapi.dll"ファイルを選択します。後は、「拡張の状態を許可済みに設定する」を有効にして、[OK]をクリックします。

  6. "%windir%\system32\cmd.exe"に対して、"IUSR_XXXX"と"IIS_WPG"のユーザーに対する「読み込み」と「実行」のアクセス許可を設定します。 また、"cacti_web_root/cacti"とそのサブフォルダに対しても「読み込み」権限の設定を行います。

  7. IIS6を使用している場合は、"cacti_web_root/cacti/log" と"cacti_web_root/cacti/rrd"のフォルダに対しても、"IIS_WPG"のユーザーに対するアクセス許可の変更を行います。

  8. IISサービスを一旦完全に停止し、再度開始するために、次のコマンドを実行します:

    net stop iisadmin
    net start w3svc

Cygwinのインストール(任意)

  1. Cygwinの単一のインスタンスをインストールし、それを必要とするすべてのアプリケーションで使用することをお勧めします。 ただし、システム上に異なるCygwinのバージョンが存在した場合、競合が発生する可能性があります。

  2. あらかじめ"setup.exe"をダウンロードして、それを実行します。

  3. 「Select Packages」の画面が表示されたら次のパッケージをインストールします:

    Base (include all items)
    Libs
    	libart_lgpl
    	libfreetype26
    	libpng12
    	zlib
    	openssl
    Utils
    	patch
    Web
    	wget
  4. Windowsの環境変数"PATH"に、"c:\cygwin\bin"を追加します。

  5. 今後も構成を変更する場合に使用するため、"setup.exe"を"c:\cygwin"へ移動します。

RRDToolのインストール

  1. Cactiのサイトから取得したRRDToolのZipファイルを解凍して、"rrdtool.exe"をc:\cacti"に置きます。

MySQLのインストール

  1. 一時的なディレクトリへMySQLのZipファイルを解凍して、"setup.exe"を実行します。

  2. MySQLはデフォルトのディレクトリ、もしくはマニュアルが指示する"c:\mysql"へインストールします。

  3. もし旧バージョンのMYSQLが稼動しているのであれば、"c:\mysql\bin\winmysqladmin.exe"コマンドを実行してから始めます。 尚、最近のバージョンではこの作業は不要です。

  4. rootユーザのパスワードを設定します。

    shell> cd mysql\bin
    shell> mysqladmin --user=root password somepassword
    shell> mysqladmin --user=root --password reload
  5. データベースを作成します:

    shell> mysqladmin --user=root --password create cacti
  6. デフォルトのCacti用データベースをインポートします:

    shell> mysql --user=root --password cacti < c:\apache2\htdocs\cacti\cacti.sql
  7. Cactiで使用するMySQLのユーザ名とパスワードを作成します。

    shell> mysql --user=root --password mysql
    mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';
    mysql> flush privileges;
  8. もし使用しているMYSQLが4.1もしくはそれ以上である場合、Cactiが認証できるように古いパスワード形式に関する設定を適用する必要があります。 この変更を行うためには、一旦MySQLのサービスを停止し、起動オプションに次のパラメータを追加したの後に再びMySQLを起動します。

    --old-password

    また、cactiuserアカウントを古いパスワード形式に更新する必要がありますので忘れずに行います。

    shell> UPDATE mysql.user SET Password = OLD_PASSWORD('cactipwd')
    				WHERE Host = 'localhost' AND User = 'cactiuser';
    mysql> FLUSH PRIVILEGES;

Net-SNMPのインストール

  1. もし、SNMP v2cを任意のホストで使用することを考えていて、PHPが初期バージョンであった場合、" Net-SNMP"ライブラリをダウンロードしてインストールする必要があります。"Net-SNMP" は簡単にインストールを行うためにインストーラが提供されています。 尚、Cactiで長い名前のファイル名を使用する場合は、注意が必要になります。 その場合のファイル名は、8.3形式での表記になり、例えば、 "c:\Program Files\Net-SNMP\bin"は"c:\progra~1\net-snmp\bin"になります。

Spineのインストール

  1. "Spine"のZipファイルを、"c:\cacti"へ解凍し、"spine.conf.dist"内の次の設定値を変更します。

    DB_Host	127.0.0.1 or hostname (not localhost)
    DB_Database	cacti
    DB_User		cactiuser
    DB_Password	cacti
    DB_Port		3306

    0.8.6より前にはこの設定はありません。

  2. Spineは現在、バイナリデータとして付属されています。しかし、"sh.exe"とすべてのDLLファイルを "c:\cacti"から削除してCygwinをインストールすることを強くお勧めします。

Cactiの設定

  1. Cactiの設定ファイル"cacti_web_root/cacti/include/config.php"を編集します。
    (設定内容は上から順にデータベースの種類、データベースの名前、接続先のホスト名、ユーザ名、パスワード)

    $database_default = "cacti";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "cacti";
    $database_port = "3306";
  2. ブラウザへ移動します:

    http://your-server/cacti/

    ユーザ名/パスワード欄に"admin"を入力してログインします。 ログインすると、すぐにパスワードの変更が要求されますので行います。

  3. その後、[設定]->[パス]へ移動してパスの指定が正しいか確認または異なっている場合には変更を行います。 ここでは推奨する設定例を記載しています。もしSpineを利用する場合、すべてのパスの指定はバックスラッシュの変わりにスラッシュを使います。

    PHPバイナリのパス:

    c:/php/php.exe

    RRDToolバイナリのパス:

    c:/cacti/rrdtool.exe

    SNMPGET、SNMPWALK、SNMPBULKWALK、SNMPGETNEXTのパス:

    c:/progra~1/net-snmp/bin/snmpget.exe
    c:/progra~1/net-snmp/bin/snmpwalk.exe
    c:/progra~1/net-snmp/bin/snmpbulkwalk.exe
    c:/progra~1/net-snmp/bin/snmpgetnext.exe

    Cactiログファイルのパス:

    c:/mycacti/website/cacti/log/cacti.log

    Spineのパス:

    c:/cacti/Spine.exe
  4. メニュー内の「デバイス」をクリックします。表示されているホストはもともとLinux環境を前提としたLocalhostのためこれを削除して右上隅の[追加]をクリックします。 表示された画面に以下の該当する項目にそれぞれ入力し、[作成]をクリックします。

    名前: My Windows localhost
    ホスト名: localhost
    ホストテンプレート: Windows 2000/XP
  5. 問題がなければ、作成したローカルデバイスの画面が表示されます。画面の左上のローカルデバイス名の下にSNMPの情報が表示されます もし表示されない場合は、サーバのSNMPの設定か、もしくはファイアウォールの設定を確認します。 右上隅にある、「このホストにグラフを作成する」をクリックします。 表示された画面の中で、「ディスクパーティション」と「ネットワークインタフェース」を選択し、ページ下にある「作成」をクリックします。

  6. Cactiのスケジュールタスク用に使うユーザでログインしてCactiのポーリング動作が行えるかどうかを確認します。 確認はコマンドプロンプトから次のコマンドで実行します:

    php c:/cacti_web_root/cacti/poller.php

    出力される内容は次のようになります:

    C:\>php c:\inetpub\wwwroot\cacti\poller.php
    OK u:0.00 s:0.06 r:1.32
    OK u:0.00 s:0.06 r:1.32
    OK u:0.00 s:0.16 r:2.59
    OK u:0.00 s:0.17 r:2.62
    10/28/2005 04:57:12 PM - SYSTEM STATS: Time:4.7272 Method:cmd.php Processes:1 Threads:N/A Hosts:1 HostsPerProcess:2 DataSources:4 RRDsProcessed:2

    この作業を1度行うと、 /cacti/log/"と"/cacti/rra/"にそれぞれ"cacti.log"と"RRDファイルが作成されます。

  7. 管理者権限でログインしてタスクをスケジュールします。ここでは5分後毎に" poller.php"poller.phpを実行するタスクを設定します。 まず、"Task Scheduler"サービスが開始されていることを確認し、下のステップに従ってください。

    注:次の手順はWindowsXPおよびWindows Server 2003に基づく内容となります。Windows 2000の場合はこの手順に近い方法で行うことになります。

    1. [スタート] --> [設定] --> [コントロールパネル]を選択し、 [タスク]をダブルクリックします。

    2. [スケジュールされたタスクの追加]をダブルクリックします。

    3. [次へ]をクリックします。次の画面で[参照]ボタンをクリックし、"c:\php"を探して、その中にある "php.exe"を選択します。その後、[日単位]を選択して、[次へ]をクリックします。

    4. 日時の設定は変更せずにそのまま[次へ]をクリックします。

    5. ユーザ名とパスワードを入力します。 ここで指定するユーザは以下のディレクトリに対して「読み込み」「書き込み」のアクセス権限があることを確認してください:

      cacti_web_root/cacti/rra
      cacti_web_root/log

      また、以下のディレクトリに対して「読み込み」「書き込み」「実行」のアクセス権限があることを確認してください:

      c:\php
      c:\php\sapi
    6. [次へ]をクリックし、[完了]をクリックしてウィザードを閉じます。

    7. 作成したタスクの上で右クリックし、[プロパティ]を選択します。

    8. [スケジュール]タブを選択します。

    9. 日単位」が選択されていることを確認し、[詳細設定]ボタンをクリックします。

    10. タスクを繰り返し実行」のチェックボックスをオンにします。「間隔」は5分に設定し、「継続期間」は24時間に設定します。

    11. [OK]をクリックします。

    12. 実行するファイル名」のテキストボックスに設定されているパスを以下のように変更します。

      c:\php\php.exe c:\mycacti\website\cacti\poller.php

      「開始」のテキストボックスは"c:\mycacti\website\cacti"のようにします。

パッチの適用

  1. パッチの適用には2つの方法があります:

    1. 一つ目として、Cygwinがインストールされている場合は、wgetとパッチを使ってパッチのインストール手順に従って行います。

    2. もう一つの方法として、"http://www.cacti.net/downloads/patches/0.8.6h/pre-patched/ "からパッチが適用されている ファイルをダウンロードし、手作業で同じファイルと置き換えます。

  2. 場合によっては、パッチ適用後に対象となるファイルやフォルダのセキュリティ設定を再度行う必要があるかもしれません。念のため、正しく設定されているか再確認してください。