Zabbix 6.4.xからZabbix 7.0.0へのアップグレードに関する注意点です。
すべての注意点は以下のように分類されています。
参照 :
MySQL/MariaDBでZabbixサーバーのアップグレードを正常に完了するには、バイナリロギングが有効で、スーパーユーザー権限がなく、MySQL構成ファイルにlog_bin_trust_function_creators = 1が設定されていない場合、MySQLでGLOBAL log_bin_trust_function_creators = 1を設定する必要がある場合があります。
MySQLコンソールを使用して変数を設定するには、次を実行します。
アップグレードが正常に完了したら、このオプションを無効にすることができます。
TimescaleDBを備えたZabbixを7.0.0から7.0.1(またはそれ以降)にアップグレードすると、サーバーがクラッシュします。この問題は、監査ログテーブルの圧縮ポリシーが不可逆的に変更する、Zabbix 7.0の監査ログテーブルにおける圧縮ジョブの問題に対する回避策によって発生します。
監査ログテーブルを手動で修正する方法の詳細については、既知の問題を参照してください。
まだZabbix 7.0.0にアップグレードしていない場合は、7.0より前のZabbixバージョンから7.0.1にアップグレードしてもこのような問題は発生しないことに注意してください。アップグレード手順については、TimescaleDBスキーマのアップグレードを参照してください。
pg_restoreを使用してZabbix 7.0.0から7.0.4で作成されたPostgreSQLまたはTimescaleDBバックアップを復元すると、base36_decode関数が見つからないというエラーが発生し、復元が失敗します。 このエラーは、pg_dumpを使用して作成されたバックアップを復元するときに発生します。
バックアップを作成する前にこの問題を手動で修正する方法の詳細については、既知の問題を参照してください。
まだZabbix 7.0.0にアップグレードしていない場合は、7.0より前のZabbixバージョンから7.0.5へのアップグレードではこのような問題は発生しないことに注意してください。 アップグレード手順については、TimescaleDBスキーマのアップグレードを参照してください。
ヒストリ関数の文字列パラメーターに、バックスラッシュの適切なエスケープが追加されました。
7.0より前のZabbixバージョンからのアップグレード中にバックスラッシュが追加されると、パラメーターが長くなり、パラメーターの長さが最大データサイズの255文字を超えるとトリガー関数が壊れる可能性があります。
この問題を回避するには、アップグレード前に長いパラメーターを手動でユーザーマクロに移動することをお勧めします。
Zabbix 7.0.11以降、7.0より前のZabbixバージョンからのアップグレードでは、結果のパラメーターの長さに対する追加のチェックが追加されていることに注意してください。結果の長さが最大サイズを超える場合、そのようなパラメーターはアップグレードされませんが、リストされているパラメーターを手動で修正するようにユーザーに求める警告がログに出力されます。
エスケープ関連のアップグレードの問題も参照してください。
PHPの必須バージョンが7.4.0から8.0.0に引き上げられました。
Windows上のZabbixエージェントが設定ファイルを探すデフォルトの場所が変更されました。エージェントは、エージェントバイナリzabbix_agentd.exeがあるディレクトリ(以前のC:\zabbix_agentd.confではなく)で設定ファイルを検索するようになりました。
Windows上のZabbixエージェント2は、バイナリzabbix_agent2.exeがあるディレクトリでデフォルトの設定ファイルを既に検索していました。ただし、新しいバージョンでは、エージェント2は設定ファイルの名前がzabbix_agent2.conf (zabbix_agent2.win.confではなく)であると想定します。
WindowsへのZabbixエージェントのインストールも参照してください。
Zabbixエージェント2のプラグイン関連設定パラメーターで空の値が許可されるようになりました。
TimescaleDB 1.x のサポートは削除されました。
Zabbix 7.0.0にアップグレードする前に、TimescaleDBが圧縮で使用されている場合は、倍精度データ型を使用するように手動でTimescaleDBをアップグレードする必要があります。
TimescaleDBが倍精度データ型を使用していないかどうかは、システム情報フロントエンドセクションまたはZabbixサーバーログの警告でわかります: "Database is not upgraded to use double precision values. Support for the old numeric type will be removed in future versions." (データベースは倍精度値を使用するようにアップグレードされていません。古い数値型のサポートは将来のバージョンで削除されます。)
詳細については、拡張範囲の数値へのアップグレードを参照してください。
新規インストールではauditlogテーブルは、時間通りの自動パーティショニング (デフォルトでは7日) とパフォーマンスの向上の恩恵を受けるために、TimescaleDB上のハイパーテーブルに変換されました。
既存のインストールを正常にアップグレードするには、TimescaleDBスキーマのアップグレードを参照してください。
プロキシレコードはhostsテーブルから移動され、新しいproxyテーブルに保存されるようになりました。
また、プロキシの運用データ(最終アクセス、バージョン、互換性など)はhost_rtdataテーブルから移動され、新しいproxy_rtdataテーブルに保存されるようになりました。
API には新しいproxyオブジェクトもあります。プロキシを使用したすべての操作は、この新しいプロキシオブジェクトを介して実行されるように更新する必要があります。
アイテムタイムアウト設定 の変更に基づいて、データベースモニターアイテムのODBCログインタイムアウトとクエリ実行タイムアウトの両方が、アイテム設定フォームで設定されたTimeoutパラメーター値に制限されるようになりました。
wmi.getおよびwmi.getallは、Zabbixエージェント2で使用する場合、Zabbix エージェント上のこれらのアイテムの出力形式と一致するように、文字列として表現されたブール値を含むJSONを返すようになりました (たとえば、以前は"RealTimeProtectionEnabled": trueを返していましたが、"RealTimeProtectionEnabled": "True"を返します)。oracle.ts.statsには、ターゲットコンテナ名を指定するための新しいconnameパラメーターがあります。返されるデータのJSON形式が更新されました。キーパラメーターでtablespace、type、またはconnameが指定されていない場合、返されるデータには、コンテナ名を含む追加のJSONレベルが含まれ、コンテナを区別できるようになります。net.dns.*アイテムは、nameパラメーターなしでは設定できなくなりました。 以前はnameパラメーターを省略するとデフォルト値(zabbix.com)に解決されていましたが、現在は常に必須で省略できません。互換性を損なわないアイテムの変更の一覧については、Zabbix 7.0.0の新機能を参照してください。
Zabbixは、高可用性設定でアクティブノードが切り替えられた場合に、正しい場所からSNMPトラップファイルを読み取ることができるようになりました。
ただし、この機能が動作するには、bash、perl、およびSNMPTTスクリプトの時刻形式を"%Y-%m-%dT%H:%M:%S%z" (例: 2024-01-10T11:56:14+0300)に更新する必要があります。
すべてのウィジェットのデフォルトの幅が3倍に増加しました。カスタムウィジェットを使用している場合は、manifest.jsonファイルのそれぞれのパラメーターを更新する必要がある場合があります (たとえば、カスタマイズされた時計ウィジェットを設定する場合、widthを4から12に変更する必要があります)。
ウィジェットの幅は最大72列 (以前は24)、高さは1 ~ 64行 (以前は2 ~ 32)になりました。そのため、ダッシュボードには水平方向に最大72個のウィジェットを配置できるようになりました。
新しいアイテムヒストリダッシュボードウィジェットがプレーンテキストウィジェットに取って代わり、いくつかの改善が行われました。
プレーンテキストで最新のアイテムデータのみを表示するプレーンテキストウィジェットとは異なり、アイテムヒストリウィジェットは複数のアイテムタイプ(数値、文字、ログ、テキスト、バイナリ)のさまざまな表示オプションをサポートしています。 たとえば、進行状況バーまたはインジケーター、バイナリデータタイプのイメージ (ブラウザアイテムに便利)、およびテキスト値のハイライト表示 (ログファイル監視に便利) を表示できます。
アップグレード後、以前に構成されたすべてのプレーンテキストウィジェットは、同じ構成設定を保持したまま、アイテムヒストリウィジェットに自動的に置き換えられます。 ただし、プレーンテキストウィジェットを参照するAPIスクリプトは手動で更新する必要があります。
Zabbix 7.0.4では、マクロ{HOST.CONN}、{HOST.DNS}、{HOST.IP}、{EVENT.CAUSE.*}、{EVENT.TAGS.*}、および{EVENT.SYMPTOMS}の解決動作が、他の組み込みマクロとの一貫性を保つために修正されました。現在、値の評価中にエラーが発生した場合、これらのマクロは*UNKNOWN*に解決されます。
この変更の結果、適切な機能を確保するには、次の統合のメディア タイプを更新する必要があります: iTop、Jira Service Desk、ManageEngine ServiceDesk、SolarWinds Service Desk。
この変更は、上記のマクロを使用するカスタムスクリプトや統合にも影響する可能性があります。
Zabbix 7.0.0のAPI changesの一覧を参照してください。
バックエンドデータベースとしてのOracleのサポートはZabbix 7.0以降非推奨となり、将来のバージョンでは完全に削除される予定です。
新規および既存のインストールにソフトウェア更新チェックがデフォルトで追加されました。Zabbixフロントエンドは、パブリックZabbixエンドポイントと通信して更新をチェックします。
このチェックを無効にするには、サーバーの設定でAllowSoftwareUpdateCheck=0を設定します。
現在、符号なし整数アイテムに浮動小数点値が受信されると、値は小数部から切り詰められ、整数として保存されます。 以前は、浮動小数点値があると整数アイテムがサポートされませんでした。
デフォルト(en_US)フロントエンド言語が使用されている場合、フロントエンドの時刻と日付の表示は、米国標準の時刻/日付表示に準拠するようになりました。
| 以前 | 今 | 
|---|---|
![]()  | 
       ![]()  | 
       
アップグレード後、すべてのエージェント、HTTPエージェント、およびwalk[OID]SNMPチェックは非同期ポーラーに移動されます。
以前は、cURLライブラリ機能はZabbixサーバー、プロキシ、またはエージェントのビルド時に検出されていました。cURL機能がアップグレードされた場合、それぞれのZabbixコンポーネントを再コンパイルする必要がありました。
現在、アップグレードされたcURLライブラリ機能をZabbixで使用するのに必要なことは、再起動のみです。再コンパイルは不要になりました。これは、Zabbixサーバー、プロキシ、またはエージェントに当てはまります。
さらに、次の点も変更されました:
アップグレードすると、サポートされているすべてのアイテムタイプのグローバルタイムアウトが、サーバー設定ファイルの Timeout パラメーター値に基づいて設定されます。 プロキシが設定されている場合は、デフォルトでサーバーのグローバルタイムアウト設定が使用されます。
アップグレードされたサーバー(バージョン7.0.0以降)を古いプロキシまたはエージェントで使用する場合、プロキシまたはエージェントは以前と同じように動作します。
ModbusおよびMQTTプラグインの設定ファイルからタイムアウトパラメーターが削除されました。 リクエスト実行タイムアウトは、アイテム設定フォームを使用して設定できるようになりました。
新しいアイテムタイプであるブラウザアイテムがZabbixに追加され、ブラウザを使用して複雑なWebサイトやWebアプリケーションを監視できるようになりました。 ブラウザアイテムを使用すると、ユーザー定義のJavaScriptコードを実行して、クリック、テキストの入力、Webページのナビゲーションなどのブラウザ関連のアクションをシミュレートできます。
さらに、この機能により、次の変更も追加されます:
StartBrowserPollersおよびWebDriverURLというZabbixサーバー/プロキシの設定ファイルパラメーターが追加されました。-w <webdriver url>コマンドラインパラメーターがzabbix_jsコマンドラインユーティリティに追加されました。新しいバージョンでは、ネットワークディスカバリプロセスが改良され、サービスチェック間の同時実行が可能になりました。 新しいディスカバリマネージャープロセスが、設定可能な数の検出ワーカー(またはスレッド)とともに追加されました。ディスカバリマネージャーは、ディスカバリルールを処理し、タスク(サービスチェック)を含む各ルールごとにディスカバリジョブを作成します。サービスチェックは、ディスカバリワーカーによって取得され、実行されます。
StartDiscoverersパラメーターによって、ディスカバリに使用できるディスカバリワーカーの合計数が決定されます。 StartDiscoverersのデフォルトの数は1から5に、範囲は0 ~ 250から0 ~ 1000に増加されました。以前のZabbixバージョンのdiscovererプロセスは削除されました。
さらに、各ルールごとに使用できるワーカーの数は、フロントエンドで設定できるようになりました。このパラメーターはオプションです。 アップグレード中は、以前のZabbixバージョンと同様に"1"に設定されます。
フロントエンドのすべてのアイコンがアイコン画像シートからフォントに切り替わりました。
データ監視 → 最新データでは、フィルターが設定されていない場合、サブフィルターとデータはデフォルトで表示されなくなりました。 ただし、サブフィルターのみを使用して設定された以前の保存されたフィルターは影響を受けません。 このような場合、サブフィルターは表示されたままになり、メインフィルターが設定されていなくてもデータが表示されます。
いくつかの設定パラメーターのデフォルト値が変更されました:
Plugins.<PluginName>.Capacityは完全に削除されていることに注意してください。これらの変更は、これらのパラメーターが明示的に設定されている既存のインストールには影響しません。
いくつかの集計関数が更新されました。
Zabbix 5.0以降、数値データ(浮動小数点)型は約15桁の精度と約-1.79E+308から1.79E+308 の範囲をサポートします。 古い数値タイプは無効でしたが、引き続きサポートされていました。Zabbix 6.4では非推奨となり、Zabbix 7.0以降では完全に削除されました。
インストールが拡張範囲の数値を使用するようにアップグレードされていない場合は、レポート → システム情報に次の警告が表示されます: "Database history tables upgraded: No. Support for the old numeric type is deprecated. Please upgrade to numeric values of extended range. (データベースヒストリテーブルがアップグレードされました: いいえ。古い数値タイプのサポートは非推奨です。拡張範囲の数値にアップグレードしてください。)"
Zabbix 7.0にアップグレードすると、次のデータベースが自動的にアップグレードされます:
ただし、Oracle、古いバージョンのMySQL、および大規模なインストールの場合は、Zabbix 7.0にアップグレードする前に、データタイプを手動でアップグレードすることをお勧めします。
圧縮されたTimescaleDBの場合、データベースは手動でアップグレードする必要があります。
アップグレードの詳細については、拡張範囲の数値へのアップグレードを参照してください。
Zabbixエージェント/エージェント2のWindowsサービスのスタートアップの種類を設定するオプション(-S --startup-type)が追加されました。 このオプションを使用すると、エージェント/エージェント2 サービスをWindowsの起動時に自動的に開始(automatic)、自動的に開始されたサービスの起動が完了した後に開始(delayed)、ユーザーまたはアプリケーションによって手動で開始(manual)、またはサービスを完全に無効にする(disabled)のように設定できます。
MSIからのWindowsエージェントのインストールを実行する場合、Windows Server 2008/Vista以降のバージョンでは、[コマンドラインパラメーター]((/manual/installation/install_from_packages/win_msi#installation-from-command-line)STARTUPTYPEで特に指定しない限り、デフォルトのスタートアップタイプがdelayedになります。 これにより、特にシステムの再起動時に、Zabbixエージェント/エージェント2のWindowsサービスの信頼性とパフォーマンスが向上します。
新しいテンプレートと既存のテンプレートの変更については、テンプレートの変更を参照してください。
パッケージからZabbixをインストールしてデータベーススキーマを準備するときに、データベース関連ファイルの場所が、ソース内のファイル構造とより適切に対応するように変更されました。
schema.sql、data.sql、images.sql)はデータベース ディレクトリのルートにあります。option-patchesディレクトリにあります。tsdbはtimescaledbに置き換えられました。option-patchesディレクトリには、with-compressionサブディレクトリとwithout-compression サブディレクトリが含まれています。 これらには、TimescaleDB圧縮設定に応じて、データベーステーブルのアップグレードのオプションファイル/パッチが含まれています。database/postgresql/timescaledb/schema.sqlに移動されました。さらに、次の変更点にも注意してください。
history_pk_*.sqlファイルの名前がhistory_upgrade_*.sqlに変更され、データベースアップグレードスクリプトを改善するためにtrends_upgrade.sqlファイルが追加されました。double.sqlファイルは、古い数値型(float)の削除により削除されました。以下は、MySQLデータベースとPostgreSQ データベースの以前のディレクトリ構造と現在のディレクトリ構造の比較です。
# 以前:                                         # 現在:
       
       database                                            database
       ├── mysql                                           ├── mysql
       │  ├── data.sql                                     │  ├── option-patches
       │  ├── double.sql                                   │  │  └── history_upgrade_prepare.sql
       │  ├── history_pk_prepare.sql                       │  ├── data.sql
       │  ├── images.sql                                   │  ├── images.sql
       │  └── schema.sql                                   │  └── schema.sql
       │                                                   │
       │                                                   │
       ├── postgresql                                      ├── postgresql
       │  ├── tsdb_history_pk_upgrade_no_compression       │  ├── option-patches
       │  │  ├── history_pk.sql                            │  │  └── history_upgrade_prepare.sql
       │  │  ├── history_pk_log.sql                        │  ├── timescaledb
       │  │  ├── history_pk_str.sql                        │  │  ├── option-patches
       │  │  ├── history_pk_text.sql                       │  │  │  ├── with-compression
       │  │  └── history_pk_uint.sql                       │  │  │  │  ├── history_upgrade.sql
       │  ├── tsdb_history_pk_upgrade_with_compression     │  │  │  │  ├── history_upgrade_log.sql
       │  │  ├── history_pk.sql                            │  │  │  │  ├── history_upgrade_str.sql
       │  │  ├── history_pk_log.sql                        │  │  │  │  ├── history_upgrade_text.sql
       │  │  ├── history_pk_str.sql                        │  │  │  │  ├── history_upgrade_uint.sql
       │  │  ├── history_pk_text.sql                       │  │  │  │  └── trends_upgrade.sql
       │  │  └── history_pk_uint.sql                       │  │  │  └── without-compression
       │  ├── data.sql                                     │  │  │     ├── history_upgrade.sql
       │  ├── double.sql                                   │  │  │     ├── history_upgrade_log.sql
       │  ├── history_pk_prepare.sql                       │  │  │     ├── history_upgrade_str.sql
       │  ├── images.sql                                   │  │  │     ├── history_upgrade_text.sql
       │  ├── schema.sql                                   │  │  │     ├── history_upgrade_uint.sql
       │  └── timescaledb.sql                              │  │  │     └── trends_upgrade.sql
       │                                                   │  │  └── schema.sql
       │                                                   │  ├── data.sql
       │                                                   │  ├── images.sql
       │                                                   │  └── schema.sql
       ├── ...                                             ├── ...以前のディレクトリ構造またはファイルへの参照を含むスクリプトがあれば、更新してください。
パッシブエージェントチェック用のJSONベースのプロトコルが実装されました。
古いエージェントとの互換性のために、古いプレーンテキストプロトコルへのフェイルオーバーが追加されました。エージェントが"ZBX_NOTSUPPORTED"を返す場合、Zabbixはインターフェースを古いプロトコルとしてキャッシュし、プレーンテキストのアイテムキーのみを送信してチェックを再試行します。
Zabbix getは、新しいオプション-P --protocol <value>で実行できるようになりました。"value"は次のいずれかです。
アイテムキーがサポートされていない場合、Zabbix getは終了コード0ではなく1を返すようになりました。