1. はじめに

皆さんこんにちは。

今回は、Databricksで診断ログを保存する方法について説明していきます。

※ジョブログについては、こちらをご覧ください。

2. 前提要件

本書を実施する際の前提条件は以下の通りです。

・Log Analyticsワークスペースが必要です。作成していない場合、こちらをご覧ください。

3. 診断設定の作

次は、Databricks のログをLog Analytic ワークスペースへ送信する診断設定の作成方法について説明していきます。

① Databricks ワークスペースの Portal 画面で「診断設定」をクリックします。

②「診断設定を追加する」をクリックします。

③「診断設定の名前」項目で診断設定の名前を入力します。

④「Log Analyticsワークスペースへの送信」をチェックします。

⑤「サブスクリプション」項目で対応サブスクリプションを選択します。

⑥「Log Analyticsワークス」でログの送信希望のワークスペースを選択します。

⑦「カテゴリ」に様々な監視対象があります。希望の監視対象を選択してください。

以下の監視対象をお勧めします。

    • Databricks File System : DBFS に関連するイベント。
    • Databricks Clusters : クラスターに関連するイベント。
    • Databricks Accounts : アカウント、ユーザー、グループ、および IP アクセス リストに関連するイベント。
    • Databricks Notebook: ノートブックに関連するイベント。
    • Databricks SSH : SSH アクセスに関連するイベント。
    • Databricks Secrets : シークレットに関連するイベント。
    • Databricks Genie : サポート担当者によるワークスペース アクセスに関連するイベント。
    • Databricks Unity Catalog : Unity Catalog に関連するイベント。

⑧ 監視対象を選択して、「保存」ボタンをクリックします。

⑨ 診断設定が追加されました。15分後にLog Analytics ワークスペースへログが送信されます。

 

4.診断ログのスキーマ

ログを保存するテーブルのスキーマは以下の通りです。

列名 説明
1 _ResourceId レコードが関連付けられているリソースの一意識別子。
2 _SubscriptionId レコードが関連付けられているサブスクリプションの一意識別子。
3 ActionName 要求のアクション。
4 Category リクエストを記録したサービス。
5 Identity
リクエストを行ったユーザーに関する情報。
6 LogId 重複除去に使用できるログ メッセージの一意識別子。
7 OperationName login、logout、read、write などのアクション。
8 OperationVersion Databricks 操作ベースの診断ログ形式のスキーマ バージョン。
9 RequestId 一意の要求 ID。
10 RequestParams イベントで使用されるパラメーターのキーと値のペア。
11 Response エラー メッセージ (該当する場合)、結果、statusCode など、要求に対する HTTP 応答。
12 ServiceName
ソース要求のサービス。
13 SessionId
アクションのセッション ID。
14 SourceIPAddress
ソース要求の IP アドレス。
15 TenantId
レコードが関連付けられているテナントの一意の識別子。
16 TimeGenerated
アクションのタイムスタンプ (UTC)。
17 Type
テーブルの名前。
18 UserAgent
要求の実行に使用されるブラウザーまたは API クライアント。

 

5.監視対象のアクション

5.1 ノートブックのアクション

アクション 説明
1 attachNotebook ノートブックがクラスターにアタッチされる
2 cloneNotebook ユーザーがノートブックを複製する
3 createNotebook ノートブックが作成される
4 deleteFolder ノートブック フォルダーが削除される
5 deleteNotebook ノートブックが削除される
6 detachNotebook ノートブックがクラスターからデタッチされる
7 downloadLargeResults ユーザーがノートブックに表示するには大きすぎるクエリ結果をダウンロードする
8 downloadPreviewResults ユーザーがクエリ結果をダウンロードする
9 importNotebook ユーザーがノートブックをインポートする
10 moveFolder ノートブック フォルダーがある場所から別の場所に移動される
11 moveNotebook ノートブックがある場所から別の場所に移動される
12 renameNotebook ノートブックの名前が変更される
13 restoreFolder 削除されたフォルダーが復元される
14 restoreNotebook 削除されたノートブックが復元される
15 runCommand 詳細監査ログが有効になっているときに使用可能。 Databricks がノートブックでコマンドを実行した後に出力されます。 コマンドは、ノートブック内のセルに対応します。
16 takeNotebookSnapshot ジョブ サービスまたは MLflow の実行時にノートブック スナップショットが作成される

5.2 クラスタのアクション

アクション 説明
1 changeClusterAcl ユーザーがクラスター ACl を変更する
2 create ユーザーがクラスターを作成する
3 createResult クラスターの作成の結果。 create と連動。
4 delete クラスターが終了される
5 deleteResult クラスターの終了の結果。 delete と連動。
6 edit ユーザーがクラスター設定を変更する。 これは、クラスター サイズの変更や自動スケーリングの動作を除くすべての変更をログに記録します。
7 permanentDelete UI からクラスターが削除される
8 resize クラスターがサイズ変更される。 これは、変化する唯一のプロパティがクラスター のサイズまたは自動スケーリングの動作である実行中のクラスターに記録されます。
9 resizeResult クラスターのサイズ変更の結果。 resize と連動。
10 restart ユーザーが実行中のクラスターを再起動する
11 restartResult クラスターの再起動の結果。 restart と連動。
12 start ユーザーがクラスターを起動する
startResult クラスターの起動の結果。 start と連動。

5.3 Unityカタログのアクション

アクション 説明
1 createMetastore アカウント管理者がメタストアを作成する
2 getMetastore アカウント管理者がメタストア ID を要求する
3 getMetastoreSummary アカウント管理者がメタストアに関する詳細を要求する
4 listMetastores アカウント管理者がアカウント内のすべてのメタストアの一覧を要求する
5 updateMetastores アカウント管理者がメタストアを更新する
6 deleteMetastore アカウント管理者がメタストアを削除する
7 createMetastore アカウント管理者がメタストアを作成する
8 updateMetastoreAssignment アカウント管理者がメタストアのワークスペース割り当てを更新する
9 createExternalLocation アカウント管理者が外部の場所を作成する
10 getExternalLocation アカウント管理者が外部の場所に関する詳細を要求する
11 listExternalLocations アカウント管理者がアカウント内のすべての外部の場所の一覧を要求する
12 updateExternalLocation アカウント管理者が外部の場所を更新する
13 deleteExternalLocation アカウント管理者が外部の場所を削除する
14 createCatalog ユーザーがカタログを作成する
15 deleteCatalog ユーザーがカタログを削除する
16 getCatalog ユーザーがカタログに関する詳細を要求する
17 updateCatalog ユーザーがカタログを更新する
18 listCatalog ユーザーがメタストア内のすべてのカタログを一覧表示する呼び出しを行う
19 createSchema ユーザーがスキーマを作成する
20 deleteSchema ユーザーがスキーマを削除する
21 getSchema ユーザーがスキーマに関する詳細を要求する
22 listSchema ユーザーがカタログ内のすべてのスキーマの一覧を要求する
23 updateSchema ユーザーがスキーマを更新する
24 createTable ユーザーがテーブルを作成する
25 deleteTable ユーザーがテーブルを削除する
26 getTable ユーザーがテーブルに関する詳細を要求する
27 listTables ユーザーがスキーマ内のすべてのテーブルを一覧表示する呼び出しを行う
28 listTableSummaries ユーザーがメタストア内のスキーマとカタログについてのテーブルのまとめの配列を取得する。
29 updateTables ユーザーがテーブルを更新する
30 createStorageCredential アカウント管理者がストレージ資格情報を作成する
31 listStorageCredentials アカウント管理者がアカウント内のすべてのストレージ資格情報を一覧表示する呼び出しを行う
32 getStorageCredential アカウント管理者がストレージ資格情報に関する詳細を要求する
33 updateStorageCredential アカウント管理者がストレージ資格情報を更新する
34 deleteStorageCredential アカウント管理者がストレージ資格情報を削除する
35 generateTemporaryTableCredential テーブルに対して一時的な資格情報が付与されるたびにログに記録されます。 このイベントを使用して誰が何をいつクエリしたかを判断できます。
36 generateTemporaryPathCredential パスに対して一時的な資格情報が付与されるたびにログに記録されます。
37 getPermissions ユーザーがセキュリティ保護可能なオブジェクトのアクセス許可の詳細を取得する呼び出しを行う
38 updatePermissions ユーザーがセキュリティ保護可能なオブジェクトのアクセス許可を更新する
39 metadataSnapshot ユーザーが以前のテーブル バージョンのメタデータに対してクエリを実行する
40 metadataAndPermissionsSnapshot ユーザーが以前のテーブル バージョンのメタデータとアクセス許可に対してクエリを実行する
41 updateMetadataSnapshot ユーザーが以前のテーブル バージョンのメタデータを更新する
42 getForeignCredentials ユーザーが外部キーに関する詳細を取得する呼び出しを行う
43 getInformationSchema ユーザーがスキーマに関する詳細を取得する呼び出しを行う
44 createConstraint ユーザーがテーブルの制約を作成する
45 deleteConstraint ユーザーがテーブルの制約を削除する
46 createPipeline ユーザーが Unity Catalog パイプラインを作成する
47 updatePipeline ユーザーが Unity Catalog パイプラインを更新する
48 getPipeline ユーザーが Unity Catalog パイプラインに関する詳細を要求する
49 deletePipeline ユーザーが Unity Catalog パイプラインを削除する
50 deleteResourceFailure リソースの削除に失敗する

5.4 シークレットのアクション

アクション 説明
1 createScope ユーザーがシークレット スコープを作成する
2 deleteAcl ユーザーがシークレット スコープの ACL を削除する
3 deleteScope ユーザーがシークレット スコープを削除する
4 deleteSecret ユーザーがスコープからシークレットを削除する
5 getAcl ユーザーがシークレット スコープの ACL を取得する
6 getSecret ユーザーがスコープからシークレットを取得する
7 listAcls ユーザーがシークレット スコープの ACL を一覧表示する呼び出しを行う
8 listScopes ユーザーがシークレット スコープを一覧表示する呼び出しを行う
9 listSecrets ユーザーがスコープ内のシークレットを一覧表示する呼び出しを行う
10 putAcl ユーザーがシークレット スコープの ACL を変更する
11 putSecret ユーザーがスコープ内でシークレットを追加または編集する

5.5 シークレットのアクション

アクション 説明
1 addBlock ユーザーがデータ ブロックをストリームに追加する。 これは dbfs/create と組み合わせて使用され、DBFS にデータをストリーミングします。
2 create ユーザーがストリームを開いて、DBFS にファイルを書き込む
3 delete ユーザーが DBFS からファイルまたはディレクトリを削除する
4 mkdirs ユーザーが新しい DBFS ディレクトリを作成する
5 move ユーザーが DBFS 内のある場所から別の場所にファイルを移動する
6 put ユーザーがマルチパート フォーム ポストを使用して DBFS にファイルをアップロードする
7 mount ユーザーが特定の DBFS の場所にマウント ポイントを作成する
8 unmount ユーザーが特定の DBFS の場所にあるマウント ポイントを削除する

5.6 アカウントのアクション

アクション 説明
1 aadBrowserLogin ユーザーが AAD トークンを使用して Databricks にログインする
2 aadTokenLogin ユーザーが AAD ブラウザー ワークフロー経由で Databricks にログインする
3 accountInHouseOAuthClientAuthentication OAuth クライアントが認証される
4 activateUser 管理者が Azure portal から Databricks アカウントにユーザーを追加する
5 add ユーザーが認証にユーザー名とパスワードを使用して Azure Databricks アカウントに追加される
6 addPrincipalToGroup ユーザーがグループに追加される
7 changeDatabricksSqlAcl ユーザーの Databricks SQL アクセス許可が変更される
8 changeDatabricksWorkspaceAcl ワークスペースへのアクセス許可が変更される
9 changeDbTokenAcl トークンに対するアクセス許可が変更されるとき
10 changeServicePrincipalAcls サービス プリンシパルのアクセス許可が変更されるとき
11 createGroup グループが作成される
12 createIpAccessList IP アクセス リストがワークスペースに追加される
13 delete ユーザーが Azure Databricks アカウントから削除される
14 deleteIpAccessList IP アクセス リストがワークスペースから削除される
15 garbageCollectDbToken ユーザーが期限切れのトークンに対してガベージ コレクト コマンドを実行する
16 generateDbToken [ユーザー設定] からトークンを生成するとき、またはサービスがトークンを生成するとき
17 IpAccessDenied ユーザーが拒否された IP 経由でサービスへの接続を試みる
18 ipAccessListQuotaExceeded
19 jwtLogin ユーザーが JWt を使用して Databricks にログインする
20 login ユーザーがワークスペースにログインする
21 logout ユーザーがワークスペースからログアウトする
22 oidcTokenAuthorization 汎用 OIDC/OAuth トークン経由で API 呼び出しが承認されるとき
23 passwordVerifyAuthentication
24 reachMaxQuotaDbToken 期限切れでないトークンの現在の数がトークン クォータを超えるとき
25 removeAdmin ユーザーが管理者のアクセス許可を取り消される
26 removeGroup グループがアカウントから削除される
27 removePrincipalFromGroup ユーザーがグループから削除される
28 revokeDbToken
29 setAdmin ユーザーに管理者アクセス許可が付与される
30 tokenLogin ユーザーがトークンを使用して Databricks にログインする
31 updateIpAccessList IP アクセス リストが変更される
32 updateUser Azure portal 経由で Azure Databricks ユーザーに変更が加えられる

5.7 Genieのアクション

1 アクション 説明
2 databricksAccess Databricks の担当者が顧客環境へのアクセスを承認される

5.8 SSHのアクション

アクション 説明
1 login Spark ドライバーへの SSH のエージェント ログイン
2 logout Spark ドライバーからの SSH のエージェント ログアウト

6.まとめ

Databricksで診断ログを保存する方法について説明しました。

今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。

日商エレクトロニクスでは、Azure Databricksの環境構築パッケージを用意しています。

Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!

・Azure Databricks連載シリーズはこちら

お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら


 

この記事を書いた人

quanna