Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

Table of Contents

8 既知の問題点

MySQL 8.0.0~8.0.17環境でのproxy起動について

MySQL バージョン 8.0.0-8.0.17 で zabbix_proxy を使用すると、"access denied "エラーが発生します。

[Z3001] データベース'zabbix'への接続に失敗しました。この操作には、SUPER、SYSTEM_VARIABLES_ADMIN、
       またはSESSION_VARIABLES_ADMIN権限のうち、少なくとも1つが必要です。

これは、MySQL 8.0.0がセッション変数の設定に特別なパーミッションを強制し始めたことが原因です。
セッション変数の設定に特別なパーミッションが適用されるようになったためです。しかし、8.0.18 ではこの動作が削除されました。
MySQL 8.0.18 では、このシステム変数のセッション値を設定することはもはや制限された
操作ではなくなりました

この問題を回避するには、次のような追加権限をzabbixユーザに付与します。

MySQL バージョン 8.0.14 - 8.0.17:
SESSION_VARIABLES_ADMIN on . to 'zabbix'@'localhost'を付与してください。

MySQLバージョン8.0.0~8.0.13の場合:
SYSTEM_VARIABLES_ADMIN on . to 'zabbix'@'localhost' を付与してください。

パッケージからのインストール

以下を実行して特定のフロントエンド バージョンをインストールすることは不可能であることが確認されています。

yum install -v zabbix-web-mysql-scl-5.0.0

この問題を回避して、特定のフロントエンド バージョンをインストールする場合は、すべてのコンポーネントのバージョンを指定します。

例: yum install zabbix-web-mysql-scl-5.0.0 zabbix-apache-conf-scl-5.0.0 zabbix-web-5.0.0 zabbix-web-deps-scl-5.0.0

Timescale DB: 多数のパーティションでメモリ使用量が高くなる

PostgreSQL バージョン 9.6 ~ 12 は、多数のパーティションを含むテーブルを更新するときに大量のメモリを使用します (問題レポートを参照)。 この問題は、トレンドが比較的小さな (1 日など) チャンクに分割されている場合に、Zabbix が TimescaleDB を備えたシステムでトレンドを更新するときに発生します。 これにより、デフォルトのハウスキーピング設定でトレンド テーブルに何百ものチャンクが存在することになり、PostgreSQL がメモリ不足になる可能性があります。

この問題はZabbix 5.0.1以降のTimescaleDBを使用した新規インストールでは解決されていますが、それ以前に TimescaleDB を Zabbix でセットアップした場合は、移行に関する注意事項ZBX-16347 を参照してください。 #### Timescale DB 2.5.0: 整数を含むテーブルで圧縮ポリシーが失敗する可能性がある

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

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

MariaDB 10.2.1以前のバージョンでアップグレードする場合

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

MariaDBでのデータベースTLS接続について

DBTLSConnect parameterの 'verify_ca' オプションでは、
MariaDB を使用したデータベースTLS 接続はサポートされません。

グローバルイベント相関

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

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

PostgreSQL 11およびそれ以前のバージョンでは、浮動小数点数データ型をサポートしています。
1.34E-154 から 1.34E+154 までの範囲になります。

NetBSD 8.0とそれ以降

NetBSD 8.0以降では、起動時にZabbixの様々なプロセスがランダムにクラッシュすることがあります。
バージョン8.Xおよび9.Xでは、デフォルトのスタックサイズ(4MB)が小さすぎることが原因です。この値を増やす必要があります。

ulimit -s 10240 <br>

詳しくは、関連する問題報告ZBX-18275を参照してください。

IPMIチェック

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

SSH チェック

  • 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 を参照してください。

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も参照してください。

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

アイテム内のrequest method parameterが正しくない

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

Web監視とHTTPエージェント

CentOS 6、CentOS 7およびその他のLinuxディストリビューションで
WebシナリオまたはHTTP agent で"SSL verify peer "が有効な場合、Zabbix serverのメモリリークが発生することがあります。
upstream bugが原因です。
追加情報と回避策は、ZBX-10486を参照してください。

シンプルチェック

v3.10より前のバージョンのfpingには、重複したエコーリプライパケットを誤って処理するバグがあります。
これは icmpping, icmppingloss, icmppingsec アイテムに予期せぬ結果をもたらすかもしれません。
このため、最新バージョンのfpingを使用することをお勧めします。
詳細はZBX-11726を参照してください。

SNMPチェック

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データスパイク

SNMPデータのスパイクが確認されています。
詳細はZBX-14318を参照してください。

SNMP トラップ

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

このため、RHEL 8.0-8.2 を使用している場合は、RHEL 8.3 にアップグレードするのが最適な解決策です。
CentOS 8.0-8.2を使用している場合は、CentOS 8.3を待つか、EPELのパッケージを使用することができます。

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

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

Centos/RHEL 7でZabbix serverのalerterプロセスがクラッシュする事例が確認されています。
ZBX-10461を参照してください。

HP-UXでのZabbix agent のコンパイル

HP-UXパッケージサイトhttp://hpux.connect.org.uk からPCREライブラリをインストールする場合、
例えば、ファイル pcre-8.42-ia64_64-11.31.depot`からインストールすると、64ビット版のライブラリのみが
/usr/local/lib/hpux64にインストールされます。

この場合、agent のコンパイルを成功させるためには、以下のように "configure"のオプションをカスタマイズする必要があります。

CFLAGS="+DD64" ./configure --enable-agent --with-libpcre-include=/usr/local/include--with-libpcre-lib=/usr/local/lib/hpux64

フロントエンドロケールのフリッピング

フロントエンドのロケールが、明らかにロジックなしでフリッピングすることが確認されています。
あるページ (またはページの一部) はある言語で表示され、別のページ (またはページの一部) は別の言語で表示される。
一般的に、この問題は複数のユーザーがいて、そのうちの何人かがあるロケールを使い、それ以外に別のロケールを使う
ユーザーがいる場合に発生することがあります。

この問題を回避する方法として知られているのは、PHPとApacheのマルチスレッドを無効にすることです。

この問題は、ロケールの設定がどのように行われるかに関連しています。
in PHP
ロケールの情報はスレッド単位ではなくプロセス単位で管理されます。
そのため、マルチスレッド環境において、同じ Apache プロセスで実行される複数のプロジェクトがある場合、
別のスレッドでロケールが変更される可能性があります。
その結果、Zabbixスレッドで処理できるデータが変更される可能性があります。

詳細については、関連する問題報告を参照してください。

  • ZBX-10911 (フロントエンドロケールの反転の問題)
  • ZBX-16297 (BC の bcdiv 関数を使ったグラフの数値処理に関する問題)

PHP 7.3のopcacheの設定

PHP 7.3の設定で "opcache" が有効な場合、Zabbixフロントエンドを初めてロードしたときに、
空白の画面が表示されることがあります。これは登録されたPHP bugです。
この問題を回避するには、php.ini の opcache.optimization_levelパラメータを0x7FFFBFDFに設定してください。

グラフ

夏時間

夏時間 (DST) への変更により、X 軸ラベルの表示が不規則になります。 (日付の重複、日付の欠落など)

合計集計

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

ログファイルの監視

log[]とlogrt[]は、ファイルシステムが100%一杯の状態でログファイルが追加される場合、ログファイルを最初から読み直します。
(詳しくは ZBX-10884 を参照してください)

MySQLのスロークエリ

Zabbixサーバは、アイテムが存在しない場合、スロークエリ(SELECT)を生成します。
これは、以下の既知の問題によるものです。
MySQL 5.6/5.7バージョンにおける既知の問題
この問題の回避策は、index_condition_pushdown optimizer を無効にします。
詳細についてはZBX-10652を参照してください。

APIログイン

user.login methodを使用し、user.logout がない
カスタムスクリプトを実行した場合、多数のオープンユーザーセッションが作成される可能性があります。

SNMPv3 トラップにおける IPv6 アドレスの不具合について

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

ログイン失敗時の情報において、長いIPv6 IPアドレスが切り取られている

ログインに失敗したメッセージには、保存されているIPアドレスの最初の39文字だけが表示されます。
これは、データベースフィールドの文字数制限のためです。
つまり、39文字より長いIPv6 IPアドレスは、不完全に表示されます。

WindowsでのZabbix agentチェック

Zabbix agent設定ファイル(zabbix_agentd.conf)のServerパラメータに既存のDNSエントリがない場合、
Zabbixエージェントの応答時間が長くなる可能性があります。
これは、WindowsのDNSキャッシュデーモンがIPv4アドレスのネガティブレスポンスをキャッシュしないためです。
しかし、IPv6アドレスではネガティブレスポンスはキャッシュされます。
この問題を回避するには、ホスト上でIPv4を無効にする必要があります。

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

YAML には、いくつかの既知の問題があります。 export/import

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

SUSE で NGINX と php-fpm を使用する場合のセットアップウィザード

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

2つの回避策があります。

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

Ubuntu 20でZabbix WebサービスをChromiumで実行

ほとんどの場合、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 が使用されているため発生します。

MySQLカスタムエラーコード

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

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

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.0-6.0.2のサービス変換に誤りがある問題

Zabbix 6.0では、より柔軟な新しいサービスステータス計算アルゴリズムが導入されました。

Zabbix <6.0> からZabbix 6.0.0, 6.0.1, 6.0.2 にアップグレードすると、サービスステータス計算ルールの
'Most critical if all children have problems' と 'Most critical of child nodes' が入れ替わってしまいます。
Zabbix 6.0.0以降で作成されたサービスには、正しいステータス計算ルールが適用されます。

バージョン6.0未満からZabbix 6.0.3以降にアップグレードした場合、Zabbixのサービスステータス計算ルールが正しく更新されます。
6.0.xから6.0.3へのアップグレードは、サービスステータス計算ルールに影響を与えません。

Geomapウィジェットエラー

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

この問題を解決するには、古い設定ファイルを破棄し、6.0パッケージの設定ファイルを使用し、
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;
       }