zabbix serverを5.0へupgrade

zabbix serverを5.0へupgrade

5.0のLTSがでたのでupgrade。リリースされたのは随分前ですが。

手順はここに書かれているとおりです。
www.zabbix.com

zabbixサーバのプロセスを停止する。

$ sudo systemctl stop zabbix-server

データベースのバックアップをとる

$ mysqldump zabbix > /opt/zabbix-backup

設定ファイル、PHPファイル、バイナリファイルのバックアップをとる

$ sudo cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup
$ sudo cp /etc/httpd/conf.d/zabbix.conf /opt/zabbix-backup

zabbixリポジトリをupdateする

自分の環境に合わせて。

$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm

自環境ではなぜかrepo.zabbix.comhがdenyされるので、rpmを入手してからupdateしました。
うしろのyumもhttpでリクエスト。故にとおるところへproxyを通す設定をyumのconfigへいれます。

zabbixコンポーネントをupdateする。

$ sudo yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
(中略)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libssh.so.4(LIBSSH_4_5_0)(64bit)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libevent-2.1.so.6()(64bit)
エラー: パッケージ: zabbix-web-japanese-5.0.1-1.el8.noarch (zabbix)
             要求: glibc-langpack-ja
エラー: パッケージ: zabbix-web-japanese-5.0.1-1.el8.noarch (zabbix)
             要求: google-noto-sans-cjk-ttc-fonts
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libnetsnmp.so.35()(64bit)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libmariadb.so.3()(64bit)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libmariadb.so.3(libmysqlclient_18)(64bit)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libmariadb.so.3(libmariadb_3)(64bit)
**********************************************************************
yum can be configured to try to resolve such errors by temporarily enabling
disabled repos and searching for missing dependencies.
To enable this functionality please set 'notify_only=0' in /etc/yum/pluginconf.d/search-disabled-repos.conf
**********************************************************************

エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libssh.so.4(LIBSSH_4_5_0)(64bit)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libevent-2.1.so.6()(64bit)
エラー: パッケージ: zabbix-web-japanese-5.0.1-1.el8.noarch (zabbix)
             要求: glibc-langpack-ja
エラー: パッケージ: zabbix-web-japanese-5.0.1-1.el8.noarch (zabbix)
             要求: google-noto-sans-cjk-ttc-fonts
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libnetsnmp.so.35()(64bit)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libmariadb.so.3()(64bit)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libmariadb.so.3(libmysqlclient_18)(64bit)
エラー: パッケージ: zabbix-server-mysql-5.0.1-1.el8.x86_64 (zabbix)
             要求: libmariadb.so.3(libmariadb_3)(64bit)
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

なんじゃ?いっぱいエラーがでたぞ。

落ち着いて考える

ん〜なんだろ。sshがどうのとか、mariadbがどうとかっていってるな。
ちょっと考えて、上記のリポジトリが間違っていることに気づく。

$ uname -a
Linux dcvsvzbx01 3.10.0-1062.9.1.el7.x86_64 #1 SMP Mon Dec 2 08:31:54 EST 2019 x86_64 x86_64 x86_64 GNU/Linux

RHEL8じゃなくてRHEL7でした。

リポジトリを消して入れ直す。

$ sudo rpm -e  zabbix-release-5.0-1.el8.noarch
$ sudo rpm -Uvh /tmp/zabbix-release-5.0-1.el7.noarch.rpm

オプション、ivhでもいいと思う。

yumのキャッシュを削除

$ sudo yum clean all

zabbixのupgradeリトライ

$ sudo yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent

zabbix-serverとagentを起動。

$ sudo systemctl start zabbix-server
$ sudo systemctl start zabbix-agent

例によってWebブラウズするとDBバージョンが違うぞってエラーメッセージがでますが、serverプロセスがDBをupgradeしきれていないから。
しばらくすると見えるようになります。。、と思っていたが、どうやら違うらしい。
現状DBのバージョンが5になってるけど、4を要求しているぞっていってる。

も一回考える

上記のエラーメッセージからみると、upgradeしたつもりのzabbix5.0中に4.0がのこってるじゃないかな。
yum listで確認。

# yum list | grep zabbix
percona-zabbix-templates.noarch       1.1.8-1                @percona-release-x86_64
zabbix-agent.x86_64                   5.0.1-1.el7            @zabbix
zabbix-get.x86_64                     4.0.21-2.el7           @zabbix
zabbix-release.noarch                 5.0-1.el7              installed
zabbix-server-mysql.x86_64            5.0.1-1.el7            @zabbix
zabbix-web.noarch                     4.0.21-2.el7           @zabbix
zabbix-web-japanese.noarch            4.0.21-2.el7           @zabbix
zabbix-web-mysql.noarch               4.0.21-2.el7           @zabbix

どうもサーバは5.0に上がってるけど、フロントエンドプロセス(zabbix-web-*)が4.0のまま残ってる模様。

消して入れ直す

入れ直したzabbixのレポジトリ中に[zabbix-frontend]というセクションがあって、これがデフォルトでenabled=0で無効になってる。
これが原因かなとおもって、

enabled=1

にする。でもって、いま入っている4.0を削除。

$ sudo yum remove zabbix-web.noarch  zabbix-web-japanese.noarch zabbix-web-mysql.noarch  

そしてzabbox-server-mysqlをインストール。

$ sudo yum install 
# yum install  zabbix-web-mysql
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager
パッケージ zabbix-web-mysql は利用できません。
エラー: 何もしません

ないって。えー?

ドキュメントをあたる

新規インストールのドキュメントを参照する。
www.zabbix.com

どうもパッケージ名が替わったみたいだな。

RHELのソフトウェアコレクションを有効にする。

$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms

zabbixのフロントエンドパッケージをインストール

$ sudo yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

おう、ようやく動きました。メニューが左に写りましたね。ちょっとかっこいい。