ソースの作成

ソースは、エンティティのログの場所と、ログ・エントリをエンリッチする方法を定義します。OCI管理エージェントを介した継続的なログ収集を開始するには、ソースを1つ以上のエンティティに関連付ける必要があります。

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

    管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

    「ソース」ページが開きます。「ソースの作成」をクリックします。

  2. 「名前」フィールドに、ソースの名前を入力します。

    オプションで、説明を追加します。

  3. 「ソース・タイプ」リストから、ログ・ソースのタイプを選択します。
    Oracle Log Analyticsでは、カスタム・ソースに対して3つのログ・ソース・タイプがサポートされます:
    • ファイル: このタイプは、データベース、アプリケーション、インフラストラクチャ・ログなどのほとんどのタイプのログの収集に使用します。

    • Oracle Diagnostic Logging (ODL): このタイプは、Oracle Diagnostics Logsフォーマットに準拠しているログに使用します。これらは通常、Oracle Fusion MiddlewareおよびOracle Applicationsの診断ログに使用されます。

    • Syslogリスナー: これは通常、侵入検知アプライアンス、ファイアウォール、または管理エージェントをインストールできないその他のデバイスなどのネットワーク・デバイスに使用されます。

    • Microsoft Windows: このタイプは、Windowsイベント・メッセージの収集に使用します。Oracle Logging Analyticsでは、すべての履歴Windowsイベント・ログ・エントリを収集できます。Windowsイベント・チャネルとカスタム・イベント・チャネルがサポートされます。

      ノート

      このソース・タイプには、「ログ・パーサー」フィールドは必要ありません。

    • データベース: このソース・タイプは、オンプレミス・データベース内の表に格納されているログの収集に使用します。このソース・タイプでは、SQL問合せが定期的に実行され、表データがログ・エントリとして収集されます。

    • REST API: このソース・タイプを使用して、ログ・メッセージで応答するエンドポイントURLからの連続REST APIベースのログ収集を設定します。このソース・タイプでは、ログを取得するために指定したエンドポイントURLに対してGETまたはPOST APIコールが実行されます。

  4. 「エンティティ・タイプ」フィールドをクリックして、このログ・ソースに対するエンティティのタイプを選択します。後で、このソースをエンティティに関連付けて管理エージェントを介したログ収集を有効にする場合、このタイプのエンティティのみがアソシエーションに使用されます。1つのソースは、1つ以上のエンティティ・タイプを持つことができます。
    • 「ファイル」「REST API」または「Oracle Diagnostic Log (ODL)」を選択した場合、モニターする内容と最も一致しているログ・ソースのエンティティ・タイプを選択することをお薦めします。ログはインスタンス・レベルで生成されるため、「データベース・クラスタ」などのコンポジット・エンティティ・タイプを選択することは避け、かわりにエンティティ・タイプとして「データベース・インスタンス」を選択してください。

    • ソース・タイプ「Syslogリスナー」を選択した場合は、Hostのいずれかのバリアントを選択します。

    • ソース・タイプとして「データベース」を選択した場合、エンティティ・タイプは適格なデータベース・タイプに制限されます。

    • 「Windowsイベント・システム」ソース・タイプを選択した場合、デフォルトのエンティティ・タイプとしてHost (Windows)が自動的に選択され、変更できません。

  5. 「パーサー」フィールドをクリックして、「データベース監査ログ・エントリ・フォーマット」などの関連するパーサー名を選択します。
    ログ・ファイル用の複数のファイル・パーサーを選択できます。これは、ログ・ファイルに様々な構文のエントリがあり、1つのパーサーで解析できない場合に特に役立ちます。

    パーサーを追加する順序は重要です。Oracle Logging Analyticsは、ログ・ファイルを読み取ると、最初のパーサーを試行し、最初のパーサーが機能しない場合は2番目のパーサーに移動します。これは、機能するパーサーが見つかるまで続きます。このソースにとって最も一般的なパーサーを最初に選択します。

    ODLソース・タイプでは、使用可能なパーサーは「Oracle Diagnostic Loggingフォーマット」のみです。

    Syslogソース・タイプでは、通常、Syslog標準フォーマットやSyslog RFC5424フォーマットなどのバリアント・パーサーの1つが使用されます。特定のネットワーク・デバイスには、Oracle定義のsyslogパーサーからも選択できます。

    「ファイル・パーサー」フィールドは、「Windowsイベント・システム」および「REST API」ソース・タイプには使用できません。「Windowsイベント・システム」ソース・タイプでは、Oracle Logging Analyticsは解析済のログ・データを取得します。

    ログ・エントリの時間情報のみを解析するには、自動時間パーサーを選択できます。自動時間パーサーの使用を参照してください。

  6. ソース・タイプに応じて、次の情報を入力します:
    • Syslogソース・タイプ: リスナー・ポートを指定します

    • Windowsソース・タイプ: イベント・サービス・チャネル名を指定します。チャネル名は、エージェントがアソシエーションを構成してログを取得できるように、Windowsイベントの名前と一致する必要があります。

    • データベース・ソース・タイプ: SQL文を指定して「構成」をクリックします。メニューで使用可能なフィールドにSQL表の列をマップします。マッピング用の新しいフィールドを作成するには、「追加」アイコンアイコンをクリックします。

    • REST APIソース・タイプ: 「ログ・エンドポイントの追加」をクリックして単一のログ・エンドポイントURLを指定するか、「複数のログのログ・リスト・エンドポイントの追加」をクリックして、UIの時間構成に基づいてログを定期的に収集できる複数のログのログ・リスト・エンドポイントURLを指定します。REST APIログ収集の設定の詳細は、REST APIログ収集の設定を参照してください。
    • ファイルおよびODLソース・タイプ: 「含める」および「除外する」タブを使用します

      • 「含まれているパターン」タブで、「追加」をクリックして、このソースに対するファイル名パターンを指定します。

        ファイル名パターンおよび説明を入力します。

        ファイル名パターンの一部として、{AdrHome}のように中カッコ{}内にパラメータを入力できます。ソースがエンティティに関連付けられている場合、Oracle Logging Analyticsは、インクルード・パターンのこれらのパラメータをエンティティ・プロパティに置き換えます。使用可能なパラメータのリストは、エンティティ・タイプによって定義されます。独自のエンティティ・タイプを作成する場合は、独自のプロパティを定義できます。エンティティを作成すると、そのエンティティの各プロパティに値を指定するように求められます。必要に応じて、エンティティごとに独自のカスタム・プロパティを追加することもできます。これらのどのプロパティでも、この「含まれているパターン」でパラメータとして使用できます。

        たとえば、{AdrHome}プロパティが/u01/oracle/database/に設定されている特定のエンティティの場合、包含パターンの{AdrHome}/admin/logs/*.logは、この特定のエンティティでは/u01/oracle/database/admin/logs/*.logに置き換えられます。同じホスト上の他のすべてのエンティティは、{AdrHome}に異なる値を持つことができ、そのためエンティティごとに完全に異なるログ・ファイルのセットが収集されます。

        ソースをエンティティに関連付けることができるのは、パターンでソースが必要とするパラメータに特定のエンティティの値が含まれる場合のみです。

        パターンのログ収集では警告を構成できます。「警告の送信」ドロップダウン・リストで、警告を発行する必要がある状況を選択します:

        • 問題のある各パターンに対して: 複数の包含パターンを設定した場合、一致しないファイル名パターンごとにログ収集の警告が送信されます。

        • すべてのパターンに問題がある場合にのみ: 複数の包含パターンを設定した場合、すべてのファイル名パターンが一致しない場合にのみログ収集の警告が送信されます。

      • 同じ場所に、ソース定義に含めないファイルがある場合、除外パターンを使用できます。「除外されたパターン」タブで、「追加」をクリックして、このログ・ソースから除外する必要があるログ・ファイル名のパターンを定義します。

        たとえば、audit.audという名前のファイルが、含めるソースとして構成したディレクトリ(/u01/app/oracle/admin/rdbms/diag/trace/)に存在するとします。同じ場所に、audit-1.audという名前の別のファイルがあります。audit-*.audというパターンのすべてのファイルを除外できます。

  7. データ・フィルタを追加します。ソースでのデータ・フィルタの使用を参照してください。
  8. 拡張フィールドを追加します。ソースでの拡張フィールドの使用を参照してください。
  9. フィールド・エンリッチメント・オプションを構成します。フィールド・エンリッチメント・オプションの構成を参照してください。
  10. ラベルを追加します。ソースでのラベルの使用を参照してください。
  11. 「保存」をクリックします。

ソースでのデータ・フィルタの使用

Oracle Logging Analyticsでは、ログ・エントリの機密情報をマスクして非表示にすることや、ログ・データがクラウドにアップロードされる前にログ・エントリ全体を表示することも可能です。

ソースの編集または作成時に「データ・フィルタ」タブを使用して、IPアドレス、ユーザーID、ホスト名およびその他の機密情報を置換文字列でマスクしたり、ログ・エントリから特定のキーワードおよび値を削除したり、ログ・エントリ全体を非表示にしたりできます。

データ・フィルタは、ログ・ソースの作成時または既存のソースの編集時に追加できます。既存のログ・ソースの編集について学習するには、Oracle定義ソースのカスタマイズを参照してください。

オンデマンド・アップロードまたはオブジェクト・ストアからの収集を使用してログ・データがOracle Logging Analyticsに送信される場合、データが索引付けされる前にマスキングが発生します。管理エージェントを使用してログを収集する場合、コンテンツがオンプレミスから離れる前にログがマスクされます。

トピック:

ログ・データのマスク

マスキングとは、既存のテキストのセットを取得し、それを他の静的テキストに置き換えて元のコンテンツを非表示にするプロセスです。

ユーザー名やホスト名などの情報をログ・エントリからマスクする場合:

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

  2. 管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

  3. 編集するソースの名前をクリックします。ソースの詳細ページが開きます。「編集」をクリックして、ソースを編集します。

  4. 「データ・フィルタ」タブをクリックし、「追加」をクリックします。

  5. マスクの「名前」を入力し、「タイプ」として「マスク」を選択し、「検出式」の値とそれに関連する「置換式」の値を入力します。

    検出式の値は、プレーン・テキスト検索または標準の正規表現です。置換式に置き換える値は、引用符( )で囲む必要があります。

    名前 検出式 置換式
    マスク・ユーザー名 User=(\S+)s+ 機密
    マスク・ホスト Host=(\S+)s+ mask_host
    ノート

    置換文字列の構文は、置換対象の文字列の構文と一致する必要があります。たとえば、数値を文字列で置き換えることはできません。123.45.67.89という形式のIPアドレスは、000.000.000.000で置換できますが、000.000では置換できません。構文が一致しない場合、パーサーが中断する可能性があります。

  6. 「保存」をクリックします。

このログ・ソースのマスクされたログ・エントリを表示すると、指定したフィールドの値がOracle Logging Analyticsによってマスクされていることがわかります。

  • User = secret

  • ホスト= mask_host

ログ・データのハッシュ・マスキング

前の項の説明に従って、マスクを使用してログ・データをマスクすると、マスクされた情報は、置換式で指定された静的文字列に置き換えられます。たとえば、ユーザー名が文字列confidentialでマスクされる場合、ユーザー名は常に、ログ・レコードで出現するたびに式confidentialに置き換えられます。ハッシュ・マスクを使用すると、検出された値を一意のハッシュでハッシュ処理できます。たとえば、ログ・レコードに複数のユーザー名が含まれている場合、各ユーザー名は、一意の値にハッシュ処理されます。そのため、user1が出現するたびにテキスト・ハッシュebdkromluceaqieに置き換えられれば、ハッシュを使用して、引き続きこれらのログ・エントリが同じユーザーに該当することを識別できます。ただし、実際のユーザー名は表示されません。

関連するリスク: これはハッシュであるため、マスクされた元のテキストの実際の値を回復する方法はありません。ただし、任意の文字列のハッシュを取得すると、毎回同じハッシュが得られます。ログ・データのハッシュ・マスキング時には、このリスクを考慮してください。たとえば、文字列oracleのmd5ハッシュは、a189c633d9995e11bf8607170ec9a4b8です。文字列oracleのmd5を作成しようとするたびに、常に同じ値になります。このmd5ハッシュを使用して逆に戻し、元の文字列oracleを取得することはできませんが、oracleという値を推測してハッシュ処理すると、そのハッシュがログ・エントリ内のものと一致していることがわかります。

ログ・データにハッシュ・マスク・データ・フィルタを適用するには:

  1. 「ソースの作成」ページに移動します。ステップは、ソースの作成を参照してください。

  2. すでに存在するソースを編集することもできます。「ソースの編集」ページを開くステップは、ソースの編集を参照してください。

  3. 「データ・フィルタ」タブをクリックし、「追加」をクリックします。

  4. マスクの「名前」を入力し、「タイプ」として「ハッシュ・マスク」を選択し、「検出式」の値とそれに関連する「置換式」の値を入力します。

    名前 検出式 置換式
    マスク・ユーザー名 User=(\S+)s+ テキスト・ハッシュ
    マスク・ポート Port=(\d+)s+ 数値ハッシュ
  5. 「保存」をクリックします。

文字列ベースのフィールドでハッシュ・マスクを使用する場合は、テキストまたは数値ハッシュを文字列フィールドとして使用できます。ただし、データ・フィールドが整数、長整数、浮動小数点数などの数値の場合は、数値ハッシュを使用する必要があります。数値ハッシュを使用しないと、置換テキストが原因でこの値に依存する正規表現が数値になるため、中断します。また、値も格納されません。

この置換は、データが解析される前に実行されます。通常、データをマスクする必要がある場合、それが常に数値であるかどうかは明らかではありません。そのため、マスク定義の作成時にハッシュのタイプを決定する必要があります。

前述のハッシュ・マスキングの例の結果では、各ユーザー名は一意のテキスト・ハッシュに置き換えられ、各ポート番号は一意の数値ハッシュに置き換えられます。

ログ・データをフィルタまたは分析する際に、ハッシュ・マスクを使用できます。ハッシュ・マスクによるログのフィルタを参照してください。

ログ・レコードからの特定のキーワードまたは値の削除

Oracle Logging Analyticsでは、ログ・レコード内の特定のキーワードまたは値を検索し、一致したキーワードまたは値がログ・レコードに存在する場合は削除できます。

次のログ・レコードを考えます:

ns5xt_119131: NetScreen device_id=ns5xt_119131  [Root]system-notification-00257(traffic): start_time="2017-02-07 05:00:03" duration=4 policy_id=2 service=smtp proto=6 src zone=Untrust dst zone=mail_servers action=Permit sent=756 rcvd=756 src=192.0.2.1 dst=203.0.113.1 src_port=44796 dst_port=25 src-xlated ip=192.0.2.1 port=44796 dst-xlated ip=203.0.113.1 port=25 session_id=18738

キーワードdevice_idとその値をログ・レコードから非表示にする場合:

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

  2. 管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

  3. 編集するソースの名前をクリックします。ソースの詳細ページが開きます。「編集」をクリックして、ソースを編集します。

  4. 「データ・フィルタ」タブをクリックし、「追加」をクリックします。

  5. フィルタの「名前」を入力し、「タイプ」として「文字列の削除」を選択し、「検出式」の値としてdevice_id=\S*などを入力します

  6. 「保存」をクリックします。

このソースのログ・レコードを表示すると、指定したキーワードまたは値がOracle Logging Analyticsによって削除されたことがわかります。

ノート

パーサーの正規表現がログ・レコード・パターンと一致することを確認してください。一致しない場合、Oracle Logging Analyticsはキーワードの削除後にレコードを正しく解析しない可能性があります。

ノート

ソースの作成時にデータ・フィルタを追加する以外に、既存のソースを編集してデータ・フィルタを追加することもできます。既存のソースの編集について学習するには、Oracle定義ソースのカスタマイズを参照してください。

特定のキーワードに基づくログ・エントリ全体の削除

Oracle Logging Analyticsでは、ログ・レコード内の特定のキーワードまたは値を検索し、そのキーワードが存在する場合はログ・レコードのログ・エントリ全体を削除できます。

次のログ・レコードを考えます:

ns5xt_119131: NetScreen device_id=ns5xt_119131  [Root]system-notification-00257(traffic): start_time="2017-02-07 05:00:03" duration=4 policy_id=2 service=smtp proto=6 src zone=Untrust dst zone=mail_servers action=Permit sent=756 rcvd=756 src=198.51.100.1 dst=203.0.113.254 src_port=44796 dst_port=25 src-xlated ip=198.51.100.1 port=44796 dst-xlated ip=203.0.113.254 port=25 session_id=18738

キーワードdevice_idが存在する場合は、ログ・エントリ全体を削除するとします:

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

  2. 管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

  3. 編集するソースの名前をクリックします。ソースの詳細ページが開きます。「編集」をクリックして、ソースを編集します。

  4. 「データ・フィルタ」タブをクリックし、「追加」をクリックします。

  5. フィルタの「名前」を入力し、「タイプ」として「ログ・エントリの削除」を選択し、「検出式」の値として.*device_id=.*などを入力します

    正規表現がログ・エントリ全体に一致することが重要です。正規表現の前後に.*を使用すると、ログ・エントリ内の他のすべてのテキストと一致するようになります。

  6. 「保存」をクリックします。

このログ・ソースのログ・エントリを表示すると、Oracle Logging Analyticsによって、文字列device_idを含むすべてのログ・エントリが削除されていることがわかります。

ノート

ソースの作成時にデータ・フィルタを追加する以外に、既存のソースを編集してデータ・フィルタを追加することもできます。既存のソースの編集について学習するには、Oracle定義ソースのカスタマイズを参照してください。

ソースでの拡張フィールドの使用

Oracle Logging Analyticsの拡張フィールド機能を使用すると、パーサーが解析したフィールドに加えて、ログ・レコードから追加フィールドを抽出できます。

ソース定義では、ログ・ファイルをログ・エントリに分割し、各ログ・エントリを一連のベース・フィールドに分割できるパーサーが選択されます。これらのベース・フィールドは、すべてのログ・エントリで一貫している必要があります。ベース・パーサーは、ログ・レコードから共通フィールドを抽出します。ただし、ログ・エントリ・コンテンツから追加フィールドを抽出する必要がある場合は、拡張フィールド定義を使用できます。たとえば、ログ・エントリの共通フィールドの末尾にあるすべてのテキストを解析し、Messageというフィールドに格納するように、パーサーを定義できます。

更新されたソースを使用してログを検索すると、拡張フィールドの値が、ベース・パーサーによって抽出されたフィールドとともに表示されます。

ノート

ログ・グループを入力フィールドとして追加するには、名前のかわりに値のOCIDを指定します。

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

    管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

  2. 編集するソースの名前をクリックします。ソースの詳細ページが開きます。「編集」をクリックして、ソースを編集します。
  3. 「拡張フィールド」タブをクリックし、「追加」をクリックします。
  4. 評価対象のログ・エントリが事前定義済の条件と一致する場合にのみフィールド抽出が発生するように、条件を指定できます。拡張フィールドに条件を追加するには、「条件」セクションを展開します。
    • 既存を再利用: 必要に応じて、ログ・ソースに対してすでに定義されている条件を再利用するには、「既存を再利用」ラジオ・ボタンを選択し、「条件」メニューから事前定義された条件を選択します。
    • 新規条件の作成: 新しい条件を定義する場合は、このボタンを有効にします。「条件フィールド」「演算子」および「値」を指定します。

      たとえば、フィールドServiceに特定の値NetworkManagerdhclientまたはdhcpdのいずれかが含まれる場合にのみ、フィールドMessageの値からフィールドSecurity Resource Nameの値を抽出する拡張フィールド定義は、次のようになります:

      • ベース・フィールド: Message
      • サンプルのベース・フィールド・コンテンツ: DHCPDISCOVER from b8:6b:23:b5:c1:bd (HOST1-LAP) via eth0
      • 抽出式: ^DHCPDISCOVER\s+from\s+{Security Resource Name:\S+}\s+.+

      この拡張フィールド定義の条件は、次のように定義する必要があります:

      • 条件フィールド: service
      • 条件演算子: IN
      • 条件値: NetworkManager,dhclient,dhcpd

      前述の例では、フィールドSecurity Resource Nameの抽出値は、b8:6b:23:b5:c1:bdです。

      「条件値」フィールドに複数の値を指定するには、値を入力して、値ごとに[Enter]を押します。

    条件を追加することで、抽出対象の値が含まれない可能性のあるログ・エントリに対する正規表現処理を削減できます。これにより、ログ・エクスプローラでのログ・エントリの使用に関する処理時間と遅延を効果的に削減できます。

  5. フィールドにさらに抽出する値が存在する「ベース・フィールド」を選択します。

    ベース・フィールドに表示されるフィールドは、ベース・パーサーから解析されるフィールドと、「ログ・エンティティ」(ログ・エントリが取得されたファイル名、データベース表、その他の元の場所)や「元のログ・コンテンツ」など、ログ収集によって移入される一部のデフォルト・フィールドです。

  6. 「サンプルのベース・フィールド・コンテンツ」領域に、追加フィールドに抽出するために選択したベース・フィールドの共通例の値を入力します。これは、拡張フィールド定義が正しく機能していることを示すために、テスト・フェーズ中に使用されます。
  7. 「抽出式」フィールドに抽出式を入力して、「有効」チェック・ボックスを選択します。

    抽出式は通常の正規表現構文に従いますが、抽出要素を指定する場合は、中カッコ{および}で示されたマクロを使用する必要があります。中カッコ内には、コロン:で区切られた2つの値があります。中カッコ内の最初の値は、抽出したデータを格納するフィールドです。2番目の値は、ベース・フィールドから取得する値と一致する必要がある正規表現です。

    ノート

    拡張フィールドを使用してフィールドから複数の値を抽出する場合:

    1. 最初に、フィールドに複数の値を持つことができるログ・コンテンツのフィールドを作成します(例: Error IDs)。フィールドの作成を参照してください。

    2. 「拡張フィールド定義の追加」ダイアログ・ボックスの「ベース・フィールド」で、パーサーから抽出され、複数値データを持つベース・フィールド(MessageOriginal Log Contentなど)を選択します。

    3. 抽出するフィールドの複数の値を持つ「ベース・フィールド・コンテンツの例」を入力します。

    4. 「抽出式」で、フィールドから各値を抽出する正規表現を指定します。「追加」をクリックします。


    フィールドの複数値のEFD

  8. 「テスト定義」をクリックして、指定したベース・フィールドのサンプル・コンテンツから目的のフィールドを抽出式で正常に抽出できることを確認します。一致に成功した場合、「ステップ数」が表示されますが、これは抽出式の効率性を示す適切な指標になります。式が非効率であると、抽出はタイムアウトする可能性があり、フィールドは移入されません。
    ノート

    最良のパフォーマンスを得るために、ステップ数は1000未満に維持することをお薦めします。この数が大きくなるほど、ログを処理してログ・エクスプローラで使用できるようになるまでの時間が長くなります。
  9. 「保存」をクリックします。

パーサーを作成するのではなく、ソース定義で「時間のみ自動解析」オプションを使用する場合、拡張フィールド定義の作成に使用できるフィールドは、「元のログ・コンテンツ」フィールドのみです(その他のフィールドはパーサーによって移入されないため)。自動時間パーサーの使用を参照してください。

Oracle Logging Analyticsでは、検索する拡張フィールドを検索できます。作成方法、ベース・フィールドのタイプ、またはフィールドのサンプル・コンテンツに基づいて検索できます。「検索」フィールドにサンプル・コンテンツを入力するか、検索ダイアログ・ボックスの下矢印をクリックします。検索ダイアログ・ボックスの「作成タイプ」で、目的の拡張フィールドがOracle定義であるかユーザー定義であるかを選択します。「ベース・フィールド」で、使用可能なオプションから選択できます。検索に使用できるサンプル・コンテンツまたは抽出フィールド式を指定することもできます。「フィルタの適用」をクリックします。

表8-1サンプル・コンテンツおよび拡張フィールド抽出式の例

説明 ベース・フィールド サンプル・コンテンツ 拡張フィールド抽出式
Fusion Middlewareアクセス・ログ・ファイルのURIフィールドからエンドポイント・ファイルの拡張子を抽出するには

URI

/service/myservice1/endpoint/file1.jpg

{Content Type:\.(jpg|html|png|ico|jsp|htm|jspx)}

これにより、jpgやhtmlなどのファイル接尾辞が抽出され、その値がContent Typeフィールドに格納されます。式にリストされている接尾辞のみが抽出対象です。

ログ・エンティティのファイル・パスからユーザー名を抽出するには

Log Entity

/u01/oracle/john/audit/134fa.xml

/\w+/\w+/{User Name:\w+}/\w+/\w+

Messageフィールドから開始時間を抽出するには

ノート: イベント開始時間は、Timestampデータ型フィールドです。これがnumericデータ型フィールドの場合、開始時間はタイムスタンプではなく、単に数値として格納されます。

Message

Backup transaction finished. Start=1542111920

Start={Event Start Time:\d+}

ソース: /var/log/messages

パーサー名: Linux Syslog Format

Message

authenticated mount request from 10.245.251.222:735 for /scratch (/scratch)

authenticated {Action:\w+} request from {Address:[\d\.]+}:{Port:\d+} for {Directory:\S+}\s(

ソース: /var/log/yum.log

パーサー名: Yum Format

Message

Updated: kernel-headers-2.6.18-371.0.0.0.1.el5.x86_64

{Action:\w+}: {Package:.*}

ソース: Database Alert Log

パーサー名: Database Alert Log Format (Oracle DB 11.1+)

Message

Errors in file /scratch/cs113/db12101/diag/rdbms/pteintg/pteintg/trace/pteintg_smon_3088.trc (incident=4921): ORA-07445: exception encountered: core dump [semtimedop()+10] [SIGSEGV] [ADDR:0x16F9E00000B1C] [PC:0x7FC6DF02421A] [unknown code] []

Errors in file {Trace File:\S+} (incident={Incident:\d+}): {Error ID:ORA-\d+}: exception encountered: core dump [semtimedop()+10] [SIGSEGV] [ADDR:{Address:[\w\d]+] [PC:{Program Counter:[\w\d]+}] [unknown code] []

ソース: FMW WLS Server Log

パーサー名: WLS Server Log Format

Message

Server state changed to STARTING

Server state changed to {Status:\w+}

フィールド・エンリッチメント・オプションの構成

Oracle Logging Analyticsでは、拡張フィールド・データから意味のある情報をさらに抽出して表示できるように、フィールド・エンリッチメント・オプションを構成できます。

フィールド・エンリッチメント・オプションの1つがジオロケーションで、ログ・レコードに存在するIPアドレスまたはロケーション座標を国または国コードに変換します。これは、外部クライアントIPアドレスを持つWebアクセス・ログなどのログ・ソースで使用できます。

「ルックアップ」フィールド・エンリッチメント・オプションを使用すると、ログから外部ルックアップ表にフィールドと値の組合せを照合できます。

「追加フィールド」オプションを使用して、ログ・エントリに追加情報を含めます。この情報は、処理時に各ログ・エントリに追加されます。

ノート

  • ソースの場合、タイプごとに最大3つのフィールド・エンリッチメントを定義できます。

  • ログ・グループを入力フィールドとして追加するには、名前のかわりに値のOCIDを指定します。

ソースでの収集時間ルックアップの使用

Oracle Logging Analyticsでは、ソースで「参照フィールド・エンリッチメント」オプションを設定することで、参照のフィールドと値の追加の組合せを使用してログ・データをエンリッチできます。Oracle Logging Analyticsは、指定されたフィールドの値を外部参照表に照合し、一致した場合は、一致した参照レコードからログ・データにフィールドと値の他の組合せを追加します。ルックアップの管理を参照してください。

「参照フィールド・エンリッチメント」オプションを複数回設定することで、複数の参照からデータを追加できます。参照フィールド・エンリッチメントは、作成された順序で処理されます。したがって、キーが重複し、各参照の処理によるエンリッチメントの追加に役立つ関連参照がある場合は、「参照フィールド・エンリッチメント」定義の入力および出力選択に重複するキーを含めるようにしてください。複数の関連参照を使用してログ・データをエンリッチする例は、「複数の参照フィールド・エンリッチメントの追加の例」を参照してください。

ルックアップ・フィールド・エンリッチメントを追加するステップ

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

    管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

    「ソース」ページが開きます。「ソースの作成」をクリックします。

    または、編集するソース・エントリの横にある「アクション」メニュー・アイコン「アクション」アイコンをクリックし、「編集」を選択します。「ソースの編集」ページが表示されます。

    ノート

    パーサーがソース定義ページで選択され、フィールド・エンリッチメントの「追加」ボタンが有効になっていることを確認してください。

  2. 「フィールド・エンリッチメント」タブをクリックし、「追加」をクリックします。

    「フィールド・エンリッチメントの追加」ダイアログ・ボックスが開きます。

  3. 「フィールド・エンリッチメントの追加」ダイアログ・ボックスで、

    1. 「ファンクション」として「ルックアップ」を選択します。
    2. ドロップダウン・メニューから「ルックアップ表名」を選択します。
    3. 「入力フィールド」で、「ルックアップ表の列」およびマップ先の「ログ・ソース・フィールド」を選択します。これにより、ルックアップ表のキーを、「ログ・ソース・フィールド」のパーサーによって移入されるフィールドにマップします。たとえば、ルックアップ表のerrid列をログのError IDフィールドにマップできます。

      「ログ・ソース・フィールド」の入力フィールドのリストは、ログ・ソースによって移入されるフィールドに制限されます。

    4. 「アクション」で、新しいログ・ソース・フィールドおよびマップ先のルックアップ表列のフィールド値を選択します。前述の入力マッピングに基づいて、指定されたルックアップ表で一致するレコードが見つかると、「ログ・ソース・フィールド」で指定された出力フィールドが、「フィールド値」で指定された出力ルックアップ列の値でログに追加されます。たとえば、ルックアップ表のerraction列をActionフィールドにマップできます。

      オプションで、「+別のアイテム」をクリックして、さらに出力フィールドをマップします。

    5. 「フィールド・エンリッチメントの追加」をクリックします。

    これで、ルックアップがフィールド・エンリッチメント表に追加されます。

  4. 「有効」チェック・ボックスは選択したままにします。

  5. 参照をさらに追加するには、ステップ3および4を繰り返します。

収集時間ルックアップ・フィールド・エンリッチメントを作成したログ・ソースのログ・レコードを表示すると、「出力フィールド」に、ログ・エントリに対して移入された値が表示されます(フィールド・エンリッチメントの作成に使用したルックアップ表参照であるため)。ルックアップの管理を参照してください。

複数のルックアップ・フィールド・エンリッチメントの追加の例

最大3つの参照フィールド・エンリッチメントをソースに追加できます。個々の参照は相互に関連する場合と関連付けない場合があります。

次の例では、3つの関連参照を設定して、3つの参照すべてからの情報でログ・データをエンリッチできるようにする方法を示します。複数のホストに関する情報を含む次の3つの関連参照について考えてみます。

Lookup1: SystemConfigLookup

シリアル番号 メーカー オペレーティング・システム メモリ プロセッサ・タイプ ディスク・ドライブ ホストID
セル番号-01 Manuf1 OS1 256TB Proc1 ハード・ドライブ 1001
セル番号-02 Manuf2 OS2 7.5TB Proc3 ソリッドステートドライブ 1002
SER-NUM-03 Manuf2 OS3 16TB Proc2 ソリッドステートドライブ 1003
SER-NUM-04 Manuf3 OS1 512TB Proc5 ハード・ドライブ 1004
SER-NUM-05 Manuf1 OS1 128TB Proc4 ハード・ドライブ 1001

Lookup2: GeneralHostConfigLookup

ホストID ホスト所有者 ホストの場所 ホストの説明 ホストIPアドレス
1001 Jack サンフランシスコ Jackホストの説明 192.0.2.76
1002 Alexis デンバー Alexisホストの説明 203.0.113.58
1003 John シアトル Johnホストの説明 198.51.100.11
1004 Jane、 サンホセ Janeホストの説明 198.51.100.164

Lookup3: NetworkConfigLookup

IPアドレス サブネット・マスク ゲートウェイ DNSサーバー
192.0.2.76 255.255.255.252 192.0.2.1 再帰サーバー
203.0.113.58 255.255.255.0 203.0.113.1 認証サーバー
198.51.100.11 255.255.255.224 198.51.100.1 ルートサーバー
198.51.100.164 255.255.255.192 198.51.100.1 再帰サーバー

参照Lookup1Lookup2の間では、Host IDは、最初の参照フィールド・エンリッチメントの出力として、および2番目の参照フィールド・エンリッチメントの入力として選択できる共通キーです。同様に、参照Lookup2Lookup3の間では、IP Addressは、最初の参照フィールド・エンリッチメントの出力として、および2番目の参照フィールド・エンリッチメントの入力として選択できる共通キーです。

前述の設定を使用して、参照フィールド・エンリッチメントを1、2および3の順序で構成します。

ルックアップ・フィールド・エンリッチメント 表名のルックアップ 入力フィールド 操作
1 SystemConfigLookup
  • ログ・ソース・フィールド: Serial Number
  • 参照表の列: Serial Number
  • 新規ログ・ソース・フィールド1: Operating System
  • フィールド値1: Operating System
  • 新規ログ・ソース・フィールド2: Memory
  • フィールド値2: Memory
  • 新規ログ・ソース・フィールド3: Host ID
  • フィールド値3: Host ID
2 GeneralHostConfigLookup
  • ログ・ソース・フィールド: Host ID
  • 参照表の列: Host ID
  • 新規ログ・ソース・フィールド1: Host Owner
  • フィールド値1: Host Owner
  • 新規ログ・ソース・フィールド2: Host IP Address
  • フィールド値2: Host IP Address
3 NetworkConfigLookup
  • ログ・ソース・フィールド: Host IP Address
  • 参照表の列: IP Address
  • 新規ログ・ソース・フィールド1: Gateway
  • フィールド値1: Gateway
  • 新規ログ・ソース・フィールド2: DNS Server
  • フィールド値2: DNS Server

前述のエンリッチメント構成が完了すると、ログ・データでSerial Numberフィールドが検出されると、3つの参照からOperating SystemMemoryHost IDHost OwnerHost IP AddressGatewayおよびDNS Serverでさらにエンリッチされます。So, for the serial number SER-NUM-01 detected in the log, it is enriched with additional information OS1, 256TB, 1001, Jack, 192.0.2.76, 192.0.2.1, and Recursive server.

ログをグループ化するためのジオロケーション・フィールドの使用

ジオロケーション・フィールド・エンリッチメントを設定した後、国または国コードでグループ化されたログ・レコードを表示できます。これは、IPアドレスや場所の座標などの重要な場所情報(アクセス・ログ、トレース・ログ、アプリケーション・トランスポート・ログなど)を持つログを分析する場合に便利です。

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

    管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

    「ソース」ページが開きます。「ソースの作成」をクリックします。

    または、編集するソース・エントリの横にある「アクション」メニュー・アイコン「アクション」アイコンをクリックし、「編集」を選択します。「ソースの編集」ページが表示されます。

  2. 国固有のIPアドレスまたはホスト名レコード(ホストIPアドレスなど)を含むベース・フィールドの拡張フィールド定義を追加します。
  3. 「フィールド・エンリッチメント」タブをクリックし、「追加」をクリックします。
  4. 「フィールド・エンリッチメントの追加」ダイアログ・ボックスで、「ファンクション」として「ジオロケーション」を選択します。
  5. 「入力フィールド」セクションで、「IPフィールド」を選択します。これは、ログからパーサーによって抽出される位置フィールド名です(例: Client CoordinatesまたはHost IP Address (Client))。

    ジオロケーション情報を使用して脅威を検出するには、「脅威インテリジェンス・エンリッチメント」チェック・ボックスを選択します。ログ・データの取込み時に、ログ・コンテンツの「ソース・アドレス」入力フィールドに関連付けられたIPアドレス値が脅威としてフラグ設定されている場合、「脅威IP」フィールドに追加されます。このフィールドを使用して、脅威が関連付けられているログをフィルタできます。さらに、これらのログ・レコードには、問題の優先度が「高」「脅威IP」ラベルもあります。検索でラベルを使用できます。

    関連する問題優先度「高」のログ・レコードには、行に赤いドットがあります。これにより、これらのログ・レコードが表内で表示されやすくなり、簡単に見つけて分析できます。その後、Oracle Threat Intelligenceコンソールで脅威IPを開き、脅威の詳細情報を取得できます。

  6. 「追加」をクリックします。

処理時のログ・エントリへのデータの追加

追加のメタデータとして、各エントリに詳細情報を含めることができます。この情報はログ・エントリの一部ではありませんが、処理時に追加されます(コンテナIDノードなど)。オンデマンドでのログのアップロード中にメタデータを追加する例は、オンデマンドでのログのアップロードを参照してください。

このように追加された情報は、ログ・エクスプローラに直接表示されない場合があります。ログ分析のためにログ・エクスプローラに表示するには、次のステップを実行します。

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

    管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

    「ソース」ページが開きます。編集するソース・エントリの横にある「アクション」メニュー・アイコン「アクション」アイコンをクリックし、「編集」を選択します。「ソースの編集」ページが表示されます。

    ノート

    パーサーがソース定義ページで選択され、フィールド・エンリッチメントの「追加」ボタンが有効になっていることを確認してください。

  2. 「フィールド・エンリッチメント」タブをクリックし、「追加」をクリックします。

    「フィールド・エンリッチメントの追加」ダイアログ・ボックスが開きます。

  3. 「フィールド・エンリッチメントの追加」ダイアログ・ボックスで、

    1. 「関数」として「追加フィールド」を選択します。
    2. 「フィールドのマップ」で、ソースにマップするフィールドを選択します。このソースに関連付けられているパーサーで選択されているフィールドは、ここでは使用できません。
    3. 「追加」をクリックします。

追加のフィールドを指定すると、ログ分析のためにログ・エクスプローラに表示されます。ソースの拡張フィールドまたはラベルを構成する際に選択することもできます。

ソースでのラベルの使用

Oracle Logging Analyticsでは、定義済の条件に基づいて、ラベルまたはタグをログ・レコードに追加できます。

定義した条件にログ・エントリが一致すると、そのログ・エントリにラベルが移入されます。そのラベルは、ログ・エクスプローラのビジュアライゼーションおよびログ・エントリの検索とフィルタに使用できます。

ソースではOracle定義ラベルまたはユーザー作成ラベルを使用できます。特定のログ・エントリをタグ付けするためのカスタム・ラベルを作成するには、ラベルの作成を参照してください。

  1. 既存のソースでラベルを使用するには、そのソースを編集します。「ソースの編集」ページを開くステップは、ソースの編集を参照してください。

  2. 「ラベル」タブをクリックします。

  3. 条件付きラベルを追加するには、「条件付きラベルの追加」をクリックします。

    「条件」セクションで:

    1. 「入力フィールド」リストから、条件を適用するログ・フィールドを選択します。

    2. 「演算子」リストから演算子を選択します。

    3. 「条件値」フィールドで、ラベルを適用するために一致させる条件の値を指定します。

      ノート

      ログ・グループを入力フィールドとして追加するには、名前のかわりに値のOCIDを指定します。

    4. 条件を追加するには、「条件の追加」アイコン「条件の追加」アイコンをクリックし、ステップ3aから3cを繰り返します。複数の条件に適用する論理演算を選択します。「AND」「OR」「NOT AND」または「NOT OR」から選択します。

      条件のグループを追加するには、「グループ条件」アイコン「グループ条件」アイコンをクリックし、ステップ3aから3cを繰り返して各条件を追加します。条件のグループには複数の条件が必要です。条件グループに適用する論理演算を選択します。「AND」「OR」「NOT AND」または「NOT OR」から選択します。

      条件を削除するには、「条件の削除」アイコン「条件の削除」アイコンをクリックします。

      条件のリストを文の形式で表示するには、「条件サマリーの表示」をクリックします。

  4. 「アクション」で、使用可能なOracle定義ラベルまたはユーザー作成ラベルから選択します。必要に応じて、「ラベルの作成」をクリックして新しいラベルを作成できます。

    「有効」チェック・ボックスを選択します。

  5. 「追加」をクリックします。

Oracle Logging Analyticsによって、必要なラベルをログ・エクスプローラで検索できます。ラベルに定義されている任意のパラメータに基づいて検索できます。「検索」フィールドに検索文字列を入力します。検索ダイアログ・ボックスで検索基準を指定できます。「作成タイプ」で、目的のラベルがOracle定義であるかユーザー定義であるかを選択します。「入力フィールド」「演算子」および「出力フィールド」フィールドで、使用可能なオプションから選択できます。検索に使用できる条件値または出力値を指定することもできます。「フィルタの適用」をクリックします

これで、作成したラベルに基づいてログ・データを検索できます。ラベルでログをフィルタを参照してください。

条件付きフィールドを使用したデータ・セットのエンリッチ

オプションで、任意のフィールドを選択してそれに値を記述する場合、条件付きフィールドを使用できます。条件付きフィールド機能を使用して任意のフィールドに値を移入することは、ルックアップを使用することとよく似ています。ただし、条件フィールドを使用すると、一致条件の柔軟性が向上するため、少数の条件(フィールド移入定義)を処理する場合に使用すると便利です。たとえば、フィールドに移入するための条件が少ない場合、条件付きフィールドを使用して、ルックアップの作成と管理を回避できます。

条件付きフィールドを追加するステップは、条件付きラベルを追加するための前述のワークフローのステップと似ています。

  • ステップ3で、「条件付きラベルの追加」をクリックするかわりに、「条件付きフィールドの追加」をクリックします。条件を選択するための残りのステップ3は、前述のワークフローと同じです。

  • 前述のステップ4で、

    1. 「出力フィールド」で、すでに使用可能なOracle定義フィールドまたはユーザー作成フィールドをメニューから選択します。必要に応じて、「新規フィールドの作成」をクリックして新規フィールドを作成できます。

    2. 入力条件がtrueの場合に出力フィールドに書き込む出力値を入力します。

      たとえば、ログ・レコードの入力フィールドMethodの値がCONNECTに設定されている場合、Security Category出力フィールドに出力値authentication.loginをアタッチするようにソースを構成できます。

      「有効」チェック・ボックスを選択します。

自動時間パーサーの使用

Oracle Logging Analyticsでは、ログのパーサーを作成するかわりに汎用パーサーを使用するようにソースを構成できます。これを行うと、Oracle Logging Analyticsで時間を識別できる場合、ログにはログ・エントリから解析されたログ時間のみが含まれます。

これは、ログを解析する方法またはログを解析するための正規表現を記述する方法がわからないため、未加工のログ・データを渡して分析を実行する場合に特に役立ちます。通常、パーサーでは、指定したタイプのログ・ファイルのログ・エントリからフィールドを抽出する方法を定義します。ただし、Oracle Logging Analyticsの汎用パーサーでは次のことができます:

  • ログ・エントリからタイムスタンプおよびタイムゾーンを検出します。

  • ログ・エントリにタイムスタンプが含まれない場合は、現在時刻を使用してタイムスタンプを作成します。

  • ログ・エントリが複数行であるか単一行であるかを検出します。

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。

    管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。

  2. 「ソース」ページで、「ソースの作成」をクリックします。
    「ソースの作成」ダイアログ・ボックスが表示されます。
  3. 「ソース」フィールドに、ソースの名前を入力します。
  4. 「ソース・タイプ」フィールドで、「ファイル」を選択します。
  5. 「エンティティ・タイプ」をクリックし、このソースのエンティティ・タイプを選択します。
  6. 「時間のみ自動解析」を選択します。Oracle Logging Analyticsでは、汎用パーサー・タイプが自動的に適用されます。
  7. 「保存」をクリックします。
新しく作成されたソースのログ・レコードにアクセスすると、Oracle Logging Analyticsはログ・エントリから次の情報を抽出して表示します:
  • タイムスタンプ:

    • ログ・エントリにタイムスタンプが含まれない場合、汎用パーサーは、ログ・データが収集された時間に基づいてタイムスタンプを作成および表示します。

    • ログ・レコードにタイムスタンプが含まれるが、タイムゾーンが定義されていない場合、汎用パーサーは、管理エージェントのタイムゾーンを使用します。

      管理エージェントの使用時に、タイムゾーンが正しく検出されない場合、エージェント構成ファイルにタイムゾーンを手動で設定できます。ファイルのタイムゾーンおよび文字エンコーディングの手動指定を参照してください。

      オンデマンド・アップロードを使用してログをアップロードする場合、そのアップロードとともにタイムゾーンを指定して、それを正しく検出できない場合に強制的にタイムゾーンを設定できます。CLIを使用する場合は、コマンドライン・リファレンス: ログ・アナリティクス - アップロードを参照してください。REST APIを使用する場合は、ログ・アナリティクスAPI - アップロードを参照してください。

    • ログ・ファイルに複数のタイムゾーンを使用するログ・レコードが含まれる場合、汎用パーサーでは、最大11個のタイムゾーンがサポートされます。

    • ログ・ファイルにタイムゾーンが含まれるログ・エントリと含まれないログ・エントリが表示される場合、汎用パーサーは、タイムゾーンが含まれないものに対して以前検出されたタイムゾーンを使用します。

    • 管理エージェントを使用してログを収集するときに、タイム・ゾーンまたはタイム・ゾーン・オフセットがログ・レコードに示されていない場合、Oracle Logging AnalyticsはOSの最終変更時間と最後のログ・エントリのタイムスタンプを比較して、適切なタイム・ゾーンを決定します。

  • 複数行: ログ・エントリが複数行にまたがる場合、汎用パーサーは、複数行のコンテンツを正しく取得できます。