このページで

8 既知の問題

参照: コンパイルの問題

7.4.4 の既知の問題

以下の理由により、このバージョンへのアップグレードは推奨されません。

  • Zabbix エージェント 2 の MySQL プラグインを使用している場合、CPU 使用率が突然急上昇する問題があるため(ZBX-27156 を参照)
  • 未定義のインデックスエラーにより、Zabbix アクティブエージェントのアイテムのグラフに "Undefined array key" 警告が表示されるため(ZBX-27153 を参照)

アップグレード

アップグレードを成功させるためのSQLモード設定

MySQL/MariaDBのsql_mode設定には、"STRICT_TRANS_TABLES"モードが設定されている必要があります。これが設定されていない場合、 Zabbixデータベースのアップグレードは失敗します (参照: ZBX-19435)。

MariaDB 10.2.1以前でのアップグレード

データベーステーブルがMariaDB 10.2.1以前で作成された場合、Zabbixのアップグレードが失敗することがあります。これは、これらのバージョンではデフォルトの行形式がコンパクトであるためです。行形式をダイナミックに変更することで、この問題を修正できます (参照: ZBX-17690)。

テンプレート

デュアルスタック(IPv4/IPv6)環境におけるテンプレートの互換性

デュアルスタック環境(IPv4 と IPv6 の両方をサポートするよう設定されたシステム)では、ホスト名 localhost は通常、IPv4 と IPv6 の両方のアドレスに解決されます。
多くのオペレーティングシステムや DNS リゾルバーでは IPv4 よりも IPv6 が優先されることが一般的であるため、監視対象のサービスが IPv4 のみで待ち受けるよう設定されている場合、Zabbix テンプレートが正しく動作しないことがあります。

IPv6 アドレスで待ち受けるよう設定されていないサービスにはアクセスできなくなる可能性があり、その結果、監視に失敗します。
ユーザーが IPv4 用のアクセスを正しく設定していても、IPv6 がデフォルトで優先される動作により、接続の問題が発生する場合があります。

この問題の回避策として、サービス(Nginx、Apache、PostgreSQL など)が IPv4 と IPv6 の両方のアドレスで待ち受けるよう設定されており、Zabbix サーバー/エージェント から IPv6 経由でのアクセスが許可されていることを確認してください。
さらに、Zabbix のテンプレートおよび設定では、IPv4 と IPv6 の両方との互換性を確保するため、127.0.0.1 ではなく localhost を明示的に使用してください。

たとえばPostgreSQL by Zabbix agent 2 テンプレートで PostgreSQL を監視する場合、zbx_monitor ユーザーの接続を許可するために pg_hba.conf ファイルを編集する必要があることがあります。
デュアルスタック環境で IPv6 が優先される場合(システムが localhost を ::1 に解決する場合)、localhost を設定していても IPv4 のエントリ(127.0.0.1/32)しか追加していないと、一致する IPv6 エントリが存在しないため接続は失敗します。

以下の pg_hba.conf ファイルの例では、zbx_monitor ユーザーがローカルマシンから任意のデータベースへ、IPv4 と IPv6 の両方のアドレスを使用して、異なる認証方式で接続できるようにしています。

# TYPE     DATABASE     USER            ADDRESS          METHOD
  host     all          zbx_monitor     localhost        trust
  host     all          zbx_monitor     127.0.0.1/32     md5
  host     all          zbx_monitor     ::1/128          scram-sha-256

必要に応じて、接続文字列用の PostgreSQL by Zabbix agent 2 テンプレートマクロを設定する際に、IPv4 アドレス(127.0.0.1)を直接使用することもできます。

EPEL Zabbixパッケージの誤インストール

EPELリポジトリがインストールされ、有効になっている場合、Zabbixパッケージのインストール時に、公式のZabbixパッケージではなくEPEL版が取得されることがあります。 これを解決するには、次の手順を実行してください。

1. EPELからインストールされたZabbixパッケージを削除します。

dnf remove zabbix-server-mysql

2. /etc/yum.repos.d/epel.repo ファイルに次の行を追加して、EPELからZabbixパッケージを除外します。

[epel]
...
excludepkgs=zabbix*

3.\ 公式のZabbixサーバーパッケージを再インストールします。

dnf install zabbix-server-mysql

インストール時、公式のZabbixパッケージにはバージョン文字列に release という語が含まれています(例: 7.0.0-release1.el8)。これにより、EPELパッケージと区別できます。

Red Hat UBI環境のRHEL用Zabbixパッケージ

Red Hat Universal Base Image環境でRed Hat Enterprise LinuxパッケージからZabbixをインストールする場合は、必要なリポジトリと依存関係にアクセスできることを確認してください。Zabbix パッケージはlibOpenIPMI.soおよびlibOpenIPMIposix.soライブラリに依存していますが、これらはUBIシステムで有効になっているデフォルトのパッケージマネージャーリポジトリのどのパッケージでも提供されていないため、インストールが失敗します。

libOpenIPMI.soおよびlibOpenIPMIposix.soライブラリは、redhat-#-for-<arch>-appstream-rpmsリポジトリによって提供されるOpenIPMI-libsパッケージで使用できます。このリポジトリへのアクセスはサブスクリプションによって管理されUBI環境の場合、RHELホストのリポジトリ構成およびシークレットディレクトリをコンテナーファイルシステムの名前空間にマウントすることによって伝播されます。

詳細についてはZBX-24291を参照してください。

RHELパッケージの署名キーの有効期限切れ

Red Hat Enterprise Linux またはその派生ディストリビューションでZabbixをアップグレードする際に、Zabbix repository のパッケージで署名キーの有効期限切れの問題が発生する場合があります。 署名キーの有効期限が切れると、パッケージ署名を検証しようとした際に、証明書またはキーがすでに有効ではないことを示すエラーが表示されます。 例:

error: Verifying a signature using certificate D9AA84C2B617479C6E4FCF4D19F2475308EFA7DD (Zabbix LLC (Jul 2022) <[email protected]>):
  1. Certificate 19F2475308EFA7DD invalid: certificate is not alive
      because: The primary key is not live
      because: Expired on 2024-07-04T11:41:23Z
  2. Key 19F2475308EFA7DD invalid: key is not alive
      because: The primary key is not live
      because: Expired on 2024-07-04T11:41:23Z

このような問題を解決するには、使用しているRHELのバリアントに対応する最新の zabbix-release パッケージを手動で再インストールしてください(以下のリンクは、Zabbix repository にある正しいリンクに置き換えてください)。

たとえば、RHEL 9 では次を実行します。

rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rhel/9/noarch/zabbix-release-latest.el9.noarch.rpm

その後、リポジトリ情報を更新します。

dnf update

詳細については、ZBX-24761 を参照してください。

Timescale DB: 大量のパーティションがある場合の高メモリ使用量

PostgreSQL バージョン 9.6-12 では、多数のパーティションを持つテーブルを更新する際に、メモリを過剰に使用します。
この問題は、trends が比較的小さい(例: 1日)チャンクに分割されている場合に、TimescaleDB を使用するシステムで Zabbix が trends を更新すると発生します。
その結果、デフォルトのハウスキーピング設定では trends テーブル内に数百のチャンクが存在することになり、PostgreSQL がメモリ不足に陥る可能性が高い状態になります。

この問題は、TimescaleDB を使用する新規インストールについては Zabbix 5.0.1 以降で解決されていますが、それ以前に Zabbix で TimescaleDB を設定していた場合は、移行に関する注意事項について ZBX-16347 を参照してください。

Timescale DB 2.5.0: 整数を含むテーブルで圧縮ポリシーが失敗する可能性

この問題は、TimescaleDB 2.5.0/2.5.1 を使用している場合に発生します。
この問題は TimescaleDB 2.5.2 以降で解決されています。

詳細については、TimescaleDB Issue #3773 を参照してください。

MariaDBでのデータベースTLS接続

MariaDBが使用されている場合、DBTLSConnectパラメーターの'verify_ca'オプションではデータベースTLS接続はサポートされません。

MySQL/MariaDBでのデッドロックの可能性

負荷が高く、複数のLLD処理が実行されている場合、行ロック処理に関するInnoDBエラーが原因でデッドロックが発生する可能性があります (上流のバグ参照))。 このエラーは、MySQL 8.0.29で修正されましたが、MariaDBでは修正されていません。詳細は、ZBX-21506を参照してください。

グローバルイベント相関

最初のイベントと2番目のイベントの時間間隔が非常に小さい場合(0.5秒以下)、イベントは正しく相関しないことがあります。

PostgreSQL 11以前における数値データ型(float)の範囲

PostgreSQL 11以前のバージョンでは、浮動小数点値の範囲は -1.34E-154 から 1.34E+154 程度までしかサポートされていません。

NetBSD 8.0以降

NetBSDバージョン8.Xおよび9.Xでは、起動時にZabbixのプロセスがランダムにクラッシュする場合があります。これは、デフォルトのスタックサイズ(4MB)が小さすぎることが原因です。以下のコマンドを実行してスタックサイズを増やす必要があります。

ulimit -s 10240

詳細については、関連する問題レポートZBX-18275を参照してください。

Zabbixエージェント2の正規表現の制限

Zabbixエージェント2は、標準のGo正規表現ライブラリの制限により、正規表現の先読みと後読みをサポートしていません。

IPMIチェック

Debian 9 (stretch)以前、およびUbuntu 16.04 (xenial)以前のバージョンでは、標準のOpenIPMIライブラリパッケージではIPMI チェックが動作しません。 この問題を修正するには、ZBX-6139の説明に従ってOpenSSLを有効にし、OpenIPMIライブラリを再コンパイルしてください。

IPMI — 信頼されていないホストによりOpenIPMIがクラッシュする可能性があります

ZabbixがIPMIデータのポーリングに使用するOpenIPMIライブラリには、信頼されていないデバイスからの特別に細工された応答によって引き起こされる不具合があります。
信頼されていないIPMIデバイスは、OpenIPMIライブラリをクラッシュさせるように細工されたデータを送信する可能性があり、その結果、IPMIポーリングを実行するZabbixサーバーのプロセスが終了することがあります。

SSHチェック

  • libssh2ライブラリがパッケージからインストールされている場合、Debian、Ubuntuなどの一部のLinuxディストリビューションは、暗号化された秘密鍵(パスフレーズ付き)をサポートしません。詳細については、ZBX-4850を参照してください。

  • OpenSSH 8を使用していくつかのLinuxディストリビューションでLIBSSH 0.9.xを使用する場合、SSHチェックは「SSH Serverからデータを読み取ることができない」と報告する場合があります。これは、libsshの問題 (詳細レポート)が原因です。このエラーは安定版のlibssh 0.9.5リリースで修正される予定です。詳細については、ZBX-17756を参照してください。

  • パイプ"|"を使用したSSHスクリプトで「SSH サーバーからデータを読み取れません」というエラーが発生する可能性があります。 この場合libsshライブラリのバージョンをアップグレードすることをお勧めします。 詳細については、ZBX-21337を参照してください。

ODBC チェック

  • MySQL unixODBC ドライバーは、MariaDB コネクタ ライブラリに対してコンパイルされた Zabbix サーバーまたは Zabbix プロキシと共に使用しないでください。アップストリームのバグ のため、可能であればドライバーと同じコネクタを使用しないこともお勧めします。推奨セットアップ:

    PostgreSQL, SQLite または Oracle connector → MariaDB または MySQL unixODBC driver MariaDB connector → MariaDB unixODBC driver MySQL connector → MySQL unixODBC driver

詳細および利用可能な回避策についてはZBX-7665 を参照してください。

  • Microsoft SQL Server からクエリされた XML データは、Linux および UNIX システムでさまざまな方法で切り捨てられる場合があります。

  • さまざまなバージョンの Linux 用 Oracle Instant Client を使用して Oracle データベースを監視するために ODBC チェックを使用すると、Zabbix サーバーがクラッシュすることが確認されています。[ZBX-18402](https://support.zabbix.com/browse/ZBX-18402)[ZBX-20803](https://support.zabbix.com/browse/ZBX-20803)も参照してください

  • FreeTDS UnixODBC ドライバーを使用している場合は、'SET NOCOUNT ON' ステートメントを SQL クエリの先頭に追加する必要があります (例:`SET NOCOUNT ON DECLARE @strsql NVARCHAR(max) SET @strsql = .... `)。そうしないと、Zabbix のデータベース モニタ アイテムは"SQL クエリが空の結果を返しました"というエラーで情報の取得に失敗します。\詳細についてはZBX-19917 を参照してください。

アイテム内のリクエストメソッドパラメーターが正しくない

HTTPチェックでのみ使用されるリクエストメソッドパラメーターが、4.0以前のZabbixからアップグレードした結果、 すべてのアイテムにデフォルト値ではない'1'が設定されることがあります。 この問題の解決方法の詳細については、ZBX-19308を参照してください。

Web監視とHTTPエージェント

いくつかのLinuxディストリビューション上で、WebシナリオやHTTPエージェント内で「SSLピア検証」を有効にしていた時にupstream bugによってメモリリークが発生します。 ZBX-10486を参照してより詳細な情報と回避策を確認してください。

シンプルチェック

v3.10より前のバージョンのfpingには、重複するエコーリプレイパケットを適切に処理できないバグがあります。これにより、icmppingicmppinglossicmppingsecの各アイテムで予期しない結果が発生する可能性があります。最新バージョンのfpingを使用することをお勧めします。詳細については、ZBX-11726を参照してください。

rootlessコンテナでのfping実行に関するエラー

コンテナがrootlessモードまたは特定の制限のある環境で実行されている状態でICMPチェックを実行する際に、fping: Operation not permitted やすべてのリソースへのすべてのパケットが失われるなど、fping実行に関連するエラーが発生する可能性があります。

この問題を解決するには、"docker run"または"podman run"コマンドに--cap-add=net_rawを追加します。

さらに、非ルート環境でfpingを実行するには、sysctlの変更が必要になる場合があります。例:

sudo sysctl -w "net.ipv4.ping_group_range=0 1995"

この"1995"はzabbix GIDです。詳細については、ZBX-22833を参照してください。

SNMPチェック

OpenBSDオペレーティングシステムをご利用の場合、バージョン5.7.3までのNet-SNMPライブラリに存在するUAF(Use After Free)バグにより、Zabbixサーバー設定ファイルでSourceIPパラメーターが設定されているとZabbixサーバーがクラッシュする可能性があります。回避策として、SourceIPパラメーターを設定しないでください。Linuxでも同じ問題が発生しますが、Zabbixサーバーが動作を停止することはありません。OpenBSDのnet-snmpパッケージにはローカルパッチが適用されており、OpenBSD 6.3でリリースされる予定です。

SNMPデータのスパイク

SNMPデータにスパイクが発生していることが確認されています。主電源の電圧スパイクなどの特定の物理的要因に関連している可能性があります。詳細については、ZBX-14318を参照してください。

SNMPトラップ

SNMPトラップの処理で必要な"net-snmp-perl"パッケージは、RHEL 8.0-8.2で削除され、RHEL 8.3で追加されました。

RHEL 8.0-8.2を使用している場合、RHEL 8.3にアップグレードするのが最適な解決策です。

ZBX-17192を参照してください。

RHEL 7でのalerterプロセスのクラッシュ

RHEL 7上でZabbixサーバーのalerterプロセスがクラッシュすることが確認されています。 詳細はZBX-10461を参照してください。

Zabbixエージェント2 (6.0.5以前)のアップグレード

Zabbixエージェント2 (バージョン6.0.5以前)をパッケージからアップグレードすると、プラグイン関連のファイル競合エラーが発生する場合があります。 エラーを修正するには、(必要に応じて)エージェント2の構成をバックアップし、エージェント2をアンインストールして、新たにインストールします。

RHELベースのシステムでは、次を実行します:

dnf remove zabbix-agent2
dnf install zabbix-agent2

Debianベースのシステムでは、次のコマンドを実行します:

apt remove zabbix-agent2
apt install zabbix-agent2

詳細については、ZBX-23250を参照してください。

Webインターフェースの言語設定の切り替え

Webインターフェースの言語設定が、明確なロジックなしに切り替わる場合があることが確認されています。例えば、一部のページ(またはページの一部)がある言語で表示され、他のページ(またはページの一部)が別の言語で表示されることがあります。 この問題は、複数のユーザーがいて、一部のユーザーがあるロケールを使用し、他のユーザーが別のロケールを使用している場合に発生する可能性があります。

この問題の既知の回避策として、PHPとApacheのマルチスレッドを無効にすることが挙げられます。

この問題は、PHPにおけるロケール設定の仕組みに関係しています。ロケール情報はスレッドごとではなくプロセスごとに保持されます。そのため、マルチスレッド環境で、同じApacheプロセスで複数のプロジェクトが実行されている場合、別のスレッドでロケールが変更され、Zabbixスレッドでのデータ処理方法が変更される可能性があります。

詳細については、関連する問題レポートをご覧ください:

  • ZBX-10911 (Webインターフェースのロケール切り替えに関する問題)
  • ZBX-16297 (BC Math関数のbcdiv関数を使用したグラフ内の数値処理に関する問題)

グラフ

グラフ(クラシック)の問題

クラシックグラフで問題が発生した場合は、GDライブラリ(libgd)をバージョン2.3.3-13以降に、PHPをバージョン8.0.19、8.1.33、8.2.29、8.3.25、8.4.12以降に更新することを推奨します。

サマータイム

サマータイム(DST)の変更により、X軸ラベルの表示に不規則性(日付の重複、日付の欠落など)が生じます。

合計集計

グラフで1時間未満の期間に対して合計集計を使用すると、データがトレンドから取得される場合に、グラフに誤った(乗算された)値が表示されます。

テキストの重なり

一部のWebインターフェース言語(例: 日本語)では、ローカルフォントが原因でグラフの凡例内のテキストが重なることがあります。 これを回避するには、PHP GD拡張モジュールのバージョン2.3.0以降を使用してください。

ログファイルの監視

アイテムlog[]およびlogrt[] は、ファイルシステムが100%使用されていてログファイルに追加される場合、ログファイルを先頭から繰り返し再読み込みします (詳細については、ZBX-10884を参照してください) 。

MySQLのスロークエリ

Zabbixサーバーはアイテムの存在しない値がある場合、スローSELECTクエリを生成します。 この問題は、MySQL 5.6/5.7バージョンで発生することが知られています(拡張された議論については、ZBX-10652を参照してください)。そして特定の場合、後のMySQLバージョンでも発生する場合があります。 これに対する回避策は、MySQLのindex_condition_pushdownまたはfirep_ordering_indexオプティマイザーを無効にすることです。 ただし、この回避策は、スロークエリに関連するすべての問題を修正しない場合があることに注意してください。

リンクからの永続的なフィルター設定

フィルター設定(期間セレクターを含む)を含むZabbix Webインターフェースページへのリンクを開くと、そのフィルターはユーザー用としてデータベースに自動的に保存され、そのページで以前に保存されていたフィルターおよび/または期間セレクターの設定を置き換えます。
これらの設定は、ユーザーが手動で更新またはリセットするまで有効なままです。

SNMPv3トラップにおけるIPv6アドレスの問題

net-snmpのバグにより、SNMPトラップでSNMPv3を使用すると、IPv6アドレスが正しく表示されない場合があります。詳細と回避策については、ZBX-14541を参照してください。

ログイン失敗情報の長いIPv6 IPアドレスが切り詰められる

ログイン失敗メッセージには、データベースフィールドの文字数制限である最初の39文字のみが表示されます。そのため、39文字を超えるIPv6 IPアドレスは不完全な形で表示されます。

WindowsでのZabbixエージェントのチェック

Zabbixエージェント設定ファイル(zabbix_agentd.conf)のServerパラメーターに存在しないDNSエントリがあると、Windows上でZabbixエージェントの応答時間が長くなる可能性があります。これは、Windows DNSキャッシュデーモンがIPv4アドレスの否定応答をキャッシュしないために発生します。ただし、IPv6アドレスの場合は否定応答がキャッシュされるため、回避策としてホストでIPv4を無効にすることが考えられます。

YAMLエクスポート/インポート

YAMLのエクスポート/インポートには、いくつかの既知の問題があります。

  • エラーメッセージが翻訳できない。
  • .yamlファイルの拡張子を持つ有効なJSONがインポートできないことがある。
  • 引用符で囲まれていない日付は、自動的にUnixタイムスタンプに変換される。

SUSEでのNGINXおよびphp-fpm使用時のセットアップウィザード

SUSEでNGINX + php-fpmを使用している場合、フロントエンドのセットアップウィザードは設定ファイルを保存できません。これは、/usr/lib/systemd/system/php-fpm.serviceユニットの設定により、Zabbixが/etcに書き込みできないことが原因です(PHP 7.4で導入されました)。

回避策は2つあります。

  • php-fpm systemdユニットのProtectSystemオプションを'full'ではなく'true'に設定する。
  • /etc/zabbix/web/zabbix.conf.phpファイルを手動で保存する。

認証ヘッダーの転送

ApacheまたはNGINXが、APIリクエスト内の認証ヘッダーをZabbixに転送できない場合があります。 これにより、Zabbix APIやOktaを使用したSAMLといったシングルサインオン(SSO)サービスの使用時に認証の問題が発生する可能性があります。

この問題を解決するには、Webサーバーの設定を更新してください。

Apacheをリバースプロキシ(CGI以外の設定)として使用する場合は、(RHELベースシステムの場合) /etc/httpd/conf/httpd.confまたは(Debian/Ubuntuの場合) /etc/apache2/apache2.confに次のディレクティブを追加してください。

SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1

Apacheがリクエストを処理するためにスクリプトを直接実行する場合(例: mod_cgiを使用)、代わりに次のディレクティブを追加してください。

CGIPassAuth On

一方、NGINXはAuthorizationヘッダーを自動的に処理します。 ただし、NGINXがリバースプロキシとして動作している場合は、/etc/nginx/nginx.conf (Zabbixフロントエンドの場所)に以下のディレクティブを追加することで、Authorizationヘッダーを明示的に転送できます。

...
location / {
...
    proxy_set_header Authorization $http_authorization;
    proxy_pass http://backend_server;
...
}

設定を更新したら、Webサーバーを再起動してください。

詳細については、以下を参照してください:

Ubuntu 20のZabbix WebサービスのChromium

ほとんどの場合、Zabbix WebサービスはChromiumで動作しますが、Ubuntu 20.04でChromiumを使用すると、以下のエラーが発生します:

Cannot fetch data: chrome failed to start:cmd_run.go:994:
WARNING: cannot create user data directory: cannot create 
"/var/lib/zabbix/snap/chromium/1564": mkdir /var/lib/zabbix: permission denied
Sorry, home directories outside of /home are not currently supported. See https://forum.snapcraft.io/t/11209 for details.

このエラーは、/var/lib/zabbixがユーザー'zabbix'のホームディレクトリとして使用されるために発生します。

MySQLカスタムエラーコード

Zabbixはバックエンドデータベースにアクセスできないことを検出すると、通知を送信し、接続を試行し続けます。特定のデータベースエンジンでは固有のエラーコードが認識されます。 MySQLで認識されるエラーコードは次のとおりです:

  • CR_CONN_HOST_ERROR
  • CR_SERVER_GONE_ERROR
  • CR_CONNECTION_ERROR
  • CR_SERVER_LOST
  • CR_UNKNOWN_HOST
  • ER_SERVER_SHUTDOWN
  • ER_ACCESS_DENIED_ERROR
  • ER_ILLEGAL_GRANT_FOR_TABLE
  • ER_TABLEACCESS_DENIED_ERROR
  • ER_UNKNOWN_ERROR

さらに、Azure上のMySQLインストールでZabbixを使用している場合、不明瞭なエラーメッセージ[9002] Some errors occurredがZabbixログに表示されることがあります。この一般的なエラーテキストは、データベースからZabbixサーバーまたはプロキシに送信されます。エラーの原因について詳しくは、Azureログを確認してください。

PCRE2への移行後の無効な正規表現

Zabbix 6.0では、PCRE2のサポートが追加されました。 PCREは現在もサポートされていますが、RHEL 7以降、SLES (全バージョン)、Debian 9以降、Ubuntu 16.04以降のZabbixインストールパッケージは、PCRE2を使用するように更新されました。 PCRE2への切り替えは多くの利点を提供する一方で、特定の既存のPCRE Regexpパターンが無効になったり、異なる動作をしたりする可能性があります。 特に、パターン\^[\w-\.]に影響します。 このregexpをセマンティクスに影響することなく再度有効にするために、式を\^[-\w\.]に変更します。 これは、PCRE2がダッシュ記号を区切り文字として扱い、文字クラス内に範囲を作成するために発生します。

Geomapウィジェットエラー

NGINXを使用して古いバージョンのZabbixからアップグレードし、アップグレード中に新しいNGINX設定ファイルに切り替えなかった場合、Geomapウィジェットの地図が正しく読み込まれないことがあります。

この問題を解決するには、古い設定ファイルを破棄し、現在のバージョンのパッケージの設定ファイルを使用し、e. ZabbixフロントエンドのPHPの設定セクションのdownload instructionsに記載されている方法で再設定することができます。

または、既存のNGINX設定ファイル(通常、/etc/zabbix/nginx.conf)を手動で編集することができます。これを行うには、ファイルを開き以下のブロックを探します:

location ~ /(api\/|conf[^\.]|include|locale|vendor) {
        deny            all;
        return          404;
}

そして、このブロックを次のように置き換えます:

location ~ /(api\/|conf[^\.]|include|locale) {
        deny            all;
        return          404;
}

location /vendor {
        deny            all;
        return          404;
}

Webhook呼び出し間で共有されるグローバル変数の使用例

グローバル変数(例: varletまたはconst宣言なしでglobal = 1を実行する) は異なるWebhook呼び出し間で共有されるため、次のコードを実行すると、タグ値カウンターが徐々に増加します:

try 
{
   aa = aa + 1;
}
catch(e)
{
   aa = 0;
}

result = {
        'tags': {
            'endpoint': aa
        }
    };
return JSON.stringify(result);

各スクリプトが独自のデータで動作し、同時呼び出し間での競合を抑止する為には、グローバル変数ではなくローカル変数を使用ください。

Windowsのプロセッサグループ

Microsoftのドキュメントによると、論理プロセッサ数が64未満のシステムでは、プロセッサグループは常に1つで、Group 0になります。 ただし、Zabbixユーザーからは、論理プロセッサ数が64以下のシステムで2つのプロセッサグループが存在するというまれなバグ ZBX-20260 が報告されています。 その結果、2つあるプロセッサグループのうち1つに対してしか "\Processor(n)" パフォーマンスカウンターが存在しない状態になっていました。 このバグの実際の根本原因は不明です。 ただし、これと似た事例が stackoverflow.com で説明されており、そこでの根本原因はBIOSとWindowsの相互運用にありました。

utf8mb4照合順序におけるフィルタリングの制限

特定のUnicode文字(例: ȼ、ɇ)を含むエンティティに適用した場合、フィルター(例: データ収集 > メンテナンス)が正しく機能しないことがあります。 この問題は、MySQLまたはMariaDBデータベースのデフォルトのutf8mb4_bin照合順序におけるUnicode文字の並べ替えおよび比較の処理方法に起因します。

この制限に対処するため、ユーザーはデータベース列の照合順序を、utf8mb4_0900_bin、utf8mb4_0900_ai_ci、utf8mb4_unicode_520_ci などの代替値に変更できます。 ただし、照合順序を変更すると、空白の扱いや、他の文字の並べ替えおよびフィルタリングにおいて予期しない動作が発生する可能性がある点に注意してください。

照合順序の変更の詳細については、MySQL documentation または MariaDB documentation を参照してください。 照合順序の違いの詳細については、MySQL documentation の Unicode Character Sets を参照してください。

MariaDB 10.5.1–10.5.9 におけるUI要素へのアクセス

Super Admin 以外のロールで Zabbix Webインターフェースにアクセスすると、次のメッセージが表示される場合があります: 「System error occurred. Please contact Zabbix administrator.」。 この問題は、MariaDB versions 10.5.1 から 10.5.9 を使用しているインストール環境に影響します。

この問題を回避するには、MariaDB を 10.5.9 より新しいバージョンに更新してください。詳細については、ZBX-25746 を参照してください。

tcmalloc を使用した過剰なメモリ使用量のプロファイリング

Zabbix のインストール環境でメモリを使いすぎている疑いがある場合は、tcmalloc のメモリプロファイリング機能を使用して、Zabbix サーバー/プロキシのメモリ消費を調査できます。

1. Zabbix をソースからインストールする際に、追加のフラグを設定します。

export CFLAGS="-std=gnu99 -g -O0"

-std=gnu99 フラグは、Zabbix サーバー、Zabbix プロキシ、または Zabbix エージェントのビルドに必要です。
-g フラグは追加のデバッグ情報を付加し、-O0 は最適化を無効にします。最適化は tcmalloc のプロファイリングに干渉する可能性があります。

2. Zabbix サーバーを起動する前に、以下の環境変数を設定します。
これらの変数は、メモリ使用量をどのように追跡し、レポートするかを tcmalloc に指示します。

LD_PRELOAD="/usr/lib/aarch64-linux-gnu/libtcmalloc.so" \
HEAPPROFILE=./heap_profile \
HEAP_PROFILE_ALLOCATION_INTERVAL=0 \
HEAP_PROFILE_INUSE_INTERVAL=4294967296 \
HEAPPROFILESIGNAL=5 \
MALLOCSTATS=1 \
./sbin/zabbix_server -f -c /etc/zabbix/zabbix_server.conf

3. 対象プロセスにシグナル 5 を送信して、プロファイルダンプをトリガーします。
1234 は実際のプロセス ID(PID)に置き換えてください。

kill -5 1234

4. 生成されたプロファイルを表示します。

pprof-symbolize -text ./sbin/zabbix_server ./heap_profile.0001.heap

Using local file ./sbin/zabbix_server.
Using local file ./heap_profile.0001.heap.
Total: 1078.1 MB
  1076.8  99.9%  99.9%   1076.8  99.9% zbx_malloc2
     1.0   0.1% 100.0%      1.0   0.1% __GI___strdup
     0.2   0.0% 100.0%      0.2   0.0% CRYPTO_zalloc@@OPENSSL_3.0.0
     0.1   0.0% 100.0%      0.1   0.0% OPENSSL_LH_insert@@OPENSSL_3.0.0
     0.0   0.0% 100.0%      0.0   0.0% zbx_realloc2
     0.0   0.0% 100.0%      0.1   0.0% PKCS7_decrypt@@OPENSSL_3.0.0
     0.0   0.0% 100.0%      0.0   0.0% find_best_tree_node
     0.0   0.0% 100.0%      0.0   0.0% CRYPTO_strndup@@OPENSSL_3.0.0
     ...
     0.0   0.0% 100.0%      0.0   0.0% preprocessing_flush_value
     0.0   0.0% 100.0%   1074.0  99.6% preprocessor_add_request

この例では、zbx_malloc2 がほぼすべてのメモリ割り当ての原因となっています。

関連情報:

  • 関連する問題レポートについては、ZBX-25050 および ZBX-25584 を参照してください。
  • コンパイルオプション(-std=gnu99-g-O0 など)については、GCC Option Summary を参照してください。
  • tcmalloc プロファイリング用の環境変数については、Gperftools Heap Profiler のドキュメントを参照してください。

マルチプライマリモードでの MySQL 8.0 Group Replication

MySQL 8.0 Group Replication をマルチプライマリモードで使用している場合、トランザクションのコミット中に次のようなエラーが発生することがあります。

1531697:20250128:064734.697 query [txnlev:1] [update alerts set status=1,retries=0,error='' where alertid=154618;
1531697:20250128:064734.713 query [txnlev:1] [commit;]
1531697:20250128:064734.753 [Z3005] query failed: [3101] Plugin instructed the server to rollback the current transaction. [commit;]

このエラーは、外部キー制約を伴うロールバック処理の問題によって発生していると考えられます。

関連情報: