参照: コンパイルの問題
MySQLのバージョン8.0.0-8.0.17上でzabbix_proxyを実行する際、以下のような"access denied"エラーが発生します:
[Z3001] connection to database 'zabbix' failed: [1227] Access denied; you need (at least one of) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation
これは、MySQL 8.0.0がセッション変数を設定するための特別な権限を強制するようになったためです。ただし、8.0.18では、この動作は削除されました: As of MySQL 8.0.18, setting the session value of this system variable is no longer a restricted operation.
回避策としては、zabbix
ユーザーに権限を与えます:
MySQLバージョン8.0.14 - 8.0.17の場合:
MySQLバージョン8.0.0 - 8.0.13の場合:
PostgreSQLバージョン 9.6-12 は、多数のパーティションを持つテーブルを更新するときに大量のメモリを使用します (問題レポートを参照)。 この問題は、トレンドが比較的小さなチャンク(1日など)に分割されている場合に、ZabbixがTimescaleDBを使用してシステム上のトレンドを更新するときに発生します。 これにより、デフォルトのハウスキーピング設定でトレンドテーブルに数百ものチャンクが存在することになり、PostgreSQLがメモリ不足になる可能性が高くなります。
この問題は、Zabbix 5.0.1以降のTimescaleDBを使用した新規インストールでは解決されていますが、それ以前にZabbixとTimescaleDBをセットアップしていた場合は、移行に関する注意事項についてZBX-16347を参照してください。
この問題は、TimescaleDB 2.5.0を使用する場合に発生します。 TimescaleDB 2.5.1以降で解決されています。
詳細については、TimescaleDB Issue #3773を参照してください。
MySQL/MariaDBのsql_mode
設定には、"STRICT_TRANS_TABLES"モードが設定されている必要があります。これが設定されていない場合、 Zabbixデータベースのアップグレードは失敗します (参照: ZBX-19435)。
データベーステーブルがMariaDB 10.2.1以前で作成された場合、Zabbixのアップグレードが失敗することがあります。これは、これらのバージョンではデフォルトの行形式がコンパクトであるためです。行形式をダイナミックに変更することで、この問題を修正できます (参照: ZBX-17690)。
デュアルスタック環境(IPv4とIPv6の両方をサポートするように構成されたシステム)では、ホスト名localhost
は通常、IPv4アドレスとIPv6アドレスの両方に解決されます。 多くのオペレーティングシステムやDNSリゾルバではIPv4よりもIPv6が優先されるのが一般的であるため、監視対象のサービスがIPv4のみをリッスンするように構成されている場合、Zabbixテンプレートが正しく機能しない可能性があります。
IPv6アドレスをリッスンするように構成されていないサービスはアクセスできなくなり、監視に失敗する可能性があります。 ユーザーはIPv4のアクセスを正しく構成している可能性がありますが、IPv6を優先するデフォルトの動作により、接続の問題が発生する可能性があります。
この問題を回避するには、サービス(Nginx、Apache、PostgreSQLなど)がIPv4とIPv6の両方のアドレスをリッスンするように設定され、Zabbixサーバー/エージェントがIPv6経由でアクセスできるようにする必要があります。 また、Zabbixテンプレートと設定では、127.0.0.1
ではなくlocalhost
を明示的に使用して、IPv4とIPv6の両方との互換性を確保します。
たとえば、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をインストールすると、公式のZabbixパッケージではなくEPEL Zabbixパッケージがインストールされます。
この場合、EPELからZabbixパッケージをアンインストールする、つまり、
EPELからZabbixパッケージをブロックします。 /etc/yum.conf
ファイルに次の行を追加します。
Zabbixサーバーをもう一度インストールします。
公式Zabbixパッケージには、バージョン文字列にrelease
という単語があることに注意してください。
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を参照してください。
Red Hat Enterprise LinuxでZabbixをアップグレードする場合、Zabbixリポジトリのパッケージの署名キーの期限切れの問題が発生することがあります。署名キーの期限が切れると、パッケージ署名の検証を試みると、証明書またはキーが無効になったことを示すエラーが発生します。例:
error: Verifying a signature using certificate
D9AA84C2B617479C6E4FCF4D19F2475308EFA7DD (Zabbix LLC (Jul 2022) <[email protected]>):
1. Certificiate 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リポジトリの正しいリンクに置き換えます)。
たとえば、RHEL 9 では、次を実行します:
次に、リポジトリ情報を更新します:
詳細については、ZBX-24761を参照してください。
MariaDBが使用されている場合、DBTLSConnectパラメーターのverify_caオプションではデータベースTLS接続はサポートされません。
負荷が高く、複数のLLD処理が実行されている場合、行ロック処理に関するInnoDBエラーが原因でデッドロックが発生する可能性があります。(upstream bug参照) このエラーは、MySQL 8.0.29で修正されましたが、MariaDBでは修正されていません。詳細は、ZBX-21506を参照してください。
最初のイベントと2番目のイベントの時間間隔が非常に小さい場合(0.5秒以下)、イベントは正しく相関しないことがあります。
PostgreSQL 11およびそれ以前のバージョンでは、浮動小数点数データ型をサポートしています。
1.34E-154 から 1.34E+154 までの範囲になります。
NetBSD 8.0以降では、起動時にZabbixの様々なプロセスがランダムにクラッシュすることがあります。
バージョン8.Xおよび9.Xでは、デフォルトのスタックサイズ(4MB)が小さすぎることが原因です。この値を増やす必要があります。
詳しくは、関連する問題報告ZBX-18275を参照してください。
Zabbix エージェント 2 は、標準の Go 正規表現ライブラリの制限により、正規表現の先読みと後読みをサポートしていません。
9 (stretch) 以前の Debian および 16.04 (xenial) 以前の Ubuntu では、標準の OpenIPMI ライブラリパッケージではIPMI チェックが動作しません。
修正するにはZBX-6139 で説明されているように OpenSSL を有効にして
OpenIPMI ライブラリを再コンパイルしてください。
libssh2 ライブラリがパッケージからインストールされている場合、Debian、Ubuntu などの一部の Linux ディストリビューションは、暗号化された秘密鍵 (パスフレーズ付き) をサポートしません。 詳細についてはZBX-4850 を参照してください。
OpenSSH 8 を使用して CentOS 8 で libssh 0.9.x を使用すると、SSH チェックで「SSH サーバーからデータを読み取れません」と報告されることがあります。 これは、libssh の 問題 (詳細レポート) が原因です。このエラーは安定版のlibssh 0.9.5 リリースで修正される予定です。 詳細についてはZBX-17756 も参照してください。
パイプ"|"を使用したSSH スクリプトで「SSH サーバーからデータを読み取れません」というエラーが発生する可能性があります。 この場合libssh ライブラリのバージョンをアップグレードすることをお勧めします。 詳細については、ZBX-21337 を参照してください。
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も参照してください。
FreeTDS UnixODBC ドライバーを使用している場合は、'SET NOCOUNT ON' ステートメントを SQL クエリの先頭に追加する必要があります (例:`SET NOCOUNT ON DECLARE @strsql NVARCHAR(max) SET @strsql = ....
`)。そうしないと、Zabbix のデータベース モニタ アイテムは"SQL クエリが空の結果を返しました"というエラーで情報の取得に失敗します。(https://support.zabbix.com/browse/ZBX-19917) を参照してください。
HTTPチェックでのみ使用されるrequest method parameterが、4.0以前のZabbixからアップグレードした結果、
すべてのアイテムにデフォルト値ではない'1'が設定されることがあります。
この問題の解決方法の詳細については、ZBX-19308を参照してください。
いくつかのLinuxディストリビューション上で、WebシナリオやHTTPエージェント内で「SSLピア検証」を有効にしていた時にupstream bugによってメモリリークが発生します。 ZBX-10486を参照してより詳細な情報と回避策を確認してください。
v3.10より前のバージョンのfpingには、重複したエコーリプライパケットを誤って処理するバグがあります。
これは icmpping
, icmppingloss
, icmppingsec
アイテムに予期せぬ結果をもたらすかもしれません。
このため、最新バージョンのfpingを使用することをお勧めします。
詳細はZBX-11726を参照してください。
コンテナがrootlessモードまたは特定の制限のある環境で実行されている状態でICMPチェックを実行する際に、fping: Operation not permitted
やすべてのリソースへのすべてのパケットが失われるなど、fping実行に関連するエラーが発生する可能性があります。
この問題を解決するには、"docker run"または"podman run"コマンドに--cap-add=net_raw
を追加します。
さらに、非ルート環境でfpingを実行するには、sysctlの変更が必要になる場合があります。例:
この"1995"はzabbix GIDです。詳細については、ZBX-22833を参照してください。
OpenBSDオペレーティングシステムを使用している場合、バージョン5.7.3までのNet-SNMPライブラリの
use-after-freeバグにより、Zabbix server にSourceIPパラメータが設定されている場合
Zabbix server がクラッシュする可能性があります。回避策として、SourceIPパラメータを設定しないようお願いします。
Linuxでも同様の問題が発生しますが、Zabbix server の動作が停止することはありません。
OpenBSDのnet-snmpパッケージに対するローカルパッチが適用され、OpenBSD 6.3でリリースされる予定です。
SNMPデータのスパイクが確認されています。
詳細はZBX-14318を参照してください。
SNMPトラップの処理で必要な"net-snmp-perl"パッケージは、RHEL 8.0-8.2で削除され、RHEL 8.3で追加されました。
RHEL 8.0-8.2を使用している場合、RHEL 8.3にアップグレードするのが最適な解決策です。
ZBX-17192を参照してください。
RHEL 7上でZabbixサーバーのalerterプロセスがクラッシュすることが確認されています。 詳細はZBX-10461を参照してください。
Zabbix エージェント2(バージョン6.0.5以前)をパッケージからアップグレードすると、プラグイン関連のファイル競合エラーが発生する場合があります。 エラーを修正するには、(必要に応じて)エージェント2の構成をバックアップし、エージェント2をアンインストールして、新たにインストールします。
RHEL ベースのシステムでは、次を実行します:
Debian ベースのシステムでは、次のコマンドを実行します:
詳細については、ZBX-23250を参照してください。
Webインターフェースの言語設定が、明らかにロジックなしでフリッピングすることが確認されています。
あるページ (またはページの一部) はある言語で表示され、別のページ (またはページの一部) は別の言語で表示される。
一般的に、この問題は複数のユーザーがいて、そのうちの何人かがあるロケールを使い、それ以外に別のロケールを使う
ユーザーがいる場合に発生することがあります。
この問題を回避する方法として知られているのは、PHPとApacheのマルチスレッドを無効にすることです。
この問題は、ロケールの設定がどのように行われるかに関連しています。
in PHP
ロケールの情報はスレッド単位ではなくプロセス単位で管理されます。
そのため、マルチスレッド環境において、同じ Apache プロセスで実行される複数のプロジェクトがある場合、
別のスレッドでロケールが変更される可能性があります。
その結果、Zabbixスレッドで処理できるデータが変更される可能性があります。
詳細については、関連する問題報告を参照してください。
PHP 7.3の設定で "opcache" が有効な場合、ZabbixのWebインターフェースを初めて読み込んだときに、
空白の画面が表示されることがあります。これは登録されたPHP bugです。
この問題を回避するには、php.ini の opcache.optimization_levelパラメータを0x7FFFBFDF
に設定してください。
夏時間 (DST) への変更により、X 軸ラベルの表示が不規則になります。 (日付の重複、日付の欠落など)
1 時間未満の期間のグラフで 合計集計 を使用すると、データがトレンドから取得されたときに、グラフに誤った (乗算された) 値が表示されます。
log[]とlogrt[]
は、ファイルシステムが100%一杯の状態でログファイルが追加される場合、ログファイルを最初から読み直します。
(詳しくは ZBX-10884 を参照してください)
Zabbixサーバは、アイテムが存在しない場合、スロークエリ(SELECT)を生成します。
これは、以下の既知の問題によるものです。
MySQL 5.6/5.7バージョンにおける既知の問題
この問題の回避策は、index_condition_pushdown optimizer を無効にします。
詳細についてはZBX-10652を参照してください。
Oracle DBでアイテム数とアイテム前処理ステップ数が多い場合、Zabbix 6.0インストールで構成同期が遅くなる可能性があります。 これは、Oracleデータベースエンジンのnclob型フィールドの処理速度が原因です。
パフォーマンスを向上させるにはデータベースパッチitems_nvarchar_prepare.sql を手動で適用して、フィールドタイプをnclobからnvarchar2に変換します。 この変換により、アイテムの保存前処理パラメータおよびアイテムのパラメータ(説明、タイプ:スクリプトのフィールドスクリプト、アタイプ:HTTPエージェントのフィールドリクエストボディおよびヘッダー、タイプ:データベースモニタのフィールド SQLクエリなど)の最大フィールドサイズ制限が65535バイトから4000バイトになることに注意してください。 パッチを適用する前に削除する必要があるテンプレート名を決定するためのクエリは、パッチ内にコメントとして提供されています。または、MAX_STRING_SIZEが設定されている場合は、パッチクエリでnvarchar2(4000)をnvarchar2(32767)に変更して、32767バイトのフィールドサイズ制限を設定できます。
詳細な説明については、ZBX-22363を参照してください。
user.login
methodを使用し、user.logout
がない
カスタムスクリプトを実行した場合、多数のオープンユーザーセッションが作成される可能性があります。
期間セレクターを含むフィルター設定を含む Zabbix フロントエンド ページへのリンクを開くと、フィルターは自動的にユーザーのデータベースに保存され、そのページの以前に保存されたフィルターや期間セレクターの設定が置き換えられます。これらの設定は、ユーザーが手動で更新またはリセットするまでアクティブなままです。
net-snmp のバグにより、SNMP トラップで SNMPv3 を使用する場合、IPv6 アドレスが正しく表示されないことがあります。
詳細および回避策については、ZBX-14541を参照してください。
ログインに失敗したメッセージには、保存されているIPアドレスの最初の39文字だけが表示されます。
これは、データベースフィールドの文字数制限のためです。
つまり、39文字より長いIPv6 IPアドレスは、不完全に表示されます。
Zabbix agent設定ファイル(zabbix_agentd.conf)のServerパラメータに既存のDNSエントリがない場合、
Zabbixエージェントの応答時間が長くなる可能性があります。
これは、WindowsのDNSキャッシュデーモンがIPv4アドレスのネガティブレスポンスをキャッシュしないためです。
しかし、IPv6アドレスではネガティブレスポンスはキャッシュされます。
この問題を回避するには、ホスト上でIPv4を無効にする必要があります。
YAML には、いくつかの既知の問題があります。 export/import
SUSE で NGINX + php-fpm を使用している場合、フロントエンドのセットアップウィザードで設定ファイルを保存できません。
これは、/usr/lib/systemd/system/php-fpm.service unitの設定により、Zabbixが/etcに書き込むことができないためです。
(PHP7.4で導入されました)。
2つの回避策があります。
ほとんどの場合、Zabbix WebサービスはChromiumで動作しますが、Ubuntu 20.04でChromiumを使用すると、以下のエラーが発生します。
Cannot fetch data: chrome failed to start:cmd_run.go:994: <br>
WARNING: cannot create user data directory: cannot create <br>
"/var/lib/zabbix/snap/chromium/1564": mkdir /var/lib/zabbix: permission denied <br>
Sorry, home directories outside of /home are not currently supported. See https://forum.snapcraft.io/t/11209 for details. <br>
このエラーは、ユーザ zabbix のホームディレクトリとして /var/lib/zabbix
が使用されているため発生します。
Azure上のMySQLインストールでZabbixを使用する場合、不明確なエラーメッセージ
[9002] Some errors occurred がZabbixログに表示されることがあります。
この一般的なエラーテキストは、データベースからZabbix server またはproxyに送信されます。
エラーの原因に関する詳細な情報を得るには、Azureのログを確認してください。
Zabbix 6.0では、PCRE2のサポートが追加されました。
PCREは現在もサポートされていますが、RHEL/CentOS 7以降、SLES(全バージョン)、Debian 9以降、Ubuntu 16.04以降の
ZabbixインストールパッケージはPCRE2を使用するように更新されています。
PCRE2 への移行は多くの利点をもたらしますが、既存の PCRE 正規表現パターンの一部が無効となったり、異なる動作をする可能性があります。
特に、パターン ^[\w-\.] が影響を受けます。この正規表現をセマンティクスに影響を与えずに有効にするには、
式を ^[-\w\.] に変更します。
これは、PCRE2がダッシュ記号を区切り記号として扱い、文字クラス内に範囲を作成するために起こります。
以下のZabbixインストールパッケージがアップデートされ、PCRE2を使用するようになりました。
RHEL/CentOS 7以降、SLES(全バージョン)、Debian 9以降、Ubuntu 16.04以降
Zabbix 6.0 では、より柔軟で新しいサービスステータスの計算アルゴリズムが導入されました。
Zabbix 6.0より前のバージョンから Zabbix 6.0.0、6.0.1、6.0.2 にアップグレードすると、サービスステータスの計算ルール「すべての子が障害であったときに最も重要」と「子サービスで最も重要」が入れ替わります。 Zabbix 6.0.0以降で作成されたサービスには、正しいステータス計算ルールがあります。
バージョン6.0より前のバージョンから Zabbix 6.0.3以降にアップグレードすると、Zabbixはサービスステータスの計算ルールを正しく更新します。6.0.xから6.0.3にアップグレードしても、サービスステータスの計算ルールには影響しません。
NGINXを使用して古いバージョンのZabbixからアップグレードし、アップグレード中に新しいNGINX設定ファイルに切り替えなかった場合、
Geomapウィジェットの地図が正しく読み込まれないことがあります。
この問題を解決するには、古い設定ファイルを破棄し、6.0パッケージの設定ファイルを使用し、
e. ZabbixフロントエンドのPHPの設定セクションのdownload instructionsに
記載されている方法で再設定することができます。
または、既存のNGINX設定ファイル(通常、/etc/zabbix/nginx.conf)を手動で編集することができます。
これを行うには、ファイルを開き、以下のブロックを探します:
そして、このブロックを次のように置き換えます:
location ~ /(api\/|conf[^\.]|include|locale) {
deny all;
return 404;
}
location /vendor {
deny all;
return 404;
}
ネストされたホスト グループからの情報がマップに不正確に表示されます。例:
logrotateユーティリティは、zabbix-agent、zabbix-agent2、およびzabbix-web-serviceのパッケージにのみ含まれていますが、Zabbixサーバーおよびプロキシの場合は個別にインストールする必要があります。logrotate依存関係は、Zabbix 6.4.4rc1以降、RHELおよびSUSEのサーバーおよびプロキシパッケージに追加されました。
先頭に空白がある場合や配列/オブジェクトが空の場合、JSONPath解析エラーが発生します。Zabbix 6.0.12で修正されました。
このバージョンでは、低レベル検出フィルター/オーバーライドでのAND/OR式の評価が失敗する場合があります。Zabbix 6.0.12で修正されました。
Windows ZabbixエージェントのダウンロードZIPファイルには、zabbix_sender.dll に必要なバージョン6.0.0~6.0.27のzabbix_sender.h ファイルと zabbix_sender.lib ファイルが含まれておりません。
グローバル変数は異なるWebhook呼び出し間で共有されるため、次のコードを実行すると、タグ値カウンターが徐々に増加します:
try
{
aa = aa + 1;
}
catch(e)
{
aa = 0;
}
result = {
'tags': {
'endpoint': aa
}
};
return JSON.stringify(result);
各スクリプトが独自のデータで動作し、同時呼び出し間での競合を抑止する為には、グローバル変数ではなくローカル変数を使用ください。
Microsoft のドキュメントでは、64 個未満の論理プロセッサを持つシステムでは常に1つのプロセッサグループ(グループ 0)があると説明されています。ただし、Zabbixのユーザーから、64個以下の論理プロセッサを持つシステムに2つのプロセッサグループがある場合に発生する稀なバグZBX-20260が報告されています。この結果2つのプロセッサグループのうち1つのプロセッサ グループに対してのみ"(n)"パフォーマンスカウンターが使用されるようになりました。このバグの実際の根本原因は不明です。ただし、同様のケースがstackoverflow.comで説明されており、その根本原因はBIOSとWindowsの相互運用性にありました。
フィルタ (例: 設定 → メンテナンス) は、特定のUnicode文字 (例: ȼ、ɇ) を含むエンティティに適用すると正しく機能しない場合があります。この問題は、MySQLまたはMariaDBデータベースのデフォルトの utf8mb4_bin 照合順序がUnicode文字の並べ替えと比較を処理する方法が原因で発生します。
この制限に対処するには、ユーザーはデータベース列の照合順序をutf8mb4_0900_bin、utf8mb4_0900_ai_ci、または utf8mb4_unicode_520_ciなどの代替に変更できます。ただし、照合順序を変更すると、空白の処理や他の文字の並べ替えとフィルタリングで予期しない動作が発生する可能性があることに注意してください。
照合順序の変更の詳細については、以下を参照してください。 MySQL ドキュメント または MariaDB ドキュメント。照合順序の違いの詳細については、MySQLドキュメントのUnicode文字セット を参照してください。