3 保存前処理の例
概要
このセクションでは、保存前処理のステップを使用していくつかの実用的なタスクを実行する例を紹介します。
VMwareイベントログレコードのフィルタリング
この例では、保存前処理ステップの正規表現に一致を使用して、VMWareイベントログの不要なイベントをフィルタリングします。
1. 動作中のVMWare Hypervisorホストで、イベントログアイテムvmware.eventlogが存在し、正しく動作していることを確認します。ホストの作成時にVMWareテンプレートがリンクされている場合、イベントログアイテムはハイパーバイザー上に既に存在する可能性があることに注意してください。
2. VMWare Hypervisorホストで"ログ"タイプの依存アイテムを作成し、イベントログアイテムをマスターとして設定します。
3. 依存アイテムの"保存前処理"タブで、保存前処理ステップの"正規表現に一致"を選択し、たとえば、次のパラメーターのいずれかを指定します。
# すべてのログイベントをフィルターします。
pattern: .* logged in .*
# "User"の後にユーザー名を含む行をフィルターします。
pattern: \bUser\s+\K\S+
正規表現に一致しない場合、依存アイテムはサポートされなくなり、対応するエラーメッセージが表示されます。 これを回避するには、"失敗時のカスタマイズ"チェックボックスをオンにし、値を破棄するかカスタム値を設定するなどのオプションを選択します。
または、保存前処理ステップの[正規表現]((/manual/config/items/preprocessing#regexp)を使用して、一致するグループを抽出し、出力を制御することもできます。例:
# "logged in"を含むログイベント全体を抽出して出力します。
pattern: .*logged in.*
output: \0
# "User"に続くユーザー名を抽出して出力します。
pattern: User (.*?)(?=\ )
output: \1
取得した値の型チェック
この例では、保存前処理ステップのカスタム乗数を使用して、取得したアイテムの値の型が数値かどうかを確認します。
アイテムの保存前処理タブで保存前処理ステップの"カスタム乗数"を選択し、次のパラメーターを設定します。
# 取得した値を1倍します。
number: 1
保存前処理が失敗した場合(入力が数値でない場合など)、アイテムはサポートされなくなり、対応するエラーメッセージが表示されます。 これを回避するには、"失敗時のカスタマイズ"チェックボックスをオンにし、値を破棄するかカスタム値を設定するなどのオプションを選択します。
サポートされていない値のチェック
この例では、サポートされていない値のチェック前処理ステップを使用して、アイテム値が取得できなかったかどうかを確認します。
Zabbixサーバー/プロキシポーラープロセスがアイテム値の収集を試みる際に、次のような結果が返される可能性があります。
- 有効な結果を返す。
- 最初は有効に見えても、後でサポート対象外になる可能性がある結果を返す(例:前処理後の値の型の不一致により)
- 値の収集エラーを返し、アイテムがサポート対象外になる。一般的な原因は次のとおりです。
- 不明なアイテムキー(Zabbixエージェント、シンプルチェック、またはZabbix内部アイテム)
- 不明なOID(SNMPエージェント)、不明なセンサー(IPMIエージェント)、またはJMXメトリックなし(JMXエージェント)
- トラップファイルを読み取れない(SNMPトラップ)
- スクリプトが見つからない(外部チェック)
- そのようなURLがない(HTTPエージェント、ブラウザ)
- ログインに失敗した(SSHエージェント、TELNETエージェント)
- 無効な数式構文(計算)、JavaScript構文エラー(スクリプト)、または無効なSQL(データベースモニター)
アイテム値の収集エラーを検出して処理するには、サポートされていない値をチェック 前処理ステップを使用できます。
このステップは常に最初に実行され、前処理開始前に発生したエラーのみを検出することに注意してください。
アイテムの 前処理 タブで、 サポートされていない値をチェック 前処理ステップを選択し、以下のいずれかのパラメータを指定します。
- すべてのエラーの場合:
Parameter: any error
- "接続できません"を含むエラーの場合:
Parameter: error matches
Pattern: (?i)cannot connect
次に、失敗時にカスタムオプションを使用して、値(この場合はエラー)を破棄するか、カスタム値を設定するか、カスタムエラーメッセージを返します。 破棄 された値はデータベースに保存されないため、トリガーは評価されず、トレンドデータも生成されませんのでご注意ください。