交付和訪問計費使用日誌

預覽

這個特性是在公共預覽

作為一個磚帳戶所有者或賬戶管理,您可以配置日常交付計費使用CSV文件格式的日誌一個AWS S3存儲桶,在那裏你可以使可用的數據使用情況分析。磚為每個工作空間提供一個單獨的CSV文件在您的帳戶。這個CSV文件包含曆史數據對工作空間的集群使用磚單位(DBUs),由集群ID,可分類的賬單SKU,集群的創造者,集群標簽,等等。每個CSV文件列的描述,請參閱CSV文件模式

使用一個API下載計費使用日誌沒有配置日誌交付,明白了使用帳戶API下載計費使用日誌

如果你的帳戶在E2版本的平台上,賬戶所有者和賬戶管理員可以查看使用在圖或表的形式Beplay体育安卓版本對E2在賬戶控製台中使用頁麵。這個頁麵還包括DBUs使用圖表顯示賬戶使用,按工作負載類型分組,並允許您直接下載使用CSV格式的數據。

請注意

所有新磚帳戶和大多數現有的帳戶現在E2。如果你不確定該帳戶類型,請聯係您的磚的代表。

如果你的帳號在另一個版本的平台,賬戶擁有者可以查看使用的Beplay体育安卓版本遺產賬戶控製台選項卡的使用概況

你可以提供日誌一個AWS帳戶以外的其他帳戶用於創建日誌交付我的角色。這允許靈活性,例如從多個AWS帳戶設置工作區提供同樣的S3 bucket。這個選項需要配置一個S3 bucket政策,引用一個cross-account我的角色。指令和策略是本文中提供的模板。

賬戶所有者和賬戶管理訪問日誌取決於你如何設置S3 bucket。磚提供日誌與AWS的內置S3 bucketBucketOwnerFullControl ACL罐頭所以賬戶所有者和委派可以直接下載日誌。支持桶所有權為新創建的對象,您必須設置你的桶S3對象所有權設置的值桶業主首選

重要的

如果你設置你的桶S3對象所有權設置為對象的作家新對象,如仍屬於你的日誌上傳賬戶,這是默認情況下我指定角色創建和訪問你的桶。這可能很難訪問日誌,因為你無法訪問它們的AWS控製台或自動化工具,你用作為桶所有者身份驗證。

磚建議你複習安全最佳實踐為S3為指導保護桶中的數據免受不必要的訪問。

配置選項

配置計費使用日誌時交付,你有以下選項是否在您的帳戶E2版本的平台Beplay体育安卓版本:

  • 共享相同的配置(日誌交付S3 bucket和我角色)所有工作區帳戶。這是默認的。

  • 使用單獨的帳戶配置為每個工作區。

  • 使用單獨的配置不同組的工作空間,每個共享配置。

如果你創建工作區並沒有使用賬戶API賬戶控製台E2賬戶每帳戶,你可以隻有一個工作區。因此,你必須為每個帳戶創建獨特的存儲和證書配置對象,但是你可以重用一個S3 bucket或我這些配置對象之間的作用。

請注意

即使您使用賬戶API配置日誌,您可以配置日誌與任何工作區交付,包括工作空間沒有使用帳戶創建的API。

高級流

高級的計費使用日誌交付:

  1. 配置存儲:在AWS,創建一個新的AWS S3 bucket。使用磚API, API調用帳戶創建一個存儲配置對象,使用bucket名稱。

    請注意

    提供日誌一個AWS帳戶以外的賬戶用於日誌交付我創建的角色,您需要添加一個S3 bucket的政策。你不添加政策在這一步中,但在後麵的。

  2. 配置的憑證:在AWS,創建合適的AWS我的角色。使用磚API, API調用帳戶創建一個憑證配置對象,使用我的角色的攻擊。角色策略可以指定一個路徑前綴日誌交付S3 bucket中。你可以選擇來定義我的角色包括多個路徑前綴如果你想記錄交付配置不同的工作區分享S3 bucket,但使用不同的路徑前綴。

  3. 可選cross-account支持提供日誌的AWS帳戶以外的帳戶我的角色創建日誌交付時,添加一個S3 bucket的政策。這個策略引用id cross-account我您在前麵步驟中創建的角色。

  4. 調用日誌API:調用API來創建一個日誌傳送配置,使用憑證和存儲配置對象從以前的步驟。這個步驟允許您指定如果你想把日誌傳送配置整個賬戶(當前和未來的工作空間)或一組特定的工作區。

  5. 訪問CSV文件進行分析:交貨地點< bucket名> / <前綴> / billable-usage / csv /,在那裏<前綴>是可選的傳遞路徑前綴的名字在日誌傳送配置設置。文件命名workspaceId = < workspace-id > -usageMonth = <月> . csv。文件由覆蓋日常交付月的CSV文件為每個工作區。你可以將這些數據導入數據磚進行分析。還有一個樣品的筆記本,你可以使用它來運行使用儀表板分析基於這些CSV文件。看到分析使用數據在數據磚

重要的

日誌的數量有一個限製交付配置,您可以創建一個帳戶。您可以創建最多兩個啟用配置使用帳戶級別(沒有空間濾波器)和兩個配置為每一個特定的工作區(啟用workspaceId可能出現在工作區中兩個配置的過濾器)。你不能刪除日誌傳送配置,但是你可以禁用它。你可以重新啟用禁用配置,但請求失敗,如果違反了先前描述的限製。

需求

  • 賬戶所有者(或帳戶管理,如果你在一個E2帳戶)的電子郵件地址和密碼進行身份驗證的api。

    電子郵件地址和密碼都是區分大小寫的。

  • 帳戶ID。

    賬戶的E2版本的平台,讓您的帳戶ID的用戶配置文件下拉Beplay体育安卓版本賬戶控製台。non-E2賬戶,您的賬戶ID從賬戶控製台使用選項卡概述。聯係你的磚代表如果你不能找到你的帳戶ID。

api如何驗證

本文中描述的api上發表accounts.cloud.www.eheci.com所有AWS基礎端點區域部署。

使用下麵的基URL API請求:https://accounts.cloud.www.eheci.com/api/2.0/

該REST API需要HTTP基本身份驗證,包括設置HTTP頭授權。在這篇文章中,用戶名是指你的帳戶所有者(或賬戶管理,如果你是在一個E2帳戶)的電子郵件地址。電子郵件地址是區分大小寫的。有幾種方法可以為工具,如旋度提供您的憑據。

  • 通過用戶名和帳號密碼分別在每個請求的頭<用戶名>:<密碼>語法。

    例如:

    curl - x - u得到<用戶名>:<密碼>- h“application / json內容類型:\“https://accounts.cloud.www.eheci.com/api/2.0/accounts/ <帳戶id > / <端點>”
  • base64編碼應用到您的<用戶名>:<密碼>字符串並提供直接的HTTP頭:

    curl - x - h得到“application / json內容類型:\- h“基本授權:< base64-username-pw >”“https://accounts.cloud.www.eheci.com/api/2.0/accounts/ <帳戶id > / <端點>”
  • 創建一個. netrc文件,,登錄,密碼屬性:

    機器accounts.cloud.www.eheci.com登錄<用戶名>密碼<密碼>

    來調用. netrc文件,使用- n在你的旋度命令:

    curl - n - x得到“https://accounts.cloud.www.eheci.com/api/2.0/accounts/ <帳戶id > /工作區”

    本文的示例使用這種身份驗證方式。

完整的API參考,請參閱賬戶API 2.0

步驟1:配置存儲

磚提供計費使用數據的S3 bucket您的帳戶。您可以配置多個工作區使用一個S3 bucket,或者您可以定義不同的工作區(或工作區組)使用不同的桶。

這個過程描述了如何設置一個配置對象與一個共同的賬戶配置一個或多個工作區。使用不同的存儲位置不同的工作區,對每個工作區重複本文中的程序或一組工作區。

  1. 創建S3 bucket,下麵的指令AWS存儲配置

    重要的

    提供日誌另一個AWS帳戶用於磚工作區,您必須添加一個S3 bucket的政策。你不添加桶政策在這一步。看到步驟3:可選cross-account支持

  2. 創建一個代表你的磚存儲配置記錄新的S3 bucket。指定您的S3 bucket通過調用創建新存儲配置API(帖子/賬戶/ <帳戶id > /存儲配置)。

    通過以下幾點:

    • storage_configuration_name——新的獨特的存儲配置名稱。

    • root_bucket_info——一個包含一個JSON對象bucket_name字段包含您的S3 bucket名稱。

    複製storage_configuration_id在響應中返回值。您將使用它來創建日誌傳送配置在後麵的步驟。

    例如:

    curl - x - n後\“https://accounts.cloud.www.eheci.com/api/2.0/accounts/ < databricks-account-id > /存儲配置”\- d”{:“storage_configuration_name databricks-workspace-storageconf-v1”," root_bucket_info ": {:“bucket_name my-company-example-bucket”}}'

    回應:

    {“storage_configuration_id”:“< databricks-storage-config-id >”,“account_id”:“< databricks-account-id >”,“root_bucket_info”:{“bucket_name”:“my-company-example-bucket”},“storage_configuration_name”:“databricks-workspace-storageconf-v1”,“creation_time”:1579754875555}

步驟2:配置憑證

這個過程描述了如何設置一個配置對象與一個共同的賬戶配置一個或多個工作區。為不同的工作區使用不同的憑證,對每個工作區重複本文中的程序或一組工作區。

請注意

使用不同的S3 bucket名稱,您需要創建單獨的我的角色。

  1. 登錄你的AWS控製台作為用戶與管理員權限和去服務。

  2. 單擊角色在側邊欄選項卡。

  3. 點擊創建角色

    1. 選擇類型的信任的實體,點擊AWS服務

    2. 常見用例,點擊EC2

    3. 單擊下一個:權限按鈕。

    4. 單擊下一個:標簽按鈕。

    5. 單擊下一個:審查按鈕。

    6. 角色名字段中,輸入角色名稱。

      角色名
    7. 點擊創建角色。角色的列表顯示。

  4. 在角色列表中,點擊創建的角色。

  5. 添加一個內嵌的政策。

    1. 的權限選項卡上,單擊添加內嵌策略

      內聯政策
    2. 在策略編輯器中,單擊JSON選項卡。

      JSON編輯器
    3. 複製這個訪問政策和修改它。替換以下值的政策用您自己的配置值:

      • < s3-bucket-name >:你的桶的名字AWS S3 bucket。

      • < s3-bucket-path-prefix >(可選):交貨地點的路徑在S3 bucket。如果未指定的,日誌送到桶的根源。這條路必須匹配delivery_path_prefix爭論時調用日誌API

      {“版本”:“2012-10-17”,“聲明”:【{“效應”:“允許”,“行動”:【“s3: GetBucketLocation”),“資源”:【“攻擊:aws: s3::: < s3-bucket-name >”]},{“效應”:“允許”,“行動”:【“s3: propertynames”,“s3: GetObject”,“s3: DeleteObject”,“s3: PutObjectAcl”,“s3: AbortMultipartUpload”),“資源”:【“攻擊:aws: s3::: < s3-bucket-name > / < s3-bucket-path-prefix > /”,“攻擊:aws: s3::: < s3-bucket-name > / < s3-bucket-path-prefix > / *”]},{“效應”:“允許”,“行動”:【“s3: ListBucket”,“s3: ListMultipartUploadParts”,“s3: ListBucketMultipartUploads”),“資源”:“攻擊:aws: s3::: < s3-bucket-name >”,“條件”:{“StringLike”:{“s3:前綴”:【“< s3-bucket-path-prefix >”,“< s3-bucket-path-prefix > / *”]}}}]}

      您可以自定義策略使用的路徑前綴:

      • 如果你不想使用桶路徑前綴,刪除< s3-bucket-path-prefix > /(包括最終削減)的政策似乎每次。

      • 如果你想要記錄交付配置不同的工作區分享S3 bucket,但使用不同的路徑前綴,您可以定義我的角色包括多個路徑前綴。有兩個獨立的部分的政策參考< s3-bucket-path-prefix >。在每種情況下,複製兩個相鄰行引用路徑前綴。重複每一對線為每一個新路徑前綴,例如:

      {“資源”:【“攻擊:aws: s3::: < mybucketname > /現場小組/”,“攻擊:aws: s3::: < mybucketname > /現場小組/ *”,“攻擊:aws: s3::: < mybucketname > /財務團隊/”,“攻擊:aws: s3::: < mybucketname > /財務團隊/ *”]}
    4. 點擊審查政策

    5. 的名字字段中,輸入一個政策的名字。

    6. 點擊創建政策

    7. 如果你使用服務控製策略拒絕某些行為在AWS帳戶級別,確保sts: AssumeRole是白名單數據磚可以假設cross-account角色。

  6. 在角色總結頁麵,點擊信任關係選項卡。

  7. 這種訪問政策粘貼到編輯器和策略中以下值替換為您自己的配置值:

    < databricks-account-id >:你的磚帳戶ID。

    {“版本”:“2012-10-17”,“聲明”:【{“效應”:“允許”,“校長”:{“AWS”:“攻擊:aws:我::414351767826:角色/ SaasUsageDeliveryRole-prod-IAMRole-3PLHICCRR1TK”},“行動”:“sts: AssumeRole”,“條件”:{“StringEquals”:{“sts: ExternalId”:【“< databricks-account-id >”]}}}]}
  8. 在總結作用,複製的角色是並將其保存為以後的步驟。

    的角色是
  9. 為你創建一個磚憑證的配置ID AWS的角色。調用創建證書配置API(帖子/賬戶/ <帳戶id > /憑證)。這個請求建立cross-account信任和返回一個引用ID來使用,當你創建一個新的工作區。

    取代<帳戶id >你的磚帳戶ID。請求主體:

    • credentials_name在你的賬戶名稱是獨一無二的。

    • aws_credentials一個對象,該對象包含一個sts_role財產。該對象必須指定role_arn您已經創建了角色。

    身體將包括的響應credentials_id領域,磚憑證的配置ID,您需要創建一個新的工作區。複製這一領域,因此您可以使用它來創建日誌傳送配置在後麵的步驟。

    例如:

    curl - x - n後\“https://accounts.cloud.www.eheci.com/api/2.0/accounts/ < databricks-account-id > /憑證”\- d”{:“credentials_name databricks-credentials-v1”," aws_credentials ": {" sts_role ": {:“role_arn攻擊:aws:我::< aws-account-id >: / my-company-example-role”角色}}}'

    示例響應:

    {“credentials_id”:“< databricks-credentials-id >”,“account_id”:“< databricks-account-id >”,“aws_credentials”:{“sts_role”:{“role_arn”:“攻擊:aws:我::< aws-account-id >: / my-company-example-role”角色,“external_id”:“< databricks-account-id >”}},“credentials_name”:“databricks-credentials-v1”,“creation_time”:1579753556257}

    複製credentials_id場的響應,供以後使用。

步驟3:可選cross-account支持

如果你的S3 bucket是相同的AWS帳戶用於日誌交付我角色,跳過這個步驟。

提供日誌一個AWS帳戶以外的賬戶用於日誌交付我創建的角色,添加如下所示的S3 bucket政策。這個策略引用id cross-account我您在前麵步驟中創建的角色。

  1. 在AWS控製台中,S3服務。

  2. 單擊桶的名字。

  3. 單擊權限選項卡。

  4. 單擊桶的政策按鈕。

    桶政策按鈕
  5. 複製和修改這個桶的政策。

    取代< s3-bucket-name >S3 bucket名稱。取代< customer-iam-role-id >與你的角色ID創建我的角色。取代< s3-bucket-path-prefix >與你想要桶路徑前綴。看到後指出政策樣本信息自定義路徑前綴。

    {“版本”:“2012-10-17”,“聲明”:({“效應”:“允許”,“校長”:{“AWS”:(“攻擊:aws:我::< customer-iam-role-id >”]},“行動”:“s3: GetBucketLocation”,“資源”:“攻擊:aws: s3::: < s3-bucket-name >”},{“效應”:“允許”,“校長”:{“AWS”:“攻擊:aws:我::< customer-iam-role-id >”},“行動”:(“s3: propertynames”,“s3: GetObject”,“s3: DeleteObject”,“s3: PutObjectAcl”,“s3: AbortMultipartUpload”,“s3: ListMultipartUploadParts”),“資源”:(“攻擊:aws: s3::: < s3-bucket-name > / < s3-bucket-path-prefix > /”,“攻擊:aws: s3::: < s3-bucket-name > / < s3-bucket-path-prefix > / *”]},{“效應”:“允許”,“校長”:{“AWS”:“攻擊:aws:我::< customer-iam-role-id >”},“行動”:“s3: ListBucket”,“資源”:“攻擊:aws: s3::: < s3-bucket-name >”,“條件”:{“StringLike”:{“s3:前綴”:(“< s3-bucket-path-prefix >”,“< s3-bucket-path-prefix > / *”]}}}]}

    您可以自定義策略使用的路徑前綴:

    • 如果你不想使用桶路徑前綴,刪除< s3-bucket-path-prefix > /(包括最終削減)的政策似乎每次。

    • 如果你想要記錄交付配置共享相同的S3 bucket多個工作區,但使用不同的路徑前綴,您可以定義我的角色包括多個路徑前綴。兩部分的政策參考< s3-bucket-path-prefix >。在每一個地方,複製兩個相鄰行引用路徑前綴。重複每一對線為每個新路徑前綴。例如:

      {“資源”:【“攻擊:aws: s3::: < mybucketname > /現場小組/”,“攻擊:aws: s3::: < mybucketname > /現場小組/ *”,“攻擊:aws: s3::: < mybucketname > /財務團隊/”,“攻擊:aws: s3::: < mybucketname > /財務團隊/ *”]}

第四步:調用日誌API

配置日誌交付,調用日誌傳送配置API(帖子/賬戶/ <帳戶id > /日誌交付)。

你需要以下值複製在前麵的步驟:

  • credentials_id:你的磚憑據的配置ID,這代表你cross-account憑證作用。

  • storage_configuration_id:你的磚存儲配置ID,代表您的根S3 bucket。

還設置以下字段:

  • log_type:總是設置為BILLABLE_USAGE

  • output_format:總是設置為CSV。CSV文件的格式的詳細信息,請參見下載使用CSV文件

  • delivery_path_prefix(可選):將路徑前綴。這必須匹配路徑前綴用於你的角色的政策。

  • workspace_ids_filter(可選):默認情況下,這個日誌配置適用於所有工作區與您的帳戶相關ID。對於某些類型的部署隻有一個工作區/帳戶ID字段是不必要的。如果你的帳戶創建最初的工作區創建帳戶API,您可能有多個工作區與您的帳戶相關ID。您可以選擇設置這個字段的數組,這個配置適用於工作空間ID。如果你計劃使用不同的日誌交付配置不同的工作區,顯式地設置這個而不是留下空白。如果你離開這個空白和您的帳戶ID關聯與額外的工作區,在未來這個配置也適用於新工作區。一個工作區可能應用於多個日誌傳送配置,在這種情況下,日誌寫入多個位置。

    重要的

    日誌的數量有一個限製交付配置,您可以創建一個帳戶。您可以創建最多兩個啟用配置使用帳戶級別(沒有空間濾波器)和兩個配置為每一個特定的工作區(啟用workspaceId可能出現在工作區中兩個配置的過濾器)。你不能刪除日誌傳送配置,但是你可以禁用它。你可以重新啟用禁用配置,但請求失敗,如果違反了先前描述的限製。

  • delivery_start_time(可選)的月、年日誌開始交付。默認為當前月份。格式是文本YYYY-MM格式。您可以輸入任何從2019 - 03月和年。

例如:

curl - x - n後\“https://accounts.cloud.www.eheci.com/api/2.0/accounts/ < databricks-account-id > /日誌交付”\- d”{" log_delivery_configuration ": {:“log_type BILLABLE_USAGE”,:“config_name計費使用配置”,:“output_format CSV”,“credentials_id”:“< databricks-credentials-id >”,“storage_configuration_id”:“< databricks-storage-config-id >”,“delivery_path_prefix”:“使用數據”,“delivery_start_time”:“2020 - 06年”,“workspace_ids_filter”:(6383650456894062,4102272838062927]}}'

示例響應:

{“log_delivery_configuration”:{“config_id”:“< config-id >”,“config_name”:“計費使用配置”,“log_type”:“BILLABLE_USAGE”,“output_format”:“CSV”,“account_id”:“<帳戶id >”,“credentials_id”:“< databricks-credentials-id >”,“storage_configuration_id”:“< databricks-storage-config-id >”,“workspace_ids_filter”:(6383650456894062,4102272838062927),“delivery_path_prefix”:“使用數據”,“delivery_start_time”:“2020 - 06年”,“狀態”:“啟用”,“creation_time”:1591638409000,“update_time”:1593108904000,“log_delivery_status”:{“狀態”:“創建”,“消息”:“日誌傳送配置成功創建了。地位將被更新後首次交付嚐試。”}}}

附加功能的日誌api

日誌api交付有附加功能。有關詳細信息,請參閱API參考文檔。

額外的操作包括:

日誌傳送配置狀態可以在API中找到響應的log_delivery_status對象。與log_delivery_status,您可以檢查狀態(成功或失敗)和最後一次嚐試和成功交付。

重要的

日誌的數量有一個限製交付配置,您可以創建一個帳戶。您可以創建最多兩個啟用配置使用帳戶級別(沒有空間濾波器)和兩個配置為每一個特定的工作區(啟用workspaceId可能出現在工作區中兩個配置的過濾器)。你不能刪除日誌傳送配置,但是你可以禁用它。你可以重新啟用禁用配置,但請求失敗,如果違反了先前描述的限製。

第五步:訪問日誌文件進行分析

日誌文件送達< bucket名> / <前綴> / billable-usage / csv /,在那裏<前綴>是可選的傳遞路徑前綴的名字在日誌傳送配置設置。文件命名workspaceId = < workspace-id > -usageMonth = <月> . csv。文件由覆蓋日常交付月的CSV文件為每個工作區。

CSV模式,看到CSV文件模式

如何分析這些文件信息使用磚,明白了分析使用數據在數據磚

自動配置使用起程拓殖

您可以使用磚起程拓殖的提供者配置使用日誌發送自動的幫助下databricks_mws_log_delivery資源。這是一個端到端和審計日誌交付使用的例子:

變量={描述“databricks_account_id帳戶ID。你可以讓你的賬戶ID的左下角賬戶控製台。看到https://accounts.cloud.www.eheci.com”}資源”aws_s3_bucket logdelivery”{桶= " $ {var。前綴}-logdelivery”acl = "私人"版本{啟用= false} force_destroy = = true標簽合並(var。標簽,{Name = " $ {var。前綴}-logdelivery "})}資源”aws_s3_bucket_public_access_block logdelivery”{桶= aws_s3_bucket.logdelivery。id ignore_public_acls = true}數據“databricks_aws_assume_role_policy”“logdelivery”{external_id = var.databricks_account_id for_log_delivery = true}資源“aws_iam_role logdelivery“{name = " $ {var。前綴}-logdelivery”描述= " ($ {var.prefix})“assume_role_policy = data.databricks_aws_assume_role_policy.logdelivery UsageDelivery作用。json數據標簽= var.tags}“databricks_aws_bucket_policy”“logdelivery”{full_access_role = aws_iam_role.logdelivery。在攻擊桶= aws_s3_bucket.logdelivery。桶}資源“aws_s3_bucket_policy”“logdelivery”{桶= aws_s3_bucket.logdelivery。id = data.databricks_aws_bucket_policy.logdelivery政策。json資源“databricks_mws_credentials”“log_writer”} {account_id = var.databricks_account_id credentials_name =“交付使用”role_arn = aws_iam_role.logdelivery。在攻擊}資源“databricks_mws_storage_configurations”“log_bucket”{account_id = var.databricks_account_id storage_configuration_name =“使用日誌”bucket_name = aws_s3_bucket.logdelivery。桶}資源“databricks_mws_log_delivery”“usage_logs”{account_id = var.databricks_account_id credentials_id = databricks_mws_credentials.log_writer。credentials_id storage_configuration_id = databricks_mws_storage_configurations.log_bucket。storage_configuration_iddelivery_path_prefix= "billable-usage" config_name = "Usage Logs" log_type = "BILLABLE_USAGE" output_format = "CSV" } resource "databricks_mws_log_delivery" "audit_logs" { account_id = var.databricks_account_id credentials_id = databricks_mws_credentials.log_writer.credentials_id storage_configuration_id = databricks_mws_storage_configurations.log_bucket.storage_configuration_id delivery_path_prefix = "audit-logs" config_name = "Audit Logs" log_type = "AUDIT_LOGS" output_format = "JSON" }