Cactiをインストールしてみました
性能監視ツール Cacti の Mac OS X へのインストールログです。
- 環境
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 にデータベースが作られてないぞ、と怒られます。
というわけで、スクリプトを流し込みます。
#MySQL は fink あたりでインストールしておきます。
% 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 を用意します。
- Cacti にアクセス
再度ブラウザから上記 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
あとは、自前のスクリプトを用意したりとか?
このあたりが参考になりそう。
- 任意のOIDを取得・グラフ化する - CPU温度を例に
http://gamisan.dyndns.org/pukiwiki/index.php?cmd=read&page=debian%2Fcacti#mebc7e55
ふぅ。