Cacti 0.8.7g -> 0.8.7i アップグレード
経緯
Cactiは小難しいけど多機能なRRDToolをブラウザから操作できるようにしてくれるフロントエンドツール。
もともと監視のために導入したんじゃなくて、
pingの到達率とかをグラフに描いてくれるツールないかなー*1と探してた。
その後で監視にも使えるしついでに監視やろうとか邪道な入り方*2をした。
そんなこんなでCacti入れたものの、これはRRDToolのフロントエンドなのでグラフ描いてくれるだけ。
なのでアラート飛ばすにはPlugin Archtectureというパッチを当てないといけない。
で、patchコマンドで当てると失敗する*3し、めんどくせーと思ってたら
どうやらパッチ済みバージョンが公式サイトから出てるようだ。
ついでなので最新版インストールするか。(今ここ)
手順
ダウンロード
/usr/local/src/ にダウンロードしたtarballとか置いておくとよい(個人的なルール)
# cd /usr/local/src/ # wget http://www.cacti.net/downloads/cacti-0.8.7i-PIA-3.1.tar.gz
バックアップ
MySQLのバックアップ
# mysqldump -l --add-drop-table cacti -p >mysql.cacti # パスワード入力するとmysql.cactiにバックアップされる
Cactiディレクトリのバックアップ
# cd /usr/share/cacti/ # mv site site-0.8.7g
公式ドキュメントによると
resourceディレクトリとscriptsディレクトリもバックアップ(というか新しいバージョンのcactiディレクトリに移動)
した方がいいらしいけど、自分は特にこのディレクトリいじってないので飛ばした。
scriptsディレクトリはスクリプトを置いておくとcactiから呼べるんだろうか。
resourceディレクトリはわからん。
どっちもバージョンが新しくなってスクリプトがちょこっと修正されてたりしたので
特にコピーしなかった。
インストール
各バージョンごとのディレクトリを/usr/share/cacti/に置いて、
/usr/share/cacti/siteからは使用バージョンのディレクトリにsymlinkを貼る。
新しいバージョンだとバージョンごとのディレクトリの中に
cliディレクトリとかresourceディレクトリがあるけど
古いバージョンだと/usr/share/cacti/の下に置かれてる。
問題なさそうなのでそのままにしておく。
# cd /usr/local/src # tar xzf cacti-0.8.7i-PIA-3.1.tar.gz # cd /usr/share/cacti # mv site site-0.8.7g # mv /usr/local/src/cacti-0.8.7i-PIA-3.1 site-0.8.7i # ln -s site-0.8.7i site
まだこれだけでは動かない。
tarballのデフォルト設定だとMySQLのID,パスワードとかがinclude/config.phpに書かれてないので。
設定
Debianでapt-get install cactiした状況だと
/usr/share/cacti/site/にCactiの*.phpファイルが置かれてて、
/etc/apache2/conf.d/cacti.confが/etc/cacti/apache.confのsymlinkだったりする。
そしてそのapache.confにはAlias /cacti /usr/share/cacti/siteとか
/usr/share/cacti/site用の
図にするとこんな感じ。
/etc/apache2/conf.d/cacti.conf -> /etc/cacti/apache.conf /etc/cacti/ + apache.conf # Apache用の設定ファイル + debian.php # MySQLアカウント情報など /usr/share/cacti/site/include/config.php # require('/etc/cacti/debian.php')
なのでとりあえずやる事としては、
/etc/cacti/debian.phpにMySQLのID,パスワードが載せられてるから
これをinclude/config.phpからrequire()する。
以下は変更箇所。
root@cacti:/usr/share/cacti/site# diff -u include/config.php{.bak,}
--- include/config.php.bak 2012-03-10 21:49:06.674566118 +0900 +++ include/config.php 2012-03-10 21:45:31.626903132 +0900 @@ -24,19 +24,20 @@ /* make sure these values refect your actual database/host/user/password */ $database_type = "mysql"; -$database_default = "cacti"; -$database_hostname = "localhost"; -$database_username = "cactiuser"; -$database_password = "cactiuser"; -$database_port = "3306"; -$database_ssl = false; +#$database_default = "cacti"; +#$database_hostname = "localhost"; +#$database_username = "cactiuser"; +#$database_password = "cactiuser"; +#$database_port = "3306"; +#$database_ssl = false; +require('/etc/cacti/debian.php'); /* Edit this to point to the default URL of your Cacti install ex: if your cacti install as at http://serverip/cacti/ this would be set to /cacti/ */ -$url_path = "/"; +$url_path = "/cacti/"; /* Default session name - Session name must contain alpha characters */ $cacti_session_name = "Cacti";
上記のように$url_pathも変更する必要がある。
apt-get install cactiしたやつだとhttp://hoge/cacti/でアクセスできるようになってるはずなので。
参考URL
ぶっちゃけ加筆しまくってよくわからんくなったので公式ドキュメント見た方が速いよ。
公式ドキュメント