ソースタイプ構造の絞り込み
ソースタイプ構造内で抽出されたプロパティをカスタマイズして、ヘルスログアナリティクス での内部ログメッセージの読み取り方法と例外のディスカバリー方法を微調整します。
始める前に
必要なロール:evt_mgmt_admin
手順
- 移動先 すべて > ヘルスログアナリティクス > データ入力 > ソースタイプ構造.
-
レコードを開きます。
注:
- ヘルスログアナリティクス [ 自動抽出 ] が選択されている場合 (デフォルト)、トランスポートヘッダーを内部ログメッセージから自動的に分離します。
- ヘルスログアナリティクス は、[ ソースタイプ構造 ] フォームが初めて表示されたときにログサンプルを自動的にフェッチします。後続のセッションで、[サンプルをリフレッシュ (Refresh Samples)] を選択して最新のサンプルをフェッチします。
- オプション:
既存の JavaScript 関数がログ行にどのように作用するかに注意してください。
- サンプルメッセージを [手動サンプルのテスト (Test manual sample)] フィールドに追加します。
- [移動 (Go)] を選択します。
- [キー/値マッピング (Key/Value Mapping)] タブで、JavaScript 関数がログ行にどのように作用するかに注意してください。
-
[生の入力サンプル (Raw input sample)] フィールドで、ログメッセージを選択します。
JavaScript 関数をテストする際、ヘルスログアナリティクス はこのサンプルメッセージを使用して、ログ行に対して自動抽出と JavaScript 関数の両方の影響を受けた結果を表示します。
次のフィールドは読み取り専用です。フィールド 説明 期間 (ミリ秒) すべてのサンプルの処理時間 (ミリ秒)。 削除済み すべてのサンプルで削除されたログの総数。 エラー すべてのサンプルで発生したエラーの総数。 タイムスタンプ抽出エラー (Timestamp extraction failures) すべてのサンプルで発生したタイムスタンプ抽出エラーの数。 重大度抽出エラー すべてのサンプルで発生した重大度抽出エラーの総数。 メッセージ抽出エラー すべてのサンプルで発生したメッセージ抽出エラーの総数。 冗長なプロパティ (Lengthy properties) すべてのサンプルにおける冗長なプロパティの総数。 冗長なプロパティとは、256 文字を超えるプロパティのことです。注:ヘルスログアナリティクス はこのようなプロパティを抽出しないため、Elasticsearchではキーワードとしてインデックス付けされません。 -
自動的に抽出されたプロパティをカスタマイズする JavaScript 関数か、ソースタイプ構造にプロパティを追加する JavaScript 関数を定義します。
-
JavaScript コンソールで、用意されているデフォルトの JavaScript 関数を変更するか、既存のカスタム JavaScript 関数を変更する、あるいは新しい関数を定義します。
注:ヘルスログアナリティクス には、デフォルトの JavaScript 関数以外にも、ソースタイプ構造を絞り込むための JS 関数テンプレートがいくつかあります。このテンプレートは、カスタムスクリプトコードの開始点として機能します。 この機能は、ヘルスログアナリティクスアプリケーション (バージョン 20.0.11 - July 2021、ServiceNow Store から入手可能) でサポートされています。
ソースタイプ構造を絞り込むための JavaScript 関数は、次のオブジェクトを使用します。JS 関数テンプレート 説明 Extract Key_Values Using Regex 正規表現を使用してログを一連の「キー:値」ペアとして解析し、特定の正規表現パターンを識別するためのスクリプト。ソースタイプに送信されるログデータに応じて、内部メッセージまたはログ行全体のいずれかを解析します。ソースタイプ構造にロードされたサンプルで、データがどのように表示されるかを確認できます。
このプロセスは反復的です。すべてのキー:値ペアが見つかるまで繰り返されます。
Extract Key_Values Using split-regex 正規表現を使用してログを一連の「キー:値」ペアとして解析し、特定の正規表現パターンを識別するためのスクリプト。このプロセスでは、最初に LIST フォームの値をキャプチャし、次に Java 分割関数を使用して「キー:値」ペアを作成します。
生の入力に含まれるデータの形式によっては、
正規表現による「キー:値」ペアの抽出よりもこちらの関数の方が効率が良いことがあります。生の入力は、ヘッダー検出によって渡される内部メッセージ、または完全な生のログのいずれかです。ヘッダー検出がオフになっている場合、またはその特定のログでヘッダー検出が機能しない場合は、完全な生のログが使用されます。JSON Parse - flatten 生の入力から別のテキスト文字列の一部である JSON 情報を抽出するためのスクリプト。たとえば、情報はより長い内部メッセージの一部として記述された JSON 要求であるかもしれません。 内部 JSON セクションは分割が困難です。このような場合、「キー:値」ペアを「フラット化」または解析するためにこのスクリプトを使用できます。
Extract a new field from raw input 新しいフィールドのパターンを識別するためのキャプチャグループを含む正規表現を使用して、生の入力から新しいフィールドを抽出するスクリプト。 Parse XML format XML 形式を識別するために、正規表現を使用して XML 形式から「キー:値」ペアを抽出するためのスクリプト。 このプロセスは反復的です。すべての「キー:値」ペアが見つかるまで、これが繰り返されます。
Set numerical severity level as textual values 重大度の数値を、対応する重大度のテキスト値に変換するためのスクリプト。 注:システムがログの重大度レベルを正しく識別できるようにするには、重大度をテキスト形式で指定する必要があります。重大度が数値のまま残らないようにしてください。Trim function 値から文字列を囲む二重引用符を削除するためのスクリプト。 この関数を適用すると、「キー:値」ペアの出力値を囲むその他の文字を削除できます。
表 : 1. シグネチャ:function construct (sample, output) オブジェクト 説明 sample サンプルメッセージから抽出された内部メッセージ。 出力 キーと値のペアマップを含むオブジェクト。 - [テスト] を選択して JavaScript 関数をテストします。
-
関連リストで JavaScript 関数の結果を表示し、必要に応じて変更します。
- [キー/値マッピング (Key/Value Mapping)] タブには、システムの自動抽出と組み合わされた JavaScript 関数が生の入力サンプルに及ぼす影響が示されます。
必要に応じてキーを変更します。
- [分類] フィールドで、プロパティの分類をリセットできます。使用可能なタイプは、次のとおりです。
表 : 2. 分類 タイプ 説明 例 メートル この分類のプロパティは、各ログメッセージでのプロパティの出現回数における例外を検出します。自動根本原因分析の一部として、この値の数量の変化が示されます。 注:メーターとして分類されたプロパティは、リソースを消費します。ステータスコード、応答コード、アクション、またはパターン ゲージ この分類のプロパティは、継続的に報告される数値の例外を検出します。 注:分類が [ゲージ] のプロパティはリソースを消費します。CPU、メモリ、または応答時間 タイムレスゲージ この分類のプロパティは、継続的に報告されない数値の例外を検出します。この値の例外については、いつ発生したかに関わらず通知されます。 注:この機能は、ヘルスログアナリティクスアプリケーション (バージョン 20.0.11 - July 2021、ServiceNow Store から入手可能) でサポートされています。自動根本原因 (ARC のみ) (Automatic Root Cause (ARC Only)) この分類のプロパティは、別の例外の自動根本原因分析の一部としてプロパティを報告します。プロパティ自体を例外として報告することはありません。 ユーザー名、IP アドレス、アプリケーションコンポーネント、またはデータセンター 無効 この分類のプロパティは、自動根本原因分析で計算または表示されません。 注:無効として分類されたプロパティは、リソースを節約します。 - [アサインするラベル (Labels to assign)] フィールドで、ラベルにプロパティを設定できます。
表 : 3. アサインするラベル ラベル 説明 タイムスタンプ イベントのタイムスタンプを保持するプロパティ。 注:ヘッダープロパティ検出が有効で、ソースタイプにタイムスタンプがない場合は、トランスポートヘッダーからタイムスタンプが抽出されます。ヘッダー検出がオフになっている場合、またはヘッダー検出がデータ入力の関連ログ行に対して機能しない場合は、すべてのログ行に適切なタイムスタンプが必要です。重大度 ログの重大度レベルを表すプロパティ。 メッセージ ログメッセージ。システムは、このプロパティを使用してデータ内のテキストパターンを識別します。 ホスト イベントの送信元のホストを表すプロパティ。 注:ヘッダープロパティ検出が有効で、ソースタイプにホストがない場合は、トランスポートヘッダーからホストが抽出されます。ヘッダー検出がオフになっている場合、またはヘッダー検出がデータ入力の関連ログ行に対して機能しない場合は、すべてのログ行にホストが必要です。外部 ID このイベントタイプの一意の識別子として機能するプロパティ。たとえば、Windows イベントログのイベント ID です。 - [キーの名前を変更 (Rename key)] フィールドで、キーの名前を変更できます。
- [分類] フィールドで、プロパティの分類をリセットできます。使用可能なタイプは、次のとおりです。
- [結果のキーと値 (Outcome Key-Value)] タブには、JavaScript 関数でデータがどのように処理されるかが表示されます。
- [データ入力マッピング (Data Input Mappings)] タブには、現在のソースタイプのデータ入力マッピングが表示されます。
- 残りのタブには、エラー、メッセージ抽出エラー、重大度抽出エラー、タイムスタンプ抽出エラー、および冗長なプロパティが表示されます。
注:新しい JavaScript 関数が期待どおりに動作しない場合は、[ JS 関数を元に戻 す] 関連リンクを選択することで、公開されている最新の関数に戻すことができます。 - [キー/値マッピング (Key/Value Mapping)] タブには、システムの自動抽出と組み合わされた JavaScript 関数が生の入力サンプルに及ぼす影響が示されます。
- オプション: 必要な調整を行い、JavaScript 関数をもう一度テストします。
-
JavaScript コンソールで、用意されているデフォルトの JavaScript 関数を変更するか、既存のカスタム JavaScript 関数を変更する、あるいは新しい関数を定義します。
-
[テンプレートを保存] オプションを選択して、JavaScript 関数を保存します。
JavaScript 関数を新しいテンプレートとして保存するか、現在選択されているテンプレートを上書きすることができます。
- JavaScript 関数を新しいテンプレートとして保存するには、[テンプレート名] フィールドに新しい名前を入力します。
- [JS 関数テンプレート (JS function templates)] フィールドで現在選択されているテンプレートを上書きするには、[テンプレート名] フィールドを空のままにします。
- [公開] を選択して、JavaScript 関数をデータベースに保存します。
タスクの結果
新しいスクリプトが、選択可能な JS 関数テンプレートのリストに自動的に追加されます。 この機能は、ヘルスログアナリティクスアプリケーション (バージョン 20.0.11 - July 2021、ServiceNow Store から入手可能) でサポートされています。
次のタスク
残りのデータ入力セットアップタスクを続行します。すべてのログソースが存在していて、アクティブであることを確認し、必要に応じてタイムスタンプ形式を追加します。