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