Cactiのカスタマイズ設定について以下にまとめました。
Cactiでより柔軟な監視を行う為に、ここではPollerTypeの変更方法と、基本的なプラグインのインストールについて説明します。
Cactiのインストール、及び初期設定についてはこちらを参照下さい。
・Poller Typeの変更
Cactiが監視機器からデータを取得するタイミングは、デフォルトで5分間隔です。
この時、監視機器が多くなるとデータ取得が5分以内に終わらずに、グラフが作成されない事態に陥ります。
これを防ぐ為にも、デフォルトで用意されているPollerのcmd.phpを、より高速なSpineに変更します。
以下では、Spineを利用する為に必要なソフトウェアのインストール、及び設定を説明します。
- 事前準備
 Spineの動作に必要な為、 mysql-devel がインストールされている事を確認します。
 [root@cacti-test ~]# rpm -qa | grep mysql-devel 
 mysql-devel-5.0.77-4.el5_5.4mysql-develが存在しない場合は、適宜インストールして下さい。 
- Spineのインストール
 Spineのアーカイブファイルをダウンロードし、展開後、インストールします。
 [root@cacti-test ~]# cd /usr/local 
 [root@cacti-test local]# wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
 [root@cacti-test local]# tar xvzf cacti-spine-0.8.7g.tar.gz
 [root@cacti-test local]# cd cacti-spine-0.8.7g
 [root@cacti-test cacti-spine-0.8.7g]# ./configure --prefix=/usr/local/spine
 [root@cacti-test cacti-spine-0.8.7g]# make
 [root@cacti-test cacti-spine-0.8.7g]# make installデフォルトで設定ファイルのspine.conf.distが生成されます。これをコピーしてspine.confとして利用します。 
 尚、自動的にMySQLの接続設定がされていますが、念の為、内容が正しい事を確認して下さい。[root@cacti-test cacti-spine-0.8.7g]# cd /usr/local/spine/etc/ 
 [root@cacti-test etc]# cp -p spine.conf.dist spine.conf
 [root@cacti-test etc]# cat spine.conf
 example)
 DB_Host localhost
 DB_Database cacti
 DB_User cactiuser
 DB_Pass cactiuser
 DB_Port 3306
 DB_PreG 0
- Cactiの画面から設定
 Cactiの画面から、 [Settings] リンクを押下し、 [Path] タブを表示させます。
 その後、 [Spine Poller File Path] の項目にSpineをインストールしたパスを追記して 「Save」 ボタンを押下します。  次に、 [Poller] タブを表示させ、 [Poller Type] の項目を に設定して 「Save」 ボタンを押下します。  最後に、設定から5分程度待って、cactiのログを確認し、Spine( Methodがspineになっている事)で実行されている事を確認します。
 [root@cacti-test etc]# tail /var/www/cacti/log/cacti.log | grep "Method" 
 11/11/2010 02:25:03 PM - SYSTEM STATS: Time:1.1945 Method:spine Processes:1 Threads:1 Hosts:4 HostsPerProcess:4 DataSources:38 RRDsProcessed:32
・パッチの適用
Cacti Usersのプラグインを利用するには、Cactiにパッチを適用する必要があります。
プラグインのインストールについては後述しますが、ここではその下準備としてパッチの適用手順を説明します。
- Cacti UsersサイトからPlugin Architectureをダウンロードし、パッチを適用します。
 [root@cacti-test etc]# cd /usr/local 
 [root@cacti-test local]# wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
 [root@cacti-test local]# tar xvzf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
 [root@cacti-test local]# cd cacti-plugin-arch/
 [root@cacti-test local]# cp -p cacti-plugin-0.8.7g-PA-v2.8.diff /var/www/cacti/
 [root@cacti-test local]# cd /var/www/cacti/
 [root@cacti-test cacti]# chown cactiuser:cactiuser cacti-plugin-0.8.7g-PA-v2.8.diff
 [root@cacti-test cacti]# patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
- 同梱のpa.sqlを利用して、cactiデータベースにプラグイン用のテーブルを作成します。
 [root@cacti-test cacti]# cd /usr/local/cacti-plugin-arch 
 [root@cacti-test cacti-plugin-arch]# mysql -u cactiuser -p < pa.sql cacti
- プラグイン用のテーブルが作成された事を確認します。
 [root@cacti-test cacti-plugin-arch]# mysql -u cactiuser -p cacti 
 mysql> show tables like '%plugin%';
 以下のテーブルが作成されている事を確認します。
 ・plugin_config
 ・plugin_hooks
 ・plugin_realms
 ・plugin_db_changes
 mysql> quit;
・各種プラグインのインストール
ここでは、以下のプラグインのインストール方法を説明します。 
| プラグイン | 概要 | 
| Thold | Cactiで監視している機器がダウンした時や、グラフの値が設定したしきい値を超えて変化した時に、アラートメールを送る事が出来るプラグイン。 | 
| Settings | プラグイン個別の設定を保存する為のプラグイン。Tholdプラグインを適用する為には必須。 | 
| Update | Cacti本体とインストールされているプラグインのアップデートを確認する事が出来るプラグイン。 | 
 
- Tholdプラグインのインストール
 Cacti UsersサイトからTholdプラグインのアーカイブファイルをダウンロード、展開して生成されたtholdディレクトリ配下を、/var/www/cacti/plugins/以下へ移動します。
 [root@cacti-test cacti-plugin-arch]# cd /usr/local/ 
 [root@cacti-test local]# wget http://cactiusers.org/downloads/thold.gzip
 [root@cacti-test local]# tar xvzf thold-0.4.2.tar.gz
 [root@cacti-test local]# chown -R cactiuser:cactiuser thold
 [root@cacti-test local]# mv thold /var/www/cacti/plugins/同梱のThold.sqlを利用して、cactiデータベースにTholdプラグイン用のテーブルを作成します。 [root@cacti-test local]# cd /var/www/cacti/plugins/thold/ 
 [root@cacti-test thold]# mysql -u cactiuser -p < thold.sql cactiTholdプラグイン用のテーブルが作成された事を確認します。 [root@cacti-test thold]# mysql -u cactiuser -p cacti 
 mysql> show tables like '%thold%';
 以下のテーブルが作成されている事を確認します。
 ・thold_data
 ・thold_template
 ・plugin_thold_template_contact
 ・plugin_thold_threshold_contact
 ・plugin_thold_contacts
 ・plugin_thold_log
 mysql> quit;
- Settingsプラグインのインストール
 Cacti UsersサイトからSettingsプラグインのアーカイブファイルをダウンロード、展開して生成されたsettingsディレクトリ配下を、/var/www/cacti/plugins/以下へ移動します。
 [root@cacti-test thold]# cd /usr/local/ 
 [root@cacti-test local]# wget http://cactiusers.org/downloads/settings.tar.gz
 [root@cacti-test local]# tar xvzf settings-0.5.tar.gz
 [root@cacti-test local]# chown -R cactiuser:cactiuser settings
 [root@cacti-test local]# mv settings /var/www/cacti/plugins/
- Updateプラグインのインストール
 Cacti UsersサイトからUpdateプラグインのアーカイブファイルをダウンロード、展開して生成されたupdateディレクトリ配下を、/var/www/cacti/plugins/以下へ移動します。
 [root@cacti-test local]# wget http://cactiusers.org/downloads/update.gzip 
 [root@cacti-test local]# tar xvzf update-0.4.tar.gz
 [root@cacti-test local]# chown -R cactiuser:cactiuser update
 [root@cacti-test local]# mv update /var/www/cacti/plugins/同梱のupdate.sqlを利用して、cactiデータベースにUpdateプラグイン用のテーブルを作成します。 [root@cacti-test local]# cd /var/www/cacti/plugins/update/ 
 [root@cacti-test update]# mysql -u cactiuser -p < update.sql cactiUpdateプラグイン用のテーブルが作成された事を確認します。 [root@cacti-test update]# mysql -u cactiuser -p cacti 
 mysql> show tables like 'plugin_update_info';
 以下のテーブルが作成されている事を確認します。
 ・plugin_update_info
 mysql> quit;
- Cactiの設定ファイル(config.php)を編集
 CactiのURLパスの設定を以下の通り編集し、「http://ホスト名(or IP)/cacti/」でCactiの画面が表示されるようにします。
 [root@cacti-test update]# vi /var/www/cacti/include/config.php 
 ### 編集前
 #$url_path = "/";
 ### 編集後
 $url_path = "/cacti/"設定を反映させる為に、Apacheを再起動します。 [root@cacti-test cacti]# /etc/init.d/httpd restart 
 httpd を停止中: [ OK ]
 httpd を起動中: [ OK ]
- Cactiの画面から設定
 Cactiの画面から、adminユーザの設定で [Plugin Management]の項目にチェックを入れ、「Save」ボタンを押下します。  [Plugin Management]の項目にチェックを入れる事によって、左側のメニュー欄に[Plugin Management]のメニューが表示されるようになります。[Plugin Management]リンクを押下すると、今回適用したプラグインの一覧が表示されるので、それぞれ[Actions]項目のアイコンを押下してインストールします。  Cactiのカスタマイズ設定については以上です。 

