Cactiをインストールしてみました

性能監視ツール CactiMac OS X へのインストールログです。

http://www.cacti.net/index.php

  • 環境

iMac (intel Core 2 Duo)
Mac OS X 10.4.9

fink install rrdtool

tarball落として、解凍して、コピーするだけ。

% curl -O http://www.cacti.net/downloads/cacti-0.8.6i.tar.gz
% tar xvzf cacti-0.8.6i.tar.gz
% mv cacti-0.8.6i ~/Sites/cacti

面倒だったので、「パーソナルWeb共有」のもので代用.. (^^;
そのままだと PHP を解釈しないので、/private/etc/httpd/users/kiwamu.conf を編集します。
参考: /private/etc/httpd/httpd.conf.default


ひとまず必要最低限なものだけ追記すると、

LoadModule php4_module        /usr/libexec/httpd/libphp4.so

AddModule mod_php4.c

<IfModule mod_php4.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>


Apache を再起動

% sudo apachectl restart


http://localhost/~kiwamu/cacti
にアクセスすると mysql にデータベースが作られてないぞ、と怒られます。

というわけで、スクリプトを流し込みます。
MySQLfink あたりでインストールしておきます。

% cd ~/Sites/cacti
% mysqld_safe &
% mysqladmin ping
% mysqladmin -u root password root
% mysql -u root -p
% use mysql
% DELETE FROM user WHERE password='';
% exit

% cd /var/www/html/cacti
% mysqladmin -u root -p create cacti
% mysql -u root -p < cacti.sql cacti
% mysqladmin -u root -p reload
% mysql -u root -p
% use cacti
% show tables;
% grant all on cacti.* to cactiuser@localhost identified by 'cactiuser';
% exit

% mysqladmin -u root -p reload


「Can't connect to local MySQL server through socket」なんてエラーが出てきたら、ソケットの実態ファイルの場所を確認して、my.cnf か php.ini のパスを書き換えます。
fink でインストールしたときの my.cnf の所在がよく分からないので、今回は クライアント側(php.ini)で対応しました。

% mysql
> \s

でサーバ側で指定しているパスを確認して、/private/etc/php.ini.default を参考に php.ini を用意します。

再度ブラウザから上記 URLを開くと今度はちゃんと動きました。
なにやら Wizard 画面が開いているので「Next」を選択し、各種ライブラリへのパスを確認します。
あとはログイン画面が開くので、admin/admin でいったんはいり、パスワードを適宜変更。

Mac にはもともと net-snmp のライブラリがはいっているようなので、/private/etc/snmpd.conf.default を参考に /private/etc/snmpd.conf を用意します。コミュニティ名の変更を忘れずに。

% sudo snmpd [-c configuration file]


とりあえず、疎通テスト。ずらずらーっと MIB のリストが出力されたら OK。

% Snmpwalk -v 1 -c public localhost .1
  • Cron

監視対象の値を取得するスクリプトを cron で定期的に実行します。これで採取された値が rrdtool の入力となり、綺麗な絵が出てくるはずです。
適当に 2分間隔くらいに設定。

% crontab -e
*/2 * * * * /usr/bin/php ~/Sites/cacti/poller.php > /dev/null 2>&1


あとは、自前のスクリプトを用意したりとか?
このあたりが参考になりそう。

http://cacti.loaded.jp/index.php?%A5%C7%A1%BC%A5%BF%BC%FD%BD%B8%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%A4%CE%BA%EE%C0%AE

  • 任意のOIDを取得・グラフ化する - CPU温度を例に

http://gamisan.dyndns.org/pukiwiki/index.php?cmd=read&page=debian%2Fcacti#mebc7e55


ふぅ。