3 保存前処理の例
概要
このセクションでは、保存前処理のステップを使用していくつかの実用的なタスクを実行する例を紹介します。
VMwareイベントログレコードのフィルタリング
この例では、正規表現に一致前処理ステップを使用して、VMwareイベントログから不要なイベントをフィルタリングします。
1. 稼働中のVMware Hypervisorホストで、vmware.eventlogアイテムが存在し、正常に動作していることを確認します。
イベントログアイテムは、ホスト作成時にVMwareテンプレートがリンクされている場合、すでにハイパーバイザー上に存在している可能性があることに注意してください。
2. VMware Hypervisorホストで、ログタイプの依存アイテムを作成し、イベントログアイテムをそのマスターアイテムとして設定します。
3. 依存アイテムの前処理タブで、追加をクリックして前処理ステップを作成し、ドロップダウンから正規表現に一致を選択します。次に、以下のいずれかのパターンを指定します。
- すべてのログイベントをフィルタリングする場合:
.* logged in .*
- "User" の後にあるユーザー名を含む行をフィルタリングする場合:
\bUser\s+\K\S+
正規表現に一致しない場合、依存アイテムは対応するエラーメッセージとともに未サポートになります。
これを回避するには、失敗時のカスタム処理チェックボックスをオンにし、値を破棄する、またはカスタム値を設定するなどのオプションを選択してください。
破棄された値はデータベースに保存されないため、トリガーは評価されず、トレンドデータも生成されないことに注意してください。
または、正規表現前処理ステップを使用して、一致するグループを抽出し、出力を制御することもできます。
- "logged in" を含むログイベント全体を抽出して出力するには、次のパラメータを指定します:
Pattern: .*logged in.*
Output: \0
- "User" の後に続くユーザー名を抽出して出力するには、次のように指定します:
Pattern: User (.*?)(?=\ )
Output: \1
取得した値の型の確認
この例では、取得したアイテムの値の型が数値かどうかを確認するために、前処理ステップの Custom multiplier を使用します。
アイテムの Preprocessing タブで、前処理ステップ Custom multiplier を選択し、次のパラメータを指定します(取得した値に 1 を掛けます)。
1
前処理に失敗した場合(例: 入力が数値ではない場合)、アイテムは対応するエラーメッセージとともに未サポートになります。
これを回避するには、Custom on fail チェックボックスをオンにし、値を破棄する、またはカスタム値を設定するなどのオプションを選択してください。
discarded 値はデータベースに保存されないため、トリガーは評価されず、トレンドデータも生成されないことに注意してください。
未サポート値のチェック
この例では、アイテムの値を取得できなかったかどうかを確認するために、前処理ステップの未サポート値のチェックを使用します。
Zabbix サーバー/プロキシ の poller プロセスがアイテムの値を収集しようとすると、次のいずれかになります。
- 有効な結果を返す。
- 最初は有効に見える結果を返すが、後で未サポートになる可能性がある(例: 前処理後の値の型の不一致による)。
- 値の収集中にエラーを返し、その結果アイテムが未サポートになる。一般的な原因は次のとおりです。
- 不明なアイテムキー(Zabbix エージェント、Simple check、または Zabbix internal アイテム)
- 不明な OID(SNMP エージェント)、不明なセンサー(IPMI エージェント)、または JMX メトリクスがない(JMX エージェント)
- トラップファイルを読み取れない(SNMP trap)
- スクリプトが見つからない(External check)
- そのような URL がない(HTTP エージェント、Browser)
- ログイン失敗(SSH エージェント、TELNET エージェント)
- 数式の構文が無効(Calculated)、JavaScript の構文エラー(Script)、または無効な SQL(Database monitor)
アイテム値の収集エラーを検出して処理するには、前処理ステップの未サポート値のチェックを使用できます。 このステップは常に最初に実行され、前処理の開始前に発生したエラーのみを検出することに注意してください。
アイテムの前処理タブで、前処理ステップとして未サポート値のチェックを選択し、次のいずれかのパラメータを指定します。
- 任意のエラーの場合:
Parameter: any error
- "cannot connect" を含むエラーの場合:
Parameter: error matches
Pattern: (?i)cannot connect
その後、失敗時のカスタム処理オプションを使用して、値(この場合はエラー)を破棄するか、カスタム値を設定するか、カスタムエラーメッセージを返します。 破棄された値はデータベースに保存されないため、トリガーは評価されず、トレンドデータも生成されないことに注意してください。