18 スクリプト

概要

スクリプトアイテムは、HTTP/HTTPS 経由でデータを取得する機能を備えた、ユーザー定義の JavaScript コードを実行してデータを収集するために使用できます。スクリプトに加えて、オプションのパラメータ一覧(名前と値の組)およびタイムアウトを指定できます。

このアイテムタイプは、複数のステップや複雑なロジックを必要とするデータ収集シナリオで役立つ場合があります。例えば、スクリプトアイテムを設定して HTTP 呼び出しを行い、その最初のステップで受信したデータを何らかの方法で処理し、変換した値を 2 回目の HTTP 呼び出しに渡すことができます。

スクリプトアイテムは、Zabbix サーバーまたはプロキシのポーラーによって処理されます。

設定

アイテム設定フォームタイプフィールドで「スクリプト」を選択し、必要なフィールドに入力します。

script\_item.png

必須の入力フィールドには、すべて赤いアスタリスクが付いています。

スクリプトアイテムで固有の情報が必要なフィールドは次のとおりです。

Field Description
Key アイテムの識別に使用する一意のキーを入力します。
Parameters スクリプトに渡す変数を、属性と値のペアとして指定します。
ユーザーマクロを使用できます。どの組み込みマクロがサポートされているかを確認するには、サポートされるマクロの表で「Script-type item」を検索してください。
Script パラメーターフィールド内、またはその横にある鉛筆アイコンをクリックすると開くモーダルエディターで、JavaScriptコードを入力します。このコードには、メトリクス値を返すためのロジックを実装する必要があります。
このコードでは、すべてのパラメーターと、Zabbixによって追加されたすべての追加のJavaScriptオブジェクトにアクセスできます。
参照: JavaScript Guide
Timeout JavaScriptの実行タイムアウトです(1~600秒。超過するとエラーが返されます)。
スクリプトによっては、タイムアウトが発生するまでにさらに時間がかかる場合があることに注意してください。
Timeoutパラメーターの詳細については、一般的なアイテム属性を参照してください。

シンプルなデータ収集

https://www.example.com/release\_notes の内容を収集するには、次のようにします。

  • タイプ「Script」のアイテムを作成します。
  • Script フィールドに次を入力します。
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
パラメータを使用したデータ収集

特定のページの内容を収集し、パラメータを活用します。

  • タイプ「Script」のアイテムを作成し、2つのパラメータを設定します。
    • url : {$DOMAIN} (ユーザーマクロ {$DOMAIN} を定義する必要があります。定義場所はホストレベルが推奨されます)
    • subpage : /release_notes

  • Script フィールドに次を入力します。
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
複数のHTTPリクエスト

https://www.example.comhttps://www.example.com/release\_notes の両方の内容を収集します。

  • タイプ「スクリプト」のアイテムを作成します。
  • スクリプト フィールドに、次を入力します。
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
ロギング

Zabbix server ログに "Log test" エントリを追加し、アイテム値 "1" を返信します。

  • タイプ "Script" の item を作成します。
  • Script フィールドに、以下のコードを入力します。
Zabbix.log(3, 'Log test');
return 1;