シナリオ: 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でログが自動的に作成されるようにログ・グループのみを指定します。
- 「IoTドメイン」リスト・ページで、フロー・ランタイムを含むドメインを選択し、「フロー・ランタイム」を選択します。
- フロー・ランタイム名を選択し、「編集」を選択します。
- 「ロギングの構成」で、次のいずれかのオプションを選択します:
- 既存のログの使用: ログ・グループおよびログを選択または入力します。
- ログの自動作成: ログ・グループのみを選択または入力します。
- 「変更の保存」を選択し、更新作業リクエストが成功するまで待機します。
既存のログを使用するには、次の内容を
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システム・コンソール・メッセージの生成
ステップ3: OCIロギングでのメッセージの検証
ログの配信には時間がかかる場合があります。インジェクト・ノードをトリガーする前に開始する時間範囲を検索し、OCI IoT Flow Runtime logging testを探します。
- フロー・ランタイムの詳細ページの「モニタリング」で、「ログ」を選択します。
- 構成済ログ名を選択してOCIロギングで開きます。
- 注入ノードをトリガーした時間を含めるように時間範囲を設定します。
- ログ・レコードで
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を参照してください。