参照: コンパイルの問題
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
)を直接使用することも可能です。
With EPEL repository installed and enabled, installing Zabbix from packages will lead to EPEL Zabbix packages being installed rather than official Zabbix packages.
In this case uninstall Zabbix packages from EPEL, i.e.:
Block Zabbix packages from EPEL. Add the following line in the /etc/yum.conf
file:
Install Zabbix server again:
Notice that official Zabbix packages have the word release
in their version string:
When installing Zabbix from Red Hat Enterprise Linux packages on Red Hat Universal Base Image environments, ensure access to required repositories and dependencies. Zabbix packages depend on libOpenIPMI.so
and libOpenIPMIposix.so
libraries, which are not provided by any package in the default package manager repositories enabled on UBI systems and will result in installation failures.
The libOpenIPMI.so
and libOpenIPMIposix.so
libraries are available in the OpenIPMI-libs
package, which is provided by the redhat-#-for-<arch>-appstream-rpms
repository. Access to this repository is curated by subscriptions, which, in the case of UBI environments, get propagated by mounting repository configuration and secrets directories of the RHEL host into the container file-system namespace.
For more information, see ZBX-24291.
When upgrading Zabbix on Red Hat Enterprise Linux, you may encounter an expired signing key issue for packages on Zabbix repository. When a signing key expires, attempts to verify package signatures will result in an error indicating that the certificate or key is no longer valid. For example:
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
To resolve such issues, manually reinstall the latest zabbix-release
package for your specific variant of RHEL (replace the link below with the correct one from Zabbix repository).
For example, on RHEL 9, run:
Then, update the repository information:
For more information, see 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 agent 2 does not support lookaheads and lookbehinds in regular expressions due to the standard Go regexp library limitations.
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を参照してください。
When containers are running in rootless mode or in a specific-restrictions environment, you may face errors related to fping execution when performing ICMP checks, such as fping: Operation not permitted
or all packets to all resources lost.
To fix this problem add --cap-add=net_raw
to "docker run" or "podman run" commands.
Additionally fping execution in non-root environments may require sysctl modification, i.e.:
where "1995" is the zabbix GID. For more details, see 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を参照してください。
When upgrading Zabbix agent 2 (version 6.0.5 or older) from packages, a plugin-related file conflict error may occur. To fix the error, back up your agent 2 configuration (if necessary), uninstall agent 2 and install it anew.
On RHEL-based systems, run:
On Debian-based systems, run:
For more information, see 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を参照してください。
Configuration sync might be slow in Zabbix 6.0 installations with Oracle DB that have high number of items and item preprocessing steps. This is caused by the Oracle database engine speed processing nclob type fields.
To improve performance, you can convert the field types from nclob to nvarchar2 by manually applying the database patch items_nvarchar_prepare.sql. Note that this conversion will reduce the maximum field size limit from 65535 bytes to 4000 bytes for item preprocessing parameters and item parameters such as Description, Script item's field Script, HTTP agent item's fields Request body and Headers, Database monitor item's field SQL query. Queries to determine template names that need to be deleted before applying the patch are provided in the patch as a comment. Alternatively, if MAX_STRING_SIZE is set you can change nvarchar2(4000) to nvarchar2(32767) in the patch queries to set the 32767 bytes field size limit.
For an extended discussion, see ZBX-22363.
user.login
methodを使用し、user.logout
がない
カスタムスクリプトを実行した場合、多数のオープンユーザーセッションが作成される可能性があります。
When opening a link to Zabbix frontend page that contains filter settings, including the time selector, the filter is automatically saved in the database for the user, replacing the previously saved filter and/or time selector settings for that page. These settings remain active until the user manually updates or resets them.
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;
}
The logrotate utility is only included into packages for zabbix-agent, zabbix-agent2 and zabbix-web-service, but needs to be installed separately for Zabbix server and proxy. The logrotate dependency has been added to the server and proxy packages for RHEL and SUSE starting from Zabbix 6.4.4rc1.
JSONPath解析エラーは、先頭の空白と空の配列/オブジェクトの場合に発生します。 Zabbix 6.0.12 で修正されました。
The Windows Zabbix agent download ZIP file is missing zabbix_sender.h and zabbix_sender.lib files in versions 6.0.0-6.0.27, required for zabbix_sender.dll.
As global variables are shared across different webhook calls, the following code will result in the tag value counter gradually increasing:
try
{
aa = aa + 1;
}
catch(e)
{
aa = 0;
}
result = {
'tags': {
'endpoint': aa
}
};
return JSON.stringify(result);
Using local variables instead of global ones is recommended to make sure that each script operates on its own data and that there are no collisions between simultaneous calls.