Zabbix1.8を2.4へアップグレード
途中でMySQLをリストアしてたりしたので一週間もかかっちまいました。
作業の記録です。
環境はRHEL6。
Zabbixサーバとエージェントを停止
# /etc/init.d/zabbix-server stop Shutting down zabbix server: [ OK ] # /etc/init.d/zabbix-agent stop Shutting down zabbix agent: [ OK ]
MySQLバックアップを取得
# mysqldump -uroot -ppassword zabbix > ~/backup/zabbix.dmp
既存パッケージを削除
いま入っているzabbix関連のパッケージを削除する。
いま入っているパッケージはrpm -qa で調べられる。
# rpm -qa | grep zabbi zabbix-server-mysql-1.8.13-1ML6.x86_64 zabbix-web-1.8.13-1ML6.x86_64 zabbix-web-mysql-1.8.13-1ML6.x86_64 zabbix-template-vm-esx-esxi-2.0.0-1ML6.noarch zabbix-server-1.8.13-1ML6.x86_64 zabbix-agent-1.8.13-1ML6.x86_64 zabbix-1.8.13-1ML6.x86_64 # rpm -qa | grep zabbix | xargs rpm -e --nodeps
新しいパッケージをインストール
# wget http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm # rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm
続いてyumでzabbixの本体をインストール。
# yum install zabbix-server-mysql zabbix-web-mysql
データベースのアップグレード
MySQLのDBスキーマが変更されているようなので、パッチを適用。
# ./upgrade zabbix -uroot -p
これ、相当時間がかかります。私の場合はこらえきれなくてctl-cしちゃいました。
データ量にもよるでしょうが、historyテーブルや、history_unitテーブルのalter tableにとっても時間がかかるようで、自環境ではおよそ24時間。
ちなみにmysqldumpから吐き出したダンプファイルをリストアするのには、upgradeスクリプトの三倍くらい時間がかかります(まる三日くらい)。
zabbix_server.confを編集
上記のupgradeスクリプトでDBが1.8から2.0対応へ変更されますが、さらにzabbix_serverが立ち上がるときに2.0から2.4対応への変更が自動的に実施されます。その時にDB接続ができないとテーブル変更ができません。zabbix_server.conf中のDB接続情報を編集します。
/etc/zabbix/zabbix_server.confを編集。
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=password
zabbix_serverを起動
# /etc/init.d/zabbix_server start
これも相当時間がかかるようです。我慢して待ちましょう。サーバプロセス自体はすぐに起動されますが、裏でalter tableなどいっぱい動作します。
上記zabbix_server.confでデバッグレベルを上げるとその様子をログで観察できます。
というところで今日は終了。
明日ちゃんと動作しているといいんですが。