將數據分析資料寫入檔案

根據預設,訊息處理器收集的數據分析資料會上傳至 Qpid 和 Postgres 進行處理。屆時您就能在 Edge UI 中查看分析資料。

或者,您也可以設定「訊息處理器」,將分析資料寫入磁碟。再將這些資料上傳到自己的分析系統進行分析。例如,您可以將資料上傳至 Google Cloud BigQuery然後,您可以運用 BigQuery 和 TensorFlow 提供的強大查詢和機器學習功能,執行自己的資料分析作業。

你也可以選擇同時使用這兩種方式。這表示您可以將分析資料上傳至 Qpid/Postgres,並將資料儲存到磁碟。

檔案名稱和位置

根據預設,如果啟用將數據分析資料寫入磁碟檔案的功能,檔案會寫入下列目錄:

/opt/apigee/var/log/edge-message-processor/ax/tmp

Edge 會在 /tmp 下,每隔一分鐘為資料檔案建立新目錄。目錄名稱的格式為:

org~env~yyyyMMddhhmmss

例如:

myorg~prod~20190909163500
myorg~prod~20190909163600

每個目錄都包含 .gz 檔案,內含該間隔內的個別資料檔案。.gz 檔案名稱的格式為:

4DigitRandomHex_StartTime.StartTimePlusInterval_internalHostIP_hostUUID_writer_index.txt.gz

Edge 會根據 uploadToCloud Message Processor 設定屬性的設定,定期將目錄和其中包含的 .gz 檔案從 /tmp 移至下列任一目錄:

  • uploadToCloud = false:已移至「/opt/apigee/var/log/edge-message-processor/ax/staging」的檔案
  • uploadToCloud = true: (預設):檔案移至「/opt/apigee/var/log/edge-message-processor/ax/failed

/staging/failed 目錄將資料解壓縮,取得分析資料檔案。

設定屬性

請使用下列屬性設定訊息處理器,將分析資料寫入磁碟。以下所有屬性皆為選用屬性:

屬性 說明
conf_analytics_analytics.saveToDisk

設為 true 即可設定訊息處理器,將分析資料寫入磁碟檔案。

預設值為 false

conf_analytics_analytics.sendToQueue

設為 true 即可設定訊息處理器將資料上傳至 Qpid/Postgres。 如要停用將數據分析資料寫入 Qpid/Postgres 的功能,請設為 false

預設值為 true

conf_analytics_analytics.baseDataDirectoryPath

指定寫入數據分析資料檔案的基本路徑。

預設值為 /opt/apigee/var/log/edge-message-processor/ax.

conf_analytics_analytics.allocatedDiskSpaceInMBytes

指定分配給數據分析檔案的磁碟空間 (以 MB 為單位)。

預設值為 3072。如果您超出分析資料檔案分配的磁碟空間,訊息處理器會停止儲存分析資料,並在記錄檔中寫入錯誤訊息。

conf_analytics_analytics.uploadToCloud

控管數據分析檔案的最終位置。

  • false:檔案已移至「/opt/apigee/var/log/edge-message-processor/ax/staging
  • true (預設):檔案移至 /opt/apigee/var/log/edge-message-processor/ax/failed

注意:雖然此屬性稱為 uploadToCloud,但系統不會將任何資料上傳到雲端。所有數據分析資料都會保留在安裝位置。

如何設定這些屬性:

  1. 在編輯器中開啟 message-processor.properties 檔案。如果檔案不存在,請建立檔案:

    vi /opt/apigee/customer/application/message-processor.properties
  2. 視需要設定屬性:

    # Enable writing analytics data to disk.
    conf_analytics_analytics.saveToDisk=true
    # Disable writing analytics data to Qpid/Postgres.
    conf_analytics_analytics.sendToQueue=false
    
    # Specify base directory for analytics data files.
    conf_analytics_analytics.baseDataDirectoryPath=/opt/apigee/var/smg
    
    # Set the disk space available for analytics files.
    conf_analytics_analytics.allocatedDiskSpaceInMBytes=3072
    # Move final analytics data to files to the /staging directory.
    conf_analytics_analytics.uploadToCloud=false
  3. 儲存變更。
  4. 確認屬性檔案為「apigee」使用者擁有:

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. axgroup-001 數據分析群組的 consumer-type 屬性值設為 ax

    curl -X POST -H "Content-Type:application/json" \
    "http://ms-ip:8080/v1/analytics/groups/ax/axgroup-001/properties?propName=consumer-type&propValue=ax" \
    -u sysAdminEmail:sysAdminPWord

    數據分析群組的預設名稱為「axgroup-001」。在 Edge 安裝的設定檔中,您可以使用 AXGROUP 屬性來設定分析群組的名稱。如果不確定分析群組的名稱,請在管理伺服器節點中執行下列指令來顯示:

    apigee-adminapi.sh analytics groups list \
      --admin sysAdminEmail --pwd sysAdminPword --host localhost

    這個指令會在 name 欄位中傳回數據分析群組名稱。

  6. 重新啟動訊息處理器:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    重新啟動後,訊息處理器會將分析資料寫入資料檔案。

  7. 針對所有訊息處理器重複執行上述步驟。