Zabbixを3.0.4から3.4.9へ

いれてから一年以上経過してだいぶ古くなってきているのでバージョンアップ。
以下の手順で実施しました。

Zabbixサーバを停止

# systemctl stop zabbix-server

現行DBをバックアップ

# mysqldump -u root -p --all-database | bzip2 > mysql_zabbix.dmp.bz2

設定ファイルやphpファイル、zabbixのバイナリをバックアップ

適当なところへ避難させる。

# mkdir /opt/zabbix-backup
# cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup
# cp /etc/httpd/conf.d/zabbix.conf /opt/zabbix-backup/
# cp -R /usr/share/zabbix /opt/zabbix-backup
# cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup

zabbixのリポジトリ設定ファイルをアップデートする

# rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

自分の環境ではzabbixサーバから外へは出られないので、rpmを別マシンでダウンロードして、手動でいれました。

yumで更新

# yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent

proxyとかagentはもののついでというやつ。

zabbix serverを起動

# systemctl start zabbix_server

これでDBが自動的に新バージョンにアップグレードされます。

自環境でのトラブル

自環境では最後の手順でDBのアップグレードに失敗。

 11626:20180510:091024.743 [Z3005] query failed: [1114] The table '#sql-50c_1328f3' is full [alter table history_log drop column id]
 11626:20180510:091024.744 slow query: 1967.234304 sec, "alter table history_log drop column id"
 11626:20180510:091024.746 database upgrade failed

history_logのalter tableに失敗している模様です。どうもでかすぎて、中間テーブルを作成するとdisk fullになるみたい。
サイズを確認すると210Gもある。保存期間半年もないはずだけど。。
どうしようかしばらく悩んだあと、truncateすることに。

mysql> truncate table history_log

監視止めるよりはいいでしょうってことで。