Cacti 0.8.8 から 0.8.8a へアップグレード

0.8.8の修正版となる0.8.8aがリリースされたので、既存の0.8.8からアップグレードしてみた時のメモです。
作業の流としては0.8.7iからのアップグレードと変わらないかと思います。

ちなみに0.8.8aのChangelogの内容。
【0.8.8aのChengelog】
・バグ#0002207:グラフテンプレートをエクスポートすることができない。
・バグ#0002208:CDEFsを使用したグラフ生成に失敗する。
・バグ#0002209:外部認証は、リバースプロキシの環境では動作しません。
・バグ#0002211:作成時に'INDEX USING BTREE'が失敗する(MySQLが5.0.60より前のバージョン)
・バグ#0002213:CLIのアップグレード・スクリプトは、ターゲットとして0.8.7iが不足している。
・バグ#0002214:非PIAのアップグレード時に0.8.8のplugin_realmsのテキストフィールドに対するデフォルトの設定でSQLエラーが発生する。
・バグ#0002216:define_syslog_variables()関数はPHP5.4では使われていません。
・バグ#0002217:url_pathの値は、/cacti/をデフォルトとしておくべき。
・バグ#0002221:plugins.phpでプラグインのディレクトリがない場合に無限ループを引き起こす。
・バグ#0002222:読めないcacti.logがあった場合にtail_logfileがハングする。この時、fgetsの警告がApache側のログに大量に記録されてしまう。


作成日:2012.04.30
更新日:2012.04.30
--------------------------------------------------
--------------------------------------------------
前提条件
これを行ったときの構成になります。
■環境
  ・FreeBSD 7.x
  ・RRDTool 1.4.5
  ・NET-SNMP 5.7.4
  ・MySQL 5.1.54
  ・Apache 2.2.17
  ・PHP 5.3.8(+mysqlプラグイン)
  ・Cacti 0.8.8(PHPスクリプト)
■Cactiのデータベースに関する設定値
  ・データベース名:cacti(※デフォルト)
  ・ユーザー名:cactiuser(※デフォルト)
  ・パスワード:cactiuser(※デフォルト)
■Cactiに関する設定値
  ・CactiのURL:http://test.lipwood.com/cacti/
  ・Cactiの保存先:/usr/local/www/apache22/cacti
※Apache、PHPおよびMySQLのインストールを含む基本的な設定についてはここでは省略しています。
ページのトップへ

前準備とインストール
まず、poller.phpをcronで実行していると思いますのでそれを停止しておきます。
(色分け:入力値コマンドラインコメント)
■cron登録しているpoller.phpを停止する
# ee /etc/crontab

※こんな感じで登録している行をコメントアウト
#*/5 * * * * root /usr/local/bin/php /usr/local/www/apache22/cacti/poller.php > /dev/null 2>&1


■設定を反映するためにcronを再起動
# kill -HUP `cat /var/run/cron.pid`

それから、アップグレードの場合は既に使用しているデータベースを更新するので、失敗したときのためにバックアップを取っておきます。
(色分け:入力値コマンドラインコメント)
■データベースのバックアップ
# mysqldump -uroot -p(__password__) -r cacti087i.sql -l cacti


■データベースを複製してバックアップする場合
# mysqldump -uroot -p(__password__) -r cacti088.sql -l cacti
# mysql -uroot -p(__password__) -e "CREATE DATABASE cacti088"
# mysql -uroot -p(__password__) cacti088 < cacti088.sql
※バックアップ用のデータベースをcacti088としています。


ここまで終わったら、あとは本家から"cacti-0.8.8a.tar.gz"をダウンロードしてそれをCactiを置いているディレクトリへコピーします。
コマンドライン上で行う場合は以下のようになります。
(色分け:入力値コマンドラインコメント)
■ファイルの取得
# cd /tmp
# wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz --2012-04-30 14:43:33-- http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz Resolving www.cacti.net (www.cacti.net)... 209.242.232.5, 173.225.179.10, 140.211.167.231 Connecting to www.cacti.net (www.cacti.net)|209.242.232.5|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2273280 (2.2M) [application/x-gzip] Saving to: `cacti-0.8.8a.tar.gz' 100%[==================================================>] 2,273,280 23.0K/s in 74s 2012-04-30 14:44:48 (29.9 KB/s) - `cacti-0.8.8a.tar.gz' saved [2273280/2273280] ■圧縮ファイルの解凍とディレクトリの上書き # tar -xzf cacti-0.8.8a.tar.gz # cp -pR /usr/local/www/apache22/cacti /usr/local/www/apache22/cacti.088 # cp ./cacti-0.8.8a/* /usr/local/www/apache22/cacti/* ※一応、念のため旧バージョンのディレクトリをコピーしています。 
ここで基本的な作業は終了です。
ページのトップへ

設定
0.8.8ではPIAが統合されていますので0.8.8aへのアップグレードするときに「include/config.php」を変更する作業はありません。
従って、ブラウザ上で行う作業だけになります。

ブラウザから「http://test.lipwood.com/cacti/」へアクセスすると「http://test.lipwood.com/cacti/install/」へ転送されて以下のような画面が表示されると思います。
ここではインストールやライセンスに関することが書かれていますが、特に作業することは無いので画像内で示しているとおり「NEXT」をクリックして次へ進みます。

ここではインストール方法と「include/config.php」で設定されている値が表示されます。
今回はアップグレードなので画像のとおり「Upgrade from cacti 0.8.x」となっていると思いますので「NEXT」をクリックして次へ進みます。

ここでは更新したデータベースの結果が表示されます。
0.8.8aでは特に変更する箇所が無いため「No SQL queries have been executed.」となっていると思いますので「NEXT」をクリックして次へ進みます。

ここでは各プログラムのパスやCactiで使用するログファイルの設定などを行います。
アップグレードの場合、もともと環境は整っているので特に問題はないと思いますが、もし[ERROR: FILE NOT FOUND]となっていたら確認する必要があります。
問題が無ければ「FINISH」をクリックして終了になります。

ページのトップへ

動作確認
「FINISH」をクリックした後は、以下のようなログイン画面が表示されますのでログインして正常に動作するか確認して終了です。
ページのトップへ

補足&メモ
今回はデータベースに関する修正が無かったため0.8.8aへのアップグレードは比較的リスクも低くかったのではないかと思います。 ただ、トラブルは安心したときにこそ起こる危険性があるのでバックアップを取って行うことに越したことはないと思います(備えあれば何とかとも言いますし)
ページのトップへ

参考にしたサイト
ページのトップへ