cactiのインストール
以前に挫折してそのまま放置していたcactiに再チャレンジ。
cactiを動作させるために必要なソフトウェアは以下のもの。
今回cactiをインストールした機器は、いつものようにSolarisじゃなくてFedraCoreの古いディストリビューションです。Solarisだと、このほかにもzlibやらlibpngやらがPHPから参照されるライブラリとして必要かもしれません。
各ソフトウェアのバージョンにはさほど気を使う必要はないようです。今回は各ソフトウェアの最新バージョンを使いました。
MySQL
まず最初にMySQLをインストールします。
MySQLのダウンロードページから適当な「もの」をダウンロード。昔読んだドキュメントにはパッケージに入っているMySQLは速度や効率など最適化してコンパイル、リンクしているからそっちをインストールしてねって書いてあったような気がします。まぁ、そのあたりは好みだと思います。今回はソースからビルドしました。
最新は5.0.41ですね。今回インストールしたLinux機にはすでにmysqlユーザ、mysqlグループが存在していましたが、それらがない場合は作成してあげる必要があります。
$ tar -zxvf mysql-5.0.41.tar.gz $ cd mysql-5.0.41 $ ./configure --prefix=/usr/local/mysql --with-charset=ujis --with-extra-charsets=all --with-mysqld-user=mysql $ make # make install
初期設定のためにmysql_install_dbを実行します。こいつを実行すると/usr/local/mysql以下にデータやログをためるディレクトリができるので、そのあたりのパーミションも適切に設定します。
# /usr/local/mysql/bin/mysql_install_db # chown -R root /usr/local/mysql # chown -R mysql /usr/local/mysql/var # chgrp -R mysql /usr/local/mysql
MySQLを起動します。
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
MySQLのrootユーザパスワードを変更します。
# /usr/local/mysql/bin/mysqladmin -u root password '変更するパスワード'
このあたりかなり適当に書いています。エラーなど出たらMySQLの参考書を参照してください。
Apacheのインストール
cactiはウェブインタフェイスで各種設定を行うのでウェブサーバが必要です。ウェブサーバとしてApacheをインストールします。
ソースはapacheのページからダウンロード。最新は2.2.4ですね。
$ tar -zxvf httpd-2.2.4.tar.gz $ cd httpd-2.2.3 $ ./configure --enable-modules=all --enable-mods-shared=all $ make # make install
PHPのインストール
続けてPHPをインストールします。多分デフォルトですでに入っていると思いますが、念のため最新をインストール。
ソースはここから入手できます。最新は5.2.2ですね。
$ tar -zvf php-5.2.2.tar.gz $ cd php-5.2.2 $ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-png-dir --enable-mbstring --with-jpeg-dir=/usr --with-zlib-dir=/usr --without-pgsql $ make # make install
httpd.confを編集
httpd.confを編集してApacheからPHPが見えるようにします。以下の三行を追加します。場所はどこでもかまわないのですが、似たようなディレクティブがあるところに置いたほうが見栄えがいいでしょう。
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
それとDirectoryIndexにindex.phpを追加。
DirectoryIndex index.html index.html.var index.php
編集したらapacheを起動。すでに起動していたら再起動。
# /usr/local/apache2/bin/apchectl restart
PHPがapacheからみえるかどうか試験します。htdocs以下の適当なディレクトリにこんな内容のファイルをおいて、ブラウザから参照します。
<?php // Show all information, defaults to INFO_ALL phpinfo(); // Show just the module information. // phpinfo(8) yields identical results. phpinfo(INFO_MODULES); ?>
ブラウザで参照してphpの情報や、モジュールの情報が表示されれば問題なしです。
RRDToolのインストール
RRDToolをインストールします。ここからダウンロードできます。最新版は1.2.23。
$ tar -zxvf rrdtool-1.2.23.tar.gz $ cd rrdtool-1.2.23 $ ./configure $ make # make install
cactiインストール
cactiをインストールします。インストールといっても、展開した物件をapacheのhtdocs以下にコピーするだけ。cactiはhttpd://www.cacti.netからダウンロードできます。最新は0.8.6jです。
$ tar -zxvf cacti-*.bz2 # cp -pr cacti-0.8.6j /usr/local/apache2/htdocs # mv /usr/local/apache2/htdocs/cacti-0.8.6j /usr/local/apache2/htdocs/cacti
cactiが使うMySQLテーブルを作成
cactiが収集する情報はMySQLテーブルにストアされるようです。この入れ物を作成します。
# cd /usr/local/apache2/htdocs/cacti # /usr/local/mysql/bin/mysqladmin -u root -p create cacti # /usr/local/mysql/bin/mysql -u root -p < cacti.sql cacti # /usr/local/mysql/bin/mysqladmin -u root -p reload
cactiがMySQLを使う際に使用する"cactiuser"を作成します。
# mysql -u root -p Enter password:(パスワードを入力) Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 500 Server version: 5.0.41-log Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use cacti ; Database changed mysql> grant all on cacti.* to cactiuser@localhost identified by 'パスワード' ; Query OK, 0 rows affected (0.00 sec)
ここで設定するcactiuserのパスワードはこの後でてくる各種設定ファイルで"cactiuser"になっています。F/Wなどで内部から特定の人だけが操作する場合は、cactiuserにしておくと後が多少ラクチンです。
cactiの設定ファイル編集
cacti設定ファイルを編集します。編集するファイルは/usr/local/apache2/htdocs/cacti/include/config.php。このファイルの33行目あたりに上記で設定したMySQLでのcactiuserのパスワードが設定されているので、適当に編集します。
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactiuser"; ←ここを編集する。 $database_port = "3306";
cronの設定
監視対象デバイスの情報を定期的に取得するために、cronを設定します。5分ごとにデータを取得するにはこんな感じ。
*/5 * * * * su - cactiuser -c "/usr/local/bin/php /usr/local/apache2/htdocs/cacti/poller.php" > /dev/null 2>&1
以上でインストールは終了。グラフを書くための設定とか、いくつかトラブルシューティングについても追々書きます。