This is a translation of the original English documentation page. Help us make it better.
Table of Contents

8 既知の問題点

参照: コンパイルの問題

Zabbix 6.4.0rc1でのテンプレートネストの問題

Zabbix 6.4.0rc1 (rc1 = リリース候補版1)は、テンプレートネストをサポートしていません (6.4.0rc2で復元されました)。 Zabbix 6.4.0rc1にアップグレードした場合、DBパッチによって、ネストされたすべてのテンプレートがフラットなテンプレート構造に変換されます。 つまり、ネストされたテンプレートのすべてのエンティティ (アイテム、トリガーなど)は、これらのネストされたテンプレートを含むテンプレートに転送されます。 テンプレートネストのサポートは、Zabbix 6.4.0rc2で完全に復元されました。 ただし、Zabbix 6.4.0rc1にすでにアップグレードしている場合は、以前のテンプレート構造は復元されません。

MySQL 8.0.0-8.0.17でのプロキシの起動

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の場合:

grant SESSION_VARIABLES_ADMIN on *.* to 'zabbix'@'localhost';

MySQLバージョン8.0.0 - 8.0.13の場合:

grant SYSTEM_VARIABLES_ADMIN on *.* to 'zabbix'@'localhost';

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

PostgreSQLバージョン 9.6 ~ 12 は、多数のパーティションを持つテーブルを更新するときに大量のメモリを使用します (問題レポートを参照)。

この問題は、トレンドが比較的小さな (1日など) チャンクに分割されている場合に、ZabbixがTimescaleDBを使用してシステム上のトレンドを更新するときに発生します。 これにより、デフォルトのハウスキーピング設定でトレンドテーブルに数百のチャンクが存在することになり、PostgreSQLがメモリ不足になる可能性が高くなります。

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

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

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

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

アップグレード

アップグレードを成功させるための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テンプレートと設定では、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)を直接使用することも可能です。

Accidental installation of EPEL Zabbix packages

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.:

dnf remove zabbix-server-mysql

Block Zabbix packages from EPEL. Add the following line in the /etc/yum.conf file:

exclude=zabbix6.4*

Install Zabbix server again:

dnf install zabbix-server-mysql

Notice that official Zabbix packages have the word release in their version string:

6.4.10-release1.el8

Zabbix packages for RHEL on Red Hat UBI environments

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.

Expired signing key for RHEL packages

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:

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

Then, update the repository information:

dnf update

For more information, see ZBX-24761.

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

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

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

負荷が高く、複数のLLD処理が実行されている場合、行ロック処理に関するInnoDBエラーが原因でデッドロックが発生する可能性があります。(upstream bug参照) このエラーは、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.0以降では、起動時にZabbixの様々なプロセスがランダムにクラッシュすることがあります。
バージョン8.Xおよび9.Xでは、デフォルトのスタックサイズ(4MB)が小さすぎることが原因です。この値を増やす必要があります。

ulimit -s 10240 <br>

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

Regular expression limitations in Zabbix agent 2

Zabbix agent 2 does not support lookaheads and lookbehinds in regular expressions due to the standard Go regexp library limitations.

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エージェント

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

シンプルチェック

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

Errors with fping execution in rootless containers

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.:

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

where "1995" is the zabbix GID. For more details, see ZBX-22833.

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

Upgrading Zabbix agent 2 (6.0.5 or older)

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:

dnf remove zabbix-agent2
       dnf install zabbix-agent2

On Debian-based systems, run:

apt remove zabbix-agent2
       apt install zabbix-agent2

For more information, see ZBX-23250.

Webインターフェースの言語設定のフリッピング

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

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

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

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

  • ZBX-10911 (Webインターフェースの言語設定入れ替わりの問題)
  • ZBX-16297 (BC の bcdiv 関数を使ったグラフの数値処理に関する問題)

PHP 7.3のopcacheの設定

PHP 7.3の設定で "opcache" が有効な場合、ZabbixのWebインターフェースを初めて読み込んだときに、
空白の画面が表示されることがあります。これは登録された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を参照してください。

Slow configuration sync with Oracle

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.

APIログイン

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.

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以降

Geomap widget error

The maps in the Geomap widget may not load correctly, if you have upgraded from an older Zabbix version with NGINX and didn't switch to the new NGINX configuration file during the upgrade.

To fix the issue, you can discard the old configuration file, use the configuration file from the current version package and reconfigure it as described in the download instructions in section e. Configure PHP for Zabbix frontend.

Alternatively, you can manually edit an existing NGINX configuration file (typically, /etc/zabbix/nginx.conf). To do so, open the file and locate the following block:

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

Then, replace this block with:

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

Logrotate for Zabbix server and proxy

In Zabbix versions 6.4.3 and older, logrotate 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.

Missing files in Windows agent archive

The Windows Zabbix agent download ZIP file is missing zabbix_sender.h and zabbix_sender.lib files in versions 6.4.0-6.4.12, required for zabbix_sender.dll.

Server/proxy compatibility issue in 6.4.12

Zabbix server 6.4.12 and Zabbix proxy 6.4.12 are not compatible with other versions of proxy/server. If either server or proxy is 6.4.12, then both server and proxy must be 6.4.12.

This issue is fixed in 6.4.13 and later. However, while the following releases are compatible with 6.4.11 server/proxy (or sooner); they are still not compatible with 6.4.12 server/proxy.

Use case with global variables shared across webhook calls

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.