[検証] zabbix-server2.2 から 4.0 へバーションアップできるか。

## 概要
表題の通りzabbix-server2.2から4.0へバージョンアップできるか検証してみました。
3.0系から4.0系の記事はあったのですが。2.2系から4.0系のバージョンアップの記事が見つけられなかったので検証してみました。
結論から言うと私のテスト環境でうまくバージョンアップできました!!

## 動作環境
```
Vagrant のテスト環境です。
Amazonlinux
Apache2.2 -> 2.4
php5.3 -> 7.1
zabbix-server2.2
mysql 5.6
```

## 作業

```
■mysql_dump
mysqldump --default-character-set=utf8 -u root -p --lock-all-tables --all-databases > zabbix_backup.sql

■zabbixの停止
service zabbix-agent stop
service zabbix-server stop

■zabbix server バージョンアップ
yum install https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-1.el6.noarch.rpm
yum clean all
yum updata zabbix-*

service zabbix-server start
service  zabbix-agent start

root@zabbix-server2 ~]# zabbix_server -V
zabbix_server (Zabbix) 4.0.14

■php バージョンアップ(php5.4以上が必要) 
yum remove php*
yum remove http-tools
yum install php71 php71-cli php71-gd php71-xml php71-bcmath php71-process php71-pdo php71-mcrypt php71-mysqlnd php71-mbstring php71-common php71-opcache php71-pear
yum install httpd
```
## 作業後のエラー解決

http://192.168.33.220/zabbix/
実際にログインすると、トップ画面の各項目(最新データなどに)「Session terminated, re-login, please.」と表示され、値が確認できない。GUIで「設定」の項目がない。
っと思ったら、プライベートウィンドウで開くと無事表示されました!(キャッシュの問題ですね.)

次の問題はGUIで確認すると値が取得できていないぞ....
 - Zabbixサーバーが起動していません（画面のリフレッシュを行ってステータスを再確認してください） とGUI出力される
 - zabbixのログにDBに接続できないと出ている
 - 10051がLISTENしていない

```
■port
netstat -antp |grep zabbix
----
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      4558/zabbix_agentd
tcp        0      0 :::10050                    :::*                        LISTEN      4558/zabbix_agentd
----

less /var/log/zabbix/zabbix_server.log
----
6714:20191117:111204.398 [Z3001] connection to database 'zabbix' failed: [0] could not connect to s
erver: Connection refused
        Is the server running on host "127.0.0.1" and accepting
        TCP/IP connections on port 5432?
----
```
port 5432 ってポスグレ????
`/etc/zabbix/zabbix_server.conf` や `/etc/zabbix/web/zabbix.conf.php` のPortの設定項目を「3306」にしても解決できない。。。。

参考: https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/47665-zabbix-3-2-0-and-mysql-5-7-connection-issues
ポスグレのパッケージが入っているのが原因かも...

```
rpm -qa | grep zabbix
----
zabbix-get-4.0.14-1.el6.x86_64
zabbix-web-japanese-4.0.14-1.el6.noarch
zabbix-server-pgsql-4.0.14-1.el6.x86_64
zabbix-server-mysql-4.0.14-1.el6.x86_64
zabbix-java-gateway-4.0.14-1.el6.x86_64
zabbix-release-4.0-2.el6.noarch
zabbix-web-4.0.14-1.el6.noarch
zabbix-proxy-pgsql-4.0.14-1.el6.x86_64
zabbix-proxy-sqlite3-4.0.14-1.el6.x86_64
zabbix-agent-4.0.14-1.el6.x86_64
zabbix-web-mysql-4.0.14-1.el6.noarch
zabbix-proxy-mysql-4.0.14-1.el6.x86_64
----
```
`zabbix-server-pgsql-4.0.14-1.el6.x86_64` ある------ っていうことで削除

```
yum remove zabbix-server-pgsql-4.0.14-1.el6.x86_64
```
無事解決し値取得取れるようになりました！

## 動作確認
今回は[Dockerの監視テンプレートを作成した際](https://qiita.com/kaba-chan/items/185ea3b48209b40ad930) のテスト環境を複製してアップデート作業をしました。
2.2系のテンプレートがそのまま使えるのか確認してみます。
dockerコンテナを追加するとLLDで自動的に監視が追加されます。

```
■dockerのテストサーバにて
[root@docker-centos7 ~]# docker run --name nginx-test-02 -d -p 9090:80 nginx
ccd804f8386e431726f3bbf7beb40e2813be5a1f99d9ea0c709ddeacbe38c671
```
キャプチャーは後ほど添付します!

ちゃんと値取得できましたね!
意外とこんなもんで、アップデート出来ちゃうんですね。
ただ、zabbixを使っている方の本番環境はもっとデータ量が多いと思うので、この手順でうまく行くかは別途検証が必要そうですが、今回はうまくバーションアップできました。

参考
https://qiita.com/piyojiro/items/756e1155540d3d8616e4
http://www.zabbix.jp/node/4615
https://pig-log.com/zabbix-server-versionup/
https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/47665-zabbix-3-2-0-and-mysql-5-7-connection-issues