CentOS 7 ZABBIXを4.4から5.0にアップグレード
アップグレード要件
PHPバージョン
PHPバージョンは最低5.4.0から7.2.0にアップグレードされました
データベースのバージョン MySQL 5.5.62 MariaDB 10.0.37 PostgreSQL 9.2.24 Oracle 11.2
PHPのアップグレード方法については説明しませんが、本環境は7.2バージョンです.
ZABBIXバックアップ
データベースのバックアップ
zabbix-server zabbix-agentサービスの停止
旧バージョンのサービスのアンインストール
アップグレード:
プロファイルの編集/etc/yum.repos.d/zabbix.repo and enable zabbix-frontend repository.
ZABBIXフロントエンドパッケージの取り付け
ZabbixフロントエンドにPHPを配置する
プロファイル/etc/opt/rh/rh-php 72/php-fpmを編集する.d/zabbix.conf, uncomment and set the right timezone for you.
Zabbix serverとagentプロセスを開始し、起動の開始を設定します.
添付:
インストール中にデータベースエラー:Index column size too large
エラー・プロンプトによれば、インデックス・カラムが大きすぎるためであることがわかります.
【解決策】:
エラーメッセージに基づいて解決を試みます.
まず、データベースがインデックスのサイズを制限されているかどうかを確認します.
クエリの値がOFFの場合は次のコマンドを実行します
実行が完了したら、現在のinnodbを表示する必要があります.file_formatエンジンフォーマットタイプはBARRACUDAか
そうでなければSET GLOBAL innodb_を修正する必要がありますfile_format = BARRACUDA;
しかし、上記の修正文を再実行すると、同じエラーが表示されます.
資料を調べてみると、テーブルの構造を変更する必要があることがわかりました.
再度実行すると、正常に実行できます.
PHPバージョン
PHPバージョンは最低5.4.0から7.2.0にアップグレードされました
データベースのバージョン
PHPのアップグレード方法については説明しませんが、本環境は7.2バージョンです.
ZABBIXバックアップ
mkdir -p /home/backup/zabbix-backup
cp /etc/zabbix/zabbix_server.conf /home/backup/zabbix-backup
cp /etc/zabbix/zabbix_agentd.conf /home/backup/zabbix-backup
cp /etc/zabbix/web/zabbix.conf.php /home/backup/zabbix-backup
cp -R /usr/share/zabbix/ /home/backup/zabbix-backup
cp –R /usr/share/doc/zabbix-* /home/backup/zabbix-backup
データベースのバックアップ
mysql root@localhost:(none)> select count(8) tables,table_schema from information_schema.tables where table_schema = 'zabbix';
+--------+--------------+
| tables | table_schema |
+--------+--------------+
| 149 | zabbix |
+--------+--------------+
1 row in set
Time: 0.014s
mysqldump -uzabbix -pzabbix --opt --skip-lock-tables zabbix | gzip > /home/backup/zabbix_$(date +%Y%m%d_%H%M%S).sql.gz
[root@shvm01 doc]# ll /home/backup/
5120
-rw-r--r-- 1 root root 20 4 23 10:48 zabbix_20200423_104832.sql.gz
-rw-r--r-- 1 root root 5233446 4 23 10:48 zabbix_20200423_104849.sql.gz
drwxr-xr-x 3 root root 4096 4 23 10:45 zabbix-backup
zabbix-server zabbix-agentサービスの停止
systemctl stop zabbix-server zabbix-agent
旧バージョンのサービスのアンインストール
yum remove zabbix-web-* httpd
アップグレード:
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum update zabbix-server-mysql zabbix-agent
yum-config-manager --enable rhel-server-rhscl-7-rpms
プロファイルの編集/etc/yum.repos.d/zabbix.repo and enable zabbix-frontend repository.
[zabbix-frontend]
...
enabled=1
...
ZABBIXフロントエンドパッケージの取り付け
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
ZabbixフロントエンドにPHPを配置する
プロファイル/etc/opt/rh/rh-php 72/php-fpmを編集する.d/zabbix.conf, uncomment and set the right timezone for you.
php_value[date.timezone] = Asia/Shanghai
Zabbix serverとagentプロセスを開始し、起動の開始を設定します.
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
添付:
インストール中にデータベースエラー:Index column size too large
エラー・プロンプトによれば、インデックス・カラムが大きすぎるためであることがわかります.
【解決策】:
エラーメッセージに基づいて解決を試みます.
まず、データベースがインデックスのサイズを制限されているかどうかを確認します.
SHOW variables like 'innodb_large_prefix'
クエリの値がOFFの場合は次のコマンドを実行します
SET GLOBAL INNODB_LARGE_PREFIX = ON;
実行が完了したら、現在のinnodbを表示する必要があります.file_formatエンジンフォーマットタイプはBARRACUDAか
SHOW variables like 'innodb_file_format'
そうでなければSET GLOBAL innodb_を修正する必要がありますfile_format = BARRACUDA;
しかし、上記の修正文を再実行すると、同じエラーが表示されます.
資料を調べてみると、テーブルの構造を変更する必要があることがわかりました.
alter table items row_format=dynamic;
alter table items row_format=compressed;
再度実行すると、正常に実行できます.