スクリプト item は、ユーザー定義のJavaScriptコードを実行してデータを収集するために使用されます。
HTTP/HTTPSでデータを取得する機能を持つ、ユーザー定義のJavaScriptコードを実行することによって、
データを収集することができます。スクリプトの他に、オプションでパラメータ(名前と値のペア)のリストとタイムアウトを
指定することができます。
この item タイプは、複数のステップや複雑なロジックを必要とするデータ収集シナリオに有用であると思われます。
例えば、スクリプト item は、HTTPコールを行い、最初のステップで受信したデータを何らかの方法で処理し、
変換された値を2番目のHTTPコールに渡すように設定することが可能です。
スクリプトアイテムはZabbix server または proxy ポーラによって処理されます。
item configuration formのTypeフィールドでScriptを選択し、必要事項を入力します。
すべての必須入力項目には、赤いアスタリスクが付けられています。
スクリプトアイテムで特定の情報を必要とするフィールドは次のとおりです。
フィールド | 説明 |
---|---|
Key | Enter a unique key that will be used to identify the item. |
Parameters | Specify the variables to be passed to the script as the attribute and value pairs. Built-in macros {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} and user macros are supported. |
Script | Enter JavaScript code in the block that appears when clicking in the parameter field (or on the view/edit button next to it). This code must provide the logic for returning the metric value. The code has access to all parameters, it may perform HTTP GET, POST, PUT and DELETE requests and has control over HTTP headers and request body. See also: Additional JavaScript objects, JavaScript Guide. |
Timeout | JavaScript execution timeout (1-60s, default 3s); exceeding it will return error. Time suffixes are supported, e.g. 30s, 1m. Depending on the script it might take longer for the timeout to trigger. |
https://www.example.com/release_notes の内容を収集します。
パラメータ値として{HOST.CONN}マクロを使用し、マクロを展開してレスポンスを取得します。
var request = new HttpRequest();
return request.post("https://postman-echo.com/post", JSON.parse(value));
https://www.example.com と https://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" を返信します。