拡張ネットワークトラフィックLogs
プレビュー
この機能はプライベート プレビュー段階です。試用については、Databricksの連絡先にお問い合わせください。
拡張ネットワークトラフィック Logs は、Databricks Serverless コンピュートからの送信ネットワークトラフィックを記録します。default では、送信ネットワークアクセスイベントのシステムテーブルには、Serverlessエグレスコントロールによって拒否されたリクエストのみが記録されます。拡張ネットワークトラフィック Logs では、許可されたリクエストも記録されるため、Serverlessワークロードの接続先を確認して、接続のトラブルシューティングを行うことができます。
拡張ネットワークトラフィックログでは、フローログテーブルも追加されます。このテーブルには、Serverlessコンピュートが各宛先IPアドレスとの間で送受信するデータ量が記録されます。この2つの機能では、次のシステムテーブルが使用されます。
機能 | システムテーブル | 説明 |
|---|---|---|
許可されたアウトバウンドネットワークアクセスイベント |
| 既存の拒否済みリクエストのテーブルに、許可されたアウトバウンドリクエストを追加します。 |
アウトバウンドトラフィックフローLogs |
| 宛先IPアドレスごとの送受信バイト数を記録し、1分間隔で集計します。 |
送信トラフィックのフローログには、プライベートネットワークゲートウェイ経由でルーティングされたトラフィックのみが記録されます。
ログをクエリーするには、拡張ネットワークトラフィックLogsのクエリーを参照してください。
ユースケース
次の用途には、拡張ネットワークトラフィックLogsを使用します:
-
ネットワークアクティビティを調査: Serverlessワークロードがアクセスした宛先、アクセスした時刻、ワークスペースを確認できます。
-
ネットワークポリシーを調整する: アクセス頻度の低い宛先を見つけ、Serverlessのエグレス許可リストから削除するかどうかを判断します。
-
接続のトラブルシューティング: Serverlessエグレス制御がリクエストを許可したか拒否したかを判断します。
-
ネットワークコストを調査する: Serverlessワークロードがアクセスしたクロスリージョン、インターネット、およびプライベートの宛先を特定します。
-
ストレージ接続を最適化する: 頻繁にアクセスされるストレージ保存先のうち、プライベート接続を利用するか、ワークロードと同じリージョンに配置することでメリットが得られる可能性があるものを見つけます。
-
トラフィック量を測定: プライベートネットワークゲートウェイ経由でServerlessコンピュートが各宛先に送信および受信するデータ量を確認できます。
-
異常なアクティビティを検出: 予想外に大量のトラフィックが発生している宛先を特定します。
仕組み
許可されたネットワークアクセスイベント
拡張ネットワークトラフィックLogsは、ALLOWEDイベントを既存のsystem.access.outbound_networkテーブルに追加します。このテーブルには、SQLウェアハウス、ジョブ、LakeFlow Pipelines、Databricks Apps、Model Serving Endpointなどのサーバレスワークロードからのアウトバウンドネットワークアクセスイベントが記録されます。許可されたイベントには、クラウドストレージ、インターネットの宛先、およびプライベート接続経由で到達するリソースへのリクエストが含まれます。テーブルスキーマの全容については、ネットワークアクセスイベント システムテーブル リファレンスを参照してください。
access_type列は各イベントの結果を示します:
Value | 説明 |
|---|---|
| アウトバウンド通信ネットワークアクセスが許可されていました。拡張ネットワークトラフィックLogsでのみ利用できます。 |
| 強制モードで適用されているServerlessエグレス制御により、アウトバウンドネットワークアクセスが拒否されました。 |
| 送信ネットワークアクセスはServerlessエグレス制御によって拒否されるはずでしたが、ポリシーがドライランモードだったため許可されました。 |
リクエストに記録されるaccess_typeとdestination_typeの値は、宛先とServerlessエグレスポリシーモードによって異なります:
ネットワークリクエスト | 制限なしのイグレス | ドライランモード | 強制モード |
|---|---|---|---|
許可されたストレージアクセス |
| ログに記録されない |
|
ポリシーに違反するストレージアクセス | 該当なし |
|
|
VPCリソースへのアクセスを許可 |
|
|
|
ポリシーに違反するVPCリソースへのアクセス | 該当なし |
|
|
許可されたインターネットアクセス |
|
|
|
ポリシーに違反するインターネットアクセス | 該当なし |
|
|
許可されたDNSイベントでは、destinationにドメイン名またはストレージのホスト名が含まれます。許可されたSTORAGEイベントでは、destinationにストレージのホスト名とパスが含まれます。解決された宛先IPアドレスはdns_event.rdataまたはstorage_event.rdataに含まれています。拒否されたイベントでは、これらのフィールドは空です。
送信トラフィックのフローLogs
system.access.outbound_trafficテーブルには、個々のリクエストではなく、集計されたトラフィック量が記録されます。Databricksは、分単位の境界で開始および終了する固定の1分間隔にトラフィックをグループにまとめます。各間隔内では、同じワークスペース、宛先IPアドレス、接続方法のトラフィックが1つのレコードにまとめられ、送受信されたバイト数が合計されます。
たとえば、12:05:00と12:06:00の間のトラフィックは、period_start_time = 12:05:00とperiod_end_time = 12:06:00を含むレコードを生成します。開始時刻は含まれ、終了時刻は含まれません。これらのTimestampは間隔の境界を示すもので、最初と最後のパケットの時刻を示すものではありません。トラフィックのない間隔では、レコードは生成されません。
このsystem.access.outbound_trafficテーブルは次のスキーマを使用します:
列 | データ型 | 説明 |
|---|---|---|
| string | 集約されたトラフィックレコードの一意の識別子。 |
| string | トラフィックの発生元であるDatabricksアカウントのID。 |
| string | トラフィックの発生元であるワークスペースのID。 |
| string | 宛先IPアドレス。 |
| bigint | 間隔中にServerlessコンピュートが受信した合計バイト数。 |
| bigint | 間隔中にServerlessコンピュートから送信された合計バイト数。 |
| string | 使用された接続の種類値は |
| string | 使用された接続方法。値は |
| timestamp | 1分間隔の開始時刻(含む)。 |
| timestamp | 1分間隔の排他的な終了時刻。 |
テーブル間の関係
system.access.outbound_network リクエストの宛先ホスト名またはストレージロケーションを示します。system.access.outbound_trafficでは、宛先IPアドレス、接続方法、転送されたバイト数を確認できます。
これらを関連付けるには、アカウントID、ワークスペースID、解決済みの宛先IPアドレスを照合し、アクセスイベントのevent_timeがLogsの期間内にあることを確認します。2つのテーブルのevent_id値は独立しているため、event_idで結合しないでください。
これらの一致は、IPアドレスと時刻に基づく相関です。アクセスイベントを特定のネットワーク接続にLinkするものではありません。複数のホスト名が同じIPアドレスに解決される場合、各ホスト名は同じフローレコードに一致します。
制限事項
拡張ネットワークトラフィック Logs には、次の制限があります:
-
Model Serving Endpointからの外部モデルアクセスについては、許可されたイベントはログに記録されません。
-
Serverlessエグレス制御がドライランモードのワークスペースからのストレージアクセスでは、許可されたイベントはログに記録されません。
-
MLflowやdbtのアーティファクトなど、ワークスペース内部ストレージへのアクセスについては、許可されたイベントは記録されません。
-
OpenSharingプロバイダーのストレージへのアクセスについては、許可されたイベントはログに記録されません。
-
約1分未満でランされるワークロードからの許可されたトラフィックは、ログに記録されない可能性が高くなります。特に、スケジュールされた非対話型ワークロードや、エグレスポリシーに制限のないワークスペースではその傾向があります。
-
送信トラフィックのフローLogsには、プライベートネットワークゲートウェイ経由でルーティングされたトラフィックのみが記録されます。他のプライベート接続またはパブリックインターネットへのエグレスを使用するトラフィックは記録されません。
-
アウトバウンドトラフィックのフローログには、Agent Bricks、Unity Gateway、またはGitフォルダからのトラフィックは記録されません。
これらの制限は、Serverlessエグレス制御の適用方法や、拒否されたリクエストのログ記録方法には影響しません。
よくある質問
以下の質問では、拡張ネットワークトラフィック Logs で見られる一般的な動作について説明します。
拡張ネットワークトラフィックLogsを使用するには、Serverlessエグレスコントロールが必要ですか?
いいえ。制限のないServerlessエグレスポリシーを設定しているワークスペースでも、許可されたアウトバウンドネットワークアクセスイベントは記録されます。
ワークロードの終了後にネットワークアクセスイベントが表示されるのはなぜですか?
Databricksは、ワークロードの終了後も、Delta Logsやメタデータを維持するためなどに、ストレージへのアクセスを続ける場合があります。ユーザーワークロードが実行されていない場合でも、これらのリクエストによってネットワークアクセスイベントが生成されることがあります。Serverlessコンピュートインスタンスが終了すると、イベントは停止します。
ネットワークアクセスログに見慣れないホスト名が表示されるのはなぜですか?
ログに記録される宛先の一部は、プラットフォーム運用に使用されるDatabricks管理のリソースです:
ホスト名パターン | 目的 |
|---|---|
| ServerlessコンピュートのStartup時間を短縮します |
| Databricks default ストレージ。 |
| default サンプルデータセットへのアクセス。 |
認識できないホスト名がほかに表示された場合は、Databricksアカウントチームにお問い合わせください。
ネットワークトラフィックLogsが表示されるまで、どれくらいかかりますか?
ほとんどのアウトバウンドネットワークアクセスイベントは、リクエストから15分以内に表示されます。レイテンシは変動する可能性があり、DatabricksはこれらのLogsに対するレイテンシのサービスレベルアグリーメント(SLA)を提供していません。
許可されたネットワークアクセスイベントに一致するフローログが見つからないのはなぜですか?
フローログにはプライベートネットワークゲートウェイ経由でルーティングされたトラフィックのみが記録されるため、他の接続方式を使用する許可済みリクエストに一致するフローログはありません。フローログがないからといって、リクエストが失敗した、またはデータが転送されなかったという意味ではありません。