前処理を使用すると、受信したアイテム値をデータベースに保存する前に変換を適用できます。 これらの変換/前処理ステップは、Zabbixサーバーまたはプロキシ(アイテムがプロキシによって監視されている場合)によって実行されます。
この機能は、以下のようなさまざまなユースケースをサポートします。
1つまたは複数の前処理ステップをアイテムに設定できます。 これらのステップは、設定された順序で実行されます。
前処理ステップが失敗した場合、アイテムはサポート対象外になります。 これは、失敗時のカスタムエラー処理(ほとんどの変換で利用可能)によって回避でき、値を破棄したりカスタム値を設定したりできます。
ログアイテムの場合、ログメタデータ(値なし)は常にアイテムのサポート対象外状態をリセットし、再びサポート対象にします。 これは、最初のエラーがエージェントからログ値を受信した後に発生した場合でも発生します。
前処理に渡されるすべての値は、最初は文字列として扱われます。 希望する値の型への変換(アイテム設定で定義)は、前処理パイプラインの最後で実行されます。 ただし、特定の前処理ステップでは、必要に応じて早期に変換がトリガーされる場合があります。 詳細な技術情報については、前処理の詳細を参照してください。
前処理設定が期待どおりに機能することを確認するには、テストできます。
参考: 前処理の例
前処理ステップは、アイテム設定フォームの前処理タブで定義します。

追加をクリックして、サポートされている変換を選択します。
前処理ステップが少なくとも1つ定義されている場合、タブの下部に情報の型フィールドが表示されます。 必要に応じて、前処理タブを離れることなく情報の型を変更することができます。 詳細なパラメータの説明については、アイテムの作成を参照してください。
サポートされているすべての変換は以下にリストされています。 変換名をクリックすると、その詳細が表示されます。
| 名前 | 説明 | タイプ |
|---|---|---|
| 正規表現 | 値を正規表現にマッチさせ、必要な出力に置き換えます。 | テキスト |
| 置換 | 検索文字列を見つけて、別の文字列(または何もない)に置き換えます。 | |
| トリム | 値の先頭と末尾から指定した文字を削除します。 | |
| 右トリム | 値の末尾から指定した文字を削除します。 | |
| 左トリム | 値の先頭から指定した文字を削除します。 | |
| XML XPath | XPath機能を使用してXMLデータから値またはフラグメントを抽出します。 | 構造化データ |
| JSON Path | JSONPath機能を使用してJSONデータから値またはフラグメントを抽出します。 | |
| CSVからJSON | CSVファイルデータをJSON形式に変換します。 | |
| XMLからJSON | XML形式のデータをJSONに変換します。 | |
| SNMP walk値 | 指定したOID/MIB名で値を抽出し、フォーマットオプションを適用します。 | SNMP |
| SNMP walkからJSON | SNMP値をJSONに変換します。 | |
| SNMP get値 | SNMP get値にフォーマットオプションを適用します。 | |
| カスタム乗数 | 値に指定した整数または浮動小数点値を掛けます。 | 算術 |
| 単純変化量 | 現在値と前回値の差を計算します。 | 変化量 |
| 秒間変化量 | 現在値と前回値の差分の1秒あたりの変化速度を計算します。 | |
| ブール値から10進数 | 値をブール形式から10進数に変換します。 | 数値システム |
| 8進数から10進数 | 値を8進数形式から10進数に変換します。 | |
| 16進数から10進数 | 値を16進数形式から10進数に変換します。 | |
| JavaScript | JavaScriptコードを入力します。 | カスタムスクリプト |
| 範囲内 | 値が収まるべき範囲を定義します。 | バリデーション |
| 正規表現に一致 | 値が一致しなければならない正規表現を指定します。 | |
| 正規表現に一致しない | 値が一致してはならない正規表現を指定します。 | |
| JSONでエラーをチェック | JSONPathにあるアプリケーションレベルのエラーメッセージをチェックします。 | |
| XMLでエラーをチェック | XPathにあるアプリケーションレベルのエラーメッセージをチェックします。 | |
| 正規表現でエラーをチェック | 正規表現を使用してアプリケーションレベルのエラーメッセージをチェックします。 | |
| サポートされていない値をチェック | アイテム値が取得できなかったかどうかをチェックします。 | |
| 変更なしを破棄 | 値が変更されていない場合は破棄します。 | スロットリング |
| ハートビート付き変更なしを破棄 | 定義された期間内に値が変更されていない場合は破棄します。 | |
| Prometheusパターン | 以下のクエリを使用してPrometheusメトリクスから必要なデータを抽出します。 | Prometheus |
| PrometheusからJSON | 必要なPrometheusメトリクスをJSONに変換します。 |
変化量およびスロットリングの前処理ステップでは、Zabbixは新しい値を計算/比較するために最後の値を記憶しておく必要があることに注意してください。 これらの前回値は前処理マネージャによって管理されます。 Zabbixサーバーまたはプロキシが再起動された場合や、前処理ステップに変更があった場合、対応するアイテムの最後の値がリセットされ、以下のようになります。
値を正規表現に一致させ、必要な出力に置き換えます。
パラメータ:
コメント:
検索文字列を見つけて、別の文字列(または何もない)に置き換えます。
パラメータ:
コメント:
値の先頭と末尾から指定した文字を削除します。
値の末尾から指定した文字を削除します。
値の先頭から指定した文字を削除します。
XPath機能を使用して、XMLデータから値またはフラグメントを抽出します。
コメント:
例:
number(/document/item/value) #<document><item><value>10</value></item></document> から '10' を抽出します
number(/document/item/@attribute) #<document><item attribute="10"></item></document> から '10' を抽出します
/document/item #<document><item><value>10</value></item></document> から '<item><value>10</value></item>' を抽出しますJSONPath 機能を使用して、JSONデータから値またはフラグメントを抽出します。
失敗時にカスタム チェックボックスをオンにすると、カスタムエラー処理オプションを指定できます。値を破棄するか、指定した値を設定するか、指定したエラーメッセージを設定するかを選択できます。 前処理ステップが失敗した場合、値を破棄するか指定した値を設定するオプションを選択した場合、アイテムは未サポートにはなりません。
CSVファイルデータをJSON形式に変換します。
詳細については、CSV to JSONの事前処理を参照してください。
XML形式のデータをJSONに変換します。
詳細については、シリアライズルールを参照してください。
失敗時にカスタム チェックボックスをマークすると、値を破棄する、指定した値を設定する、または指定したエラーメッセージを設定するなど、カスタムのエラー処理オプションを指定できます。 前処理ステップが失敗した場合でも、値を破棄するか指定した値を設定するオプションを選択した場合は、アイテムが未サポートにはなりません。
指定されたOID/MIB名で値を抽出し、フォーマットオプションを適用します:
' 'が':'に置き換えられます)を返します;失敗時にカスタム チェックボックスをマークすると、値を破棄する、指定した値を設定する、または指定したエラーメッセージを設定するなど、カスタムのエラー処理オプションを指定できます。 前処理ステップが失敗した場合でも、値を破棄するか指定した値を設定するオプションを選択した場合、アイテムは未サポートにはなりません。
SNMP値をJSONに変換します。
JSON内のフィールド名と対応するSNMP OIDパスを指定します。 フィールド値は、指定されたSNMP OIDパスの値で埋められます。
コメント:
SNMP get値に書式設定オプションを適用します:
' 'は':'に置換されます);Custom on fail チェックボックスをオンにすると、値を破棄する、指定した値を設定する、または指定したエラーメッセージを設定するなど、カスタムのエラー処理オプションを指定できます。 前処理ステップが失敗した場合でも、値を破棄するか指定した値を設定するオプションが選択されていれば、アイテムは未サポートにはなりません。
値を指定した整数または浮動小数点値で乗算します。
コメント:
1e+70)、ユーザーマクロおよびLLDマクロ、マクロを含む文字列(例:{#MACRO}e+10、{$MACRO1}e+{$MACRO2})。 マクロは整数または浮動小数点数に解決される必要があります。現在の値と前回の値の差分を計算します。
コメント:
値の変化量(現在値と前回値の差分)の秒あたりの速度を計算します。
コメント:
値をブール形式から10進数に変換します。
コメント:
値を8進数形式から10進数に変換します。
失敗時にカスタム チェックボックスをマークすると、カスタムエラー処理オプションを指定できます。値を破棄するか、指定した値を設定するか、指定したエラーメッセージを設定するかを選択できます。 前処理ステップが失敗した場合、値を破棄するか指定した値を設定するオプションを選択した場合、アイテムはサポート対象外にはなりません。
値を16進数形式から10進数に変換します。
失敗時にカスタム チェックボックスをオンにすると、カスタムエラー処理オプションを指定できます。値を破棄するか、指定した値を設定するか、指定したエラーメッセージを設定するかを選択できます。 前処理ステップが失敗した場合、値を破棄するか指定した値を設定するオプションが選択されていれば、アイテムは未サポートにはなりません。
パラメータフィールドをクリックするか、その横の鉛筆アイコンをクリックすると開くモーダルエディタにJavaScriptコードを入力します。
前処理のJavaScriptで未宣言の代入を使用しないでください。 ローカル変数を宣言するには var を使用してください。
コメント:
最小値/最大値(両端を含む)を指定して、値が含まれるべき範囲を定義します。
コメント:
値が一致する必要がある正規表現を指定します。
Custom on fail チェックボックスをマークすると、カスタムエラー処理オプションを指定できます。値を破棄するか、指定した値を設定するか、指定したエラーメッセージを設定するかを選択できます。 前処理ステップが失敗した場合、値を破棄するか指定した値を設定するオプションが選択されていれば、アイテムはサポート対象外にはなりません。
値が一致してはいけない正規表現を指定します。
失敗時にカスタム チェックボックスをマークすると、カスタムエラー処理オプション(値の破棄、指定値の設定、指定エラーメッセージの設定)が可能です。 前処理ステップが失敗した場合、値の破棄または指定値の設定オプションが選択されていれば、アイテムは「利用不可」にはなりません。
JSONPathにあるアプリケーションレベルのエラーメッセージをチェックします。 成功し、メッセージが空でない場合は処理を停止します。それ以外の場合は、この前の前処理ステップの値で処理を続行します。
コメント:
XPathにあるアプリケーションレベルのエラーメッセージをチェックします。 成功し、メッセージが空でない場合は処理を停止します。それ以外の場合は、この前の前処理ステップの値で処理を続行します。
コメント:
正規表現を使用してアプリケーションレベルのエラーメッセージをチェックします。 成功し、メッセージが空でない場合は処理を停止します。それ以外の場合は、この前処理ステップの前の値で処理を続行します。
パラメータ:
コメント:
アイテム値が取得できない場合にチェックします。 返されたエラーメッセージを調査して、障害をどのように処理するかを指定します。
パラメータ:
コメント:
値が変更されていない場合は破棄します。
コメント:
定義された期間(秒単位)内に値が変更されていない場合、その値を破棄します。
コメント:
Prometheusメトリクスから必要なデータを抽出するには、次のクエリを使用します。
詳細はPrometheusチェックを参照してください。
必要なPrometheusメトリクスをJSONに変換します。
詳細はPrometheusチェックを参照してください。
ユーザーマクロおよびコンテキスト付きユーザーマクロは、以下でサポートされています。
マクロが値に置き換えられるとき、マクロのコンテキストは無視されます。 マクロ値はそのままコードに挿入され、JavaScriptコードに値を配置する前に追加のエスケープを行うことはできません。 このため、場合によってはJavaScriptエラーが発生する可能性があることにご注意ください。
事前処理のテストを参照してください。