ログ・パーティション化の管理

インフラストラクチャ、アプリケーション・アーキテクチャまたは組織構造に基づいてログを物理的にパーティション化するためのログ・セットを定義して、単一のリージョン内の単一のテナントについて1日当たり6TBを超えるログ・データを永続的に取り込むことが予想される場合に、検索パフォーマンスを最適化できます。

ログ・パーティション化の詳細は、ログ・パーティション化を参照してください。

特定のリージョンでテナンシのログ・パーティション化を有効にした後、各ログ・エントリにログ・セット・フィールドに文字列値が定義されていることを確認する必要があります。取込み方法に応じて、次の共有ステップに従ってログ・セット値を指定できます。

テナンシでログ・パーティション化が有効になっている場合、ログ・セットを選択するオプションがスコープ・フィルタに表示されます。問合せを開始する前に、少なくとも1つのログ・セットを選択するか、ワイルドカード*を使用する必要があります。ワイルドカードは、すべてのログを検索する必要があるユース・ケースでのみ使用することをお薦めします。これは、すべてのログを検索するため、実行に時間がかかるより高価な検索になります。ワイルドカード検索の実行時に、選択した時間範囲にわたってデータが多すぎると、問合せがタイムアウトすることがあります。スコープ・フィルタの使用を参照してください。

ログ・パーティション化の有効化

ログ・パーティショニングは、Oracle Log Analyticsが使用可能なすべてのリージョンおよびレルムで使用できます。

ユース・ケースでパーティション化機能が必要な場合は、Oracle Log Analyticsでこの機能をリクエストするOracle Supportを使用してService Requestを申請します。

ログ・セット値の指定: 管理エージェントを介したログ収集

スタンドアロン管理エージェントを介して、またはOracle Cloud Agentの一部として、ログを収集している可能性があります。

  1. 管理エージェントのemd.propertiesファイルを編集して、ログ・セットを定義する方法は複数あります。次のいずれかから選択します。

    • エージェントによって収集されるすべてのログに静的ログ・セット値を設定できます。エージェント全体のログ・セットを指定するには、エージェントemd.propertiesファイルに次のプロパティを追加します。

      loganalytics.src.addl_src_ptn_configs=logset=<Value>
    • ログ・ファイル名の一部としてログ・セット値を設定します。エージェント構成で正規表現を指定して、ログ・ファイル・パスの一部をログ・セット文字列として抽出する方法を定義できます。エージェントのemd.properties構成ファイルで、プロパティlogsetkeyおよびlogSetExtRegexを指定します。

      loganalytics.src.addl_src_ptn_configs=logsetkey=logorigin,logSetExtRegex=<regex with a capture group>

      logoriginは、ログ・ファイルのパスです。

    • 前述の設定にソースIDをプロパティとして追加することで、ソースごとに異なるログ・セット抽出を個別に適用するように指定できます。

      //sets this log set value only for source 201904301
      loganalytics.src.addl_src_ptn_configs=srcid=201904301,logset=<Value>
      //sets this log set value based on regular expression extraction only for source 201904301
      loganalytics.src.addl_src_ptn_configs=srcid=201904301,logsetkey=logorigin,logSetExtRegex=<regex with a capture group>
  2. 前述の方法のいずれかを使用してログ・セットを指定する以外に、emd.properties構成ファイルには次のプロパティを含めます。

    loganalytics.src.override_config=true
  3. 構成ファイルの編集後にエージェントを再起動します。

ログ・セット値の指定: サービス・コネクタ・ハブを介したログ取込み

現在、この機能は、サービス・コネクタ・ハブを使用してOCIロギング・サービスからOracle Log Analyticsに収集されたカスタム・ログでのみサポートされています。

ログ・セット値を設定するには、カスタム・ログでOCIロギング統合ロギング・フォーマット・データのdata{}ブロックに新しいフィールドを追加する必要があります。たとえば、

{
  "data": {
    "logSet": "<Value>",
    ...
  },
  "oracle": {
    ...
  },
    ...
}

ログ・セット値の指定: オブジェクト・ストレージ・コレクションを介したログ収集

オブジェクト・ストレージ収集ルールを作成する場合、管理エージェント収集のログ・セットの移入に使用されるものと同じオプションが適用されます。

  • このオブジェクト・ストレージ収集ルールによって収集されるすべてのログに対して、静的ログ・セット値を設定できます。オブジェクト・ストレージ・コレクション・ルールJSONに次のプロパティを追加します:

    {
        "name": "<Object Collection Rule Name>",
        "logSet": "<Value>",
        ...
    }
  • 正規表現を指定して、オブジェクト・パスからログ・セットを解析できます。例:

    {
        "name": "<Object Collection Rule Name>",
        "logSetExtRegex": "\\\/o\\\/[^\\\/]*\\\/([^\\\/]*)",
        ...
    }
  • オブジェクト収集ルールで上書きを使用している場合は、上書きのログ・セットの抽出を設定することもできます。次の例では、バケットから収集されるすべてのログは、dbを含むオーバーライドに一致するオブジェクトを除き、ログ・セットValue1を取得します。これらのログは、オブジェクト・パスの正規表現から取得されたログ・セット文字列を取得します。

    {
        "name": "<Object Collection Rule Name>",
        "logSet": "Value1",
        "overrides": {
            "items": [{
                "matchType": "contains",
                "matchValue": "db",
                "propertyName": "logSetExtRegex",
                "propertyValue": "\\\/o\\\/[^\\\/]*\\\/([^\\\/]*)"
            }]
        }
    }

ログ・セット値の指定: REST APIを介したログ収集

ログ・データ・ファイルをログ・イベントREST APIエンドポイント/actions/uploadLogEventsFileに投稿する場合は、POST REST APIコール・パラメータでログ・セットを指定できます。この単一のAPIコールでアップロードされたすべてのログ・データは、同じログ・セットで格納されます。

例:

POST /20200601/namespaces/<namespaceName>/actions/uploadLogEventsFile?logGroupId=<logGroup_OCID>&payloadType=JSON&logSet=<Value>

ログ・セット値の指定: Fluentdを介したログ収集

fluentdコレクタを使用すると、ログ・セットを他のフィールド(keyname)から抽出できます。key_nameによって参照されるフィールドからフィールドoci_la_log_setに予期されるログ・セット値を取得する方法を定義する正規表現を指定します。

<filter oci.source>                  
  @type parser
  key_name oci_la_log_path      # The expression will be applied on the key "oci_la_log_path". You can pick any field that fluentd has parsed here.
  <parse>
    @type regexp
    expression '.*\/(?<oci_la_log_set>[^\.]{1,40}).*'   # Valid reg-ex for extraction
  </parse>
</filter>

oci_la_log_pathの値が/n/axs4r325r2ct/b/logevents/o/fileType/logSetABC.logの場合、前述の正規表現に基づいて抽出されたログ・セット値はlogSetABCになります。

ノート

取得グループという名前の式では、(?<oci_la_log_set>)が必要です。これがない場合、正規表現の一致した文字列はoci_la_log_setに割り当てられません。