升級 vRealize Business for Cloud後,成本計算可能會失敗。

問題

有時,Azure 端點的成本計算在vRealize Business for Cloud升級後可能會失敗。您可能會在伺服器記錄中看到 Multiple entries with same key 錯誤訊息。

原因

由於在升級後於 FactsRepo 詳細目錄服務中建立了重複的項目,因此會出現此問題。

解決方案

  1. 使用系統管理員認證登入 vRealize Business for Cloud
  2. 輸入下列命令以啟動 Postgres 用戶端。

    /usr/ITFM-Cloud/va-tools/bin/db-client.sh

  3. 在 Postgres 用戶端中輸入下列命令。

    delete from itfm_azure_resource_details where id in (select itfm_azure_resource_details.id from (select resource_id, month, count(*) from itfm_azure_resource_details group by resource_id, month having count(*)>1 ) as new_details inner join itfm_azure_resource_details on itfm_azure_resource_details.resource_id=new_details.resource_id and itfm_azure_resource_details.month=new_details.month);

  4. 輸入下列命令以結束 Postgres 用戶端。

    \q

  5. 輸入下列命令以登入 MongoDB。

    mongo

  6. 輸入下列命令。

    use fr_system

  7. 若要從 Azure 資源集合取得重複項目,請輸入下列查詢。

    db.getCollection('azureResource').aggregate([{$group: { _id: { resourceId:"$resourceId" }, count: { $sum: 1 } }},{$match : {count: {$gte :2}}}]);

  8. 將輸出複製到文字檔。

    輸出包含 resourceIdcount 資訊兩個資料行。

  9. 透過為每個項目輸入一次下列命令,分別移除每個重複的項目。

    db.azureResource.deleteMany({'resourceId':'<resourceIdFromQuery>'});

    對於您複製到文字檔的輸出中的每個項目,必須將 <resourceIdFromQuery> 取代為 resourceId

  10. 若要結束 MongoDB,請按下列按鍵組合。

    Ctrl+c