ルーティングルールの定義

ルーティングルールを定義するには、プラットフォームログの送信先として1つ以上のターゲットを指定する必要があります。 また、これらのプラットフォームログがどのようにこれらの宛先にルーティングされるかの条件を定義する1つ以上の包含フィルタを定義することもできる。

アカウント定義した各ルートに対して、最大10個のルールを設定できる。 ルールは、リージョン内でどのプラットフォームログがルーティングされ、どこにルーティングされるかを指定する。 詳細は お客様のアカウントルートがどのように機能するかを理解する を参照。

ルールは、1つのアクション、1つ以上のターゲット、および0つ以上の包含フィルタで構成される。

ターゲット

ターゲットは、プラットフォームログがルーティングされるターゲットIDのリストを定義する。

  • 1つのルールにつき、最大3つのターゲットIDを指定できる。

  • ルートを設定している同じ地域、異なる地域、異なるアカウント利用可能なリソースのターゲットIDを定義できます。

例えば、以下のようにターゲットのリストを定義することができる:

"targets": [{"id":"11111111-1111-1111-1111-111111111111"},{"id":"22222222-2222-2222-2222-222222222222"}]

ターゲットは IBM Cloud Logs インスタンスでなければならない。

アクション

アクションは、 IBM Cloud Logs Routing、ルート上のプラットフォームログを含めるか、除外するかを定義する。 senddrop の2つのアクションがサポートされている。 指定されない場合、デフォルトの動作はプラットフォームログを送信することである。

send
プラットフォームログは、ルーティングルールに基づいて、定義されたルートで送信されます。
drop
プラットフォームログが定義されたルートで送信される場合、ルーティングルールに基づき、プラットフォームログは除外されます。

包含フィルター

包含フィルタは、どのプラットフォームログがルールで指定されたターゲットにルーティングされるかを決定するために使用される条件を定義する。

すべてのプラットフォームログをルーティングするには、ルートを構成するときに inclusion_filters 定義を除外する。

インクルージョン・フィルターは operandoperatorvalue で構成される:

operand

オペランドは、データのフィルタリングに使用されるターゲットのプロパティ名です。 以下のオペランドがサポートされている: location. 値はターゲットCRNから抽出される。

operator

inis の2つの演算子がサポートされている。

in

オペランド・プロパティの値は、値のリストと比較されます。

最大20個の値を定義できる。

is

オペランド・プロパティの値は、単一の値と比較される。

is を使用する場合、指定できる値は1つだけである。

value

ログがルーティングされるかどうかを決定するために、 operand プロパティと比較される文字列、または文字列の配列。 is operator を使用する場合、 value には文字列を1つ含めなければならない。 in operatorvalue は複数の文字列を配列に含めることができる。

有効な値は operand による。

location
IBM Cloud Logs Routing。

インクルード・フィルターを設定する際には、これらの制限に注意すること。

  • 各ルールには最大7つの包含フィルタを設定できる。

  • inclusion_filter.values には最大 20 個の値を設定できます。

  • inclusion_filter.values 、最大100文字まで設定可能。

IAM アクセス権限

ルーティング・ルールを使用するには、適切なIAMロールが必要です。 IAMロールについては IAMアクセスの管理

UIを使ったルーティングルールの定義

アクションとインクルードフィルターのルーティングルールはUIで設定できます。 詳細については、 ルートの管理を 参照してください。

CLIを使用したルーティングルールの定義

ルートとインクルード・フィルターのルールはJSON形式で定義される。 ルールの定義は以下の通り:

  • --rules オプションを使用すると、情報はコマンド上で直接JSONとして渡される。
  • --files オプションを使うと、情報はJSONファイルとして渡される。

--rules オプションを使った例

以下の例では、 --rules オプションで直接ルールを指定している。 この例では、 us-east からのすべてのプラットフォームログは、 0b4e6aa9-257c-4a3a-ae42-9a36a5b3adc7 にルーティングされる。 eu-deeu-es からのすべてのプラットフォームログは 6f9137b3-2bb9-4724-851b-153e23c82d80 にルーティングされる。

'[{"action": "send", "targets":[{"id":"0b4e6aa9-257c-4a3a-ae42-9a36a5b3adc7"}], "inclusion_filters":[{"operand": "location","operator": "is","values": ["us-east"]}]},{"targets":[{"id":"22222222-2222-2222-2222-222222222222"},{"id":"33333333-3333-3333-3333-3333333333333"}], "inclusion_filters":[{"operand": "location","operator": "in","values": ["eu-de","eu-es"]}]}]'

'[{"アクション":"send", "targets" [:{"id":"0b4e6aa9-257c-4a3a-ae42-9a36a5b3adc7"}], "inclusion_filters":[{"operand": "location","operator": "is","values": ["us-east"] }]},{"targets": [{"id":"6f9137b3-2bb9-4724-851b-153e23c82d80"}], "inclusion_filters":[{"operand": "location","operator": "in","values": ["eu-de","eu-es"] }]}]'

コマンドの出力は以下のようになる:

Id           92f4cdb3-212c-4811-bf16-03b5449e0fb8
Name         route1
Rules
             action              send
             inclusion_filters
                                 operand    location
                                 operator   is
                                 values     [us-east]

             targets
                                 id            0b4e6aa9-257c-4a3a-ae42-9a36a5b3adc7
                                 name          cl-target2
                                 target_type   cloud-logs


             action              send
             inclusion_filters
                                 operand    location
                                 operator   in
                                 values     [eu-de, eu-es]

             targets
                                 id            6f9137b3-2bb9-4724-851b-153e23c82d80
                                 name          cl-platform-logs-sydney-113
                                 target_type   cloud-logs


Created At   2026-04-28T22:26:38.022Z
Updated At   2026-04-28T22:26:38.022Z
Managed By   account

--file オプションを使った例

次の例では、 --file オプションで、 rules_def.json という名前の JSON ファイルを渡してルールを指定する:

--file rules_def.json

rules_def.json

[
  {
    "action":"send",
    "targets": [
      {
        "id":"0b4e6aa9-257c-4a3a-ae42-9a36a5b3adc7""
      },
      {
        "id":"6f9137b3-2bb9-4724-851b-153e23c82d80"
      }
    ],
    "inclusion_filters": [
        {
          "operand": "location",
          "operator": "in",
          "values": [
            "us-south",
            "eu-de"
          ]
        }
    ]
  }
]

APIを使ってルーティング・ルールを定義する

ターゲットとインクルード・フィルターは、 rules を使ってAPIコールで定義します。 rules はJSON構造で定義されている。

例えば、以下の例では、 my-route という名前のルートを作成し、 us-east リージョンからのプラットフォームログをターゲット 0b4e6aa9-257c-4a3a-ae42-9a36a5b3adc76f9137b3-2bb9-4724-851b-153e23c82d80 に送ります。

curl -X POST https://api.private.<REGION>.logs-router.cloud.ibm.com/v3/routes -H "Authorization: Bearer <IAM_TOKEN>" -H 'content-type: application/json' -d '{
    "name": "my-route",
    "rules": [
      {
        "action":"send",
        "targets": [{"id":"0b4e6aa9-257c-4a3a-ae42-9a36a5b3adc7"}, {"id":"6f9137b3-2bb9-4724-851b-153e23c82d80"}],
        "inclusion_filters": [
          {
            "operand": "location",
            "operator": "is",
            "values": ["us-east"]
          }
        ]
      }
    ]
  }'

詳細は APIリファレンスを 参照