[comment]: # translation:outdated

[comment]: # ({1a3ec895-1a3ec895})
# 1 使用例

[comment]: # ({/1a3ec895-1a3ec895})

[comment]: # ({c85251c8-f4923ce3})
#### 概要

このセクションでは、保存前処理のステップを使用していくつかの実用的なタスクを実行する例を紹介します。

[comment]: # ({/c85251c8-f4923ce3})

[comment]: # ({68755742-6c9dfb09})
#### VMwareイベントログレコードのフィルタリング

この例では、保存前処理ステップの[正規表現に一致](/manual/config/items/preprocessing#configuration)を使用して、VMWareイベントログの不要なイベントをフィルタリングします。

1\.  動作中のVMWare Hypervisorホストで、イベントログアイテム[vmware.eventlog](/manual/config/items/itemtypes/simple_checks/vmware_keys)が存在し、正しく動作していることを確認します。ホストの作成時に[VMWare](/manual/vm_monitoring#ready-to-use-templates)テンプレートがリンクされている場合、イベントログアイテムはハイパーバイザー上に既に存在する可能性があることに注意してください。

2\. VMWare Hypervisorホストで"ログ"タイプの[依存アイテム](/manual/config/items/itemtypes/dependent_items)を作成し、イベントログアイテムをマスターとして設定します。

3\. 依存アイテムの"保存前処理"タブで、保存前処理ステップの"正規表現に一致"を選択し、たとえば、次のパラメーターのいずれかを指定します。

```bash
# すべてのログイベントをフィルターします。
pattern: .* logged in .*

# "User"の後にユーザー名を含む行をフィルターします。
pattern: \bUser\s+\K\S+
```

::: noteimportant
正規表現に一致しない場合、依存アイテムはサポートされなくなり、対応するエラーメッセージが表示されます。
これを回避するには、"失敗時のカスタマイズ"チェックボックスをオンにし、値を破棄するかカスタム値を設定するなどのオプションを選択します。
:::

または、保存前処理ステップの[正規表現](/manual/config/items/preprocessing#configuration)を使用して、一致するグループを抽出し、出力を制御することもできます。例:

```bash
# "logged in"を含むログイベント全体を抽出して出力します。
pattern: .*logged in.*
output: \0

# "User"に続くユーザー名を抽出して出力します。
pattern: User (.*?)(?=\ )
output: \1
```

[comment]: # ({/68755742-6c9dfb09})

[comment]: # ({d9bad620-561b422b})
#### 取得した値の型チェック

この例では、保存前処理ステップの[カスタム乗数](/manual/config/items/preprocessing#configuration)を使用して、取得したアイテムの値の型が数値かどうかを確認します。

アイテムの*保存前処理*タブで保存前処理ステップの"カスタム乗数"を選択し、次のパラメーターを設定します。

```bash
# 取得した値を1倍します。
number: 1
```

::: noteimportant
保存前処理が失敗した場合(入力が数値でない場合など)、アイテムはサポートされなくなり、対応するエラーメッセージが表示されます。
これを回避するには、"失敗時のカスタマイズ"チェックボックスをオンにし、値を破棄するかカスタム値を設定するなどのオプションを選択します。
:::

[comment]: # ({/d9bad620-561b422b})

[comment]: # ({6c4d73ae-b8a4a171})
#### サポートされていない値のチェック

この例では、[サポートされていない値のチェック](/manual/config/items/preprocessing#configuration)前処理ステップを使用して、アイテム値が取得できなかったかどうかを確認します。

Zabbixサーバー/プロキシポーラープロセスがアイテム値の収集を試みる際に、次のような結果が返される可能性があります。

- 有効な結果を返す。
- 最初は有効に見えても、後でサポート対象外になる可能性がある結果を返す（例：前処理後の値の型の不一致により）
  - 値の収集エラーを返し、アイテムがサポート対象外になる。一般的な原因は次のとおりです。
- 不明なアイテムキー（Zabbixエージェント、シンプルチェック、またはZabbix内部アイテム）
  - 不明なOID（SNMPエージェント）、不明なセンサー（IPMIエージェント）、またはJMXメトリックなし（JMXエージェント）
  - トラップファイルを読み取れない（SNMPトラップ）
  - スクリプトが見つからない（外部チェック）
  - そのようなURLがない（HTTPエージェント）
  - ログインに失敗した（SSHエージェント、TELNETエージェント）
  - 無効な数式構文（計算式）、JavaScript構文エラー（スクリプト）、または無効なSQL（データベースモニター）

アイテム値の収集エラーを検出して処理するには、"サポートされていない値をチェック"前処理ステップを使用できます。

このステップは常に最初に実行され、前処理開始前に発生したエラーのみを検出することに注意してください。

アイテムの*前処理*タブで、"サポートされていない値をチェック"前処理ステップを選択します。

次に、"失敗時にカスタム"オプションを使用して、値（この場合はエラー）を破棄するか、カスタム値を設定するか、カスタムエラーメッセージを返します。
[破棄された](/manual/config/items/preprocessing#discardunchanged)値はデータベースに保存されないため、トリガーは評価されず、傾向データも生成されないことに注意してください。

[comment]: # ({/6c4d73ae-b8a4a171})
