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バックアップ
    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;

    再度実行すると、正常に実行できます.