シナリオ: IoTフロー・ランタイムのログの構成

IoTフロー・ランタイムから顧客テナンシのOCIロギングにノード-REDシステム・コンソール・ログを送信し、テスト・メッセージを生成して、メッセージが使用可能であることを確認します。

このシナリオを使用して、フロー・ランタイムの永続操作ログを構成します。ノード-REDデバッグ・サイドバーにのみ送信されるメッセージは、エディタが開いている間、対話型開発に使用できます。ログがフロー・ランタイム用に構成されている場合、メッセージはノード-REDランタイム・ログに送信され、OCIロギング・サービスに配信され、フロー・ランタイムのモニタリング・タブでフロー・ランタイム・ログが表示されます。

テスト・フローはInject -> Debugです。デバッグ・ノードは、完全なロギング・パスを確認できるように、認識可能なメッセージをランタイム・ログに送信します。

前提条件

  • アクティブなIoTフロー・ランタイムとそのノード-REDエディタへのアクセス。
  • 顧客テナンシのOCIロギング・ログ・グループ。既存のログを使用するには、そのログOCIDも必要です。
  • 権限: フロー・ランタイムを更新し、選択したログを検索します。
  • サービス・ログを構成する前に、ログ・グループまたは適切な親コンパートメントを含むコンパートメントに該当するフロー・ランタイム・ロギング・ポリシーを作成します。既存のログには、read log-groupsおよびuse log-contentが必要です。ログの自動作成には、manage log-groupsおよびuse log-contentが必要です。

ステップ1: ロギング宛先の構成

ログ・グループおよびログOCIDsを指定して既存のログを構成するか、OCI IoTでログが自動的に作成されるようにログ・グループのみを指定します。

次の方法の1つを使用して、ロギング宛先を構成します。
    1. 「IoTドメイン」リスト・ページで、フロー・ランタイムを含むドメインを選択し、「フロー・ランタイム」を選択します。
    2. フロー・ランタイム名を選択し、「編集」を選択します。
    3. 「ロギングの構成」で、次のいずれかのオプションを選択します:
      • 既存のログの使用: ログ・グループおよびログを選択または入力します。
      • ログの自動作成: ログ・グループのみを選択または入力します。
    4. 「変更の保存」を選択し、更新作業リクエストが成功するまで待機します。
  • 既存のログを使用するには、次の内容をlog-config.jsonとして保存します。

    {
      "logGroupId": "<log-group-ocid>",
      "logId": "<log-ocid>"
    }

    ログを自動的に作成するには、logIdを省略します。

    {
      "logGroupId": "<log-group-ocid>"
    }

    フロー・ランタイムの更新:

    oci iot flow-runtime update \
      --iot-flow-runtime-id <flow-runtime-ocid> \
      --log-config file://log-config.json \
      --wait-for-state SUCCEEDED
    ノート

    --log-configを指定すると、完全なロギング構成が置き換えられます。現在の構成を保持または記録する必要がある場合は、まずフロー・ランタイムを取得します。

    すべてのオプションについては、CLIコマンド・リファレンスを参照してください。

  • UpdateIotFlowRuntime操作を実行します。既存のログを使用するには、両方のOCIDsを指定します:

    PUT /20250531/iotFlowRuntimes/{iotFlowRuntimeId}
    {
      "logConfig": {
        "logGroupId": "<log-group-ocid>",
        "logId": "<log-ocid>"
      }
    }

    ログを自動的に作成するには、logIdを省略します。

    PUT /20250531/iotFlowRuntimes/{iotFlowRuntimeId}
    {
      "logConfig": {
        "logGroupId": "<log-group-ocid>"
      }
    }

    更新によって返された作業リクエストが成功するまで監視します。指定されたlogConfigは、完全なロギング構成を置き換えます。

ステップ2: ノード-REDシステム・コンソール・メッセージの生成

  1. フロー・ランタイムの詳細ページで、「フロー・ランタイム・エディタを開く」を選択します。
  2. 「インジェクト」ノードと「デバッグ」ノードを追加して、接続します。
  3. msg.payloadでこの文字列を送信するようにInjectノードを構成します。
    OCI IoT Flow Runtime logging test
  4. msg.payloadシステム・コンソールまたはランタイム・ログに出力するようにデバッグ・ノードを構成します。

    デバッグ・サイドバーにのみ送信される出力は、OCIロギングに配信されません。デバッグ・ノードおよびランタイム・ログ出力の詳細は、ノード-REDドキュメントのコア・ノードを参照してください。

  5. 「デプロイ」を選択し、インジェクト・ノードをトリガーします。
  6. 狭いロギング検索時間範囲を使用できるように、ノードをトリガーした時間を記録します。

ステップ3: OCIロギングでのメッセージの検証

ログの配信には時間がかかる場合があります。インジェクト・ノードをトリガーする前に開始する時間範囲を検索し、OCI IoT Flow Runtime logging testを探します。

次のいずれかの方法を使用して、構成済のOCIログを検索します。
    1. フロー・ランタイムの詳細ページの「モニタリング」で、「ログ」を選択します。
    2. 構成済ログ名を選択してOCIロギングで開きます。
    3. 注入ノードをトリガーした時間を含めるように時間範囲を設定します。
    4. ログ・レコードでOCI IoT Flow Runtime logging testを検索します。
  • logging-search search-logsコマンドを使用します。注入ノードをトリガーした時間を含むUTCタイムスタンプを指定します。

    oci logging-search search-logs \
      --search-query 'search "<compartment-ocid>/<log-group-ocid>/<log-ocid>" | sort by datetime desc' \
      --time-start <start-time-rfc3339> \
      --time-end <end-time-rfc3339>

    レスポンスにOCI IoT Flow Runtime logging testが含まれていることを確認します。すべてのオプションについては、search-logsを参照してください。

  • テストを含む時間範囲でOCIロギングSearchLogs操作を実行します。

    POST /20190909/searchLogs
    {
      "searchQuery": "search \"<compartment-ocid>/<log-group-ocid>/<log-ocid>\" | sort by datetime desc",
      "timeStart": "<start-time-rfc3339>",
      "timeEnd": "<end-time-rfc3339>"
    }

    返されるログ・レコードにOCI IoT Flow Runtime logging testが含まれていることを確認します。

トラブルシューティング

  • ログ・グループのみを選択した後にOCI IoTでログが作成されない場合は、自動ログ作成ポリシーによってmanage log-groupsおよびuse log-contentが付与され、ログ・グループまたは適切な親コンパートメントを含むコンパートメントに適用されていることを確認します。
  • ログは存在するが、テスト・レコードがない場合は、フロー・ランタイムがアクティブであること、デバッグ・ノードがシステム・コンソールまたはランタイム・ログに書き込まれること、フローがデプロイされ、インジェクション・ノードがトリガーされたことを確認します。
  • 検索時間範囲を展開し、構成されたコンパートメント、ログ・グループおよびログを検索していることを確認します。
  • 認可の失敗については、フロー・ランタイム・ロギング・ポリシーおよびフロー・ランタイム・ポリシーのトラブルシューティングを確認してください。

問題が続く場合は、Oracle Supportに連絡する前に、フロー・ランタイムOCID、ログ・グループおよびログOCIDs、作業リクエストOCID、リクエストID、テスト・タイムスタンプおよびエラー・メッセージを記録してください。

FAQ

既存のログを選択するか、OCI IoTで作成しますか。
既知のログ名、保存設定または確立された操作プロセスが必要な場合、既存のログを選択します。OCI IoTでログ宛先を作成および管理する必要がある場合、ログ・グループのみを指定します。
OCIロギングにデバッグ・サイドバー・メッセージがないのはなぜですか。
「デバッグ」サイドバーはエディタ・ビューです。システム・コンソールまたはランタイム・ログに書き込むようにデバッグ・ノードを構成し、フローをデプロイして再度トリガーしてから、構成されたOCIログを検索します。
自動ログ作成に必要な権限は何ですか。
自動ログ作成ポリシーでは、ログ・グループまたは適切な親コンパートメントを含むコンパートメントにmanage log-groupsおよびuse log-contentを付与する必要があります。かわりに既存のログを使用する場合は、ポリシーでread log-groupsおよびuse log-contentを付与する必要があります。
ログ構成を変更すると、前の宛先は保持されますか。
フロー・ランタイムは、新しいシステム・コンソール・レコードを現在のログ構成に送信します。履歴レコードを検索する必要がある場合は、構成を置換する前に、前のログ・グループおよびログOCIDsを記録してください。

再利用可能なロギングの質問については、フロー・ランタイムのFAQを参照してください。