Ghi dữ liệu phân tích vào tệp

Theo mặc định, dữ liệu phân tích do Bộ xử lý thông báo thu thập sẽ được tải lên Qpid và Postgres để xử lý. Sau đó, bạn có thể xem dữ liệu phân tích trong giao diện người dùng Edge.

Ngoài ra, bạn có thể định cấu hình Trình xử lý thông báo để ghi dữ liệu phân tích vào ổ đĩa. Sau đó, bạn có thể tải dữ liệu đó lên hệ thống phân tích của riêng mình để phân tích. Ví dụ: bạn có thể tải dữ liệu lên Google Cloud BigQuery. Sau đó, bạn có thể tận dụng các chức năng truy vấn và học máy mạnh mẽ do BigQuery và TensorFlow cung cấp để tự phân tích dữ liệu.

Bạn cũng có thể chọn sử dụng cả hai lựa chọn. Điều đó có nghĩa là bạn có thể tải dữ liệu phân tích lên Qpid/Postgres và cũng có thể lưu dữ liệu vào ổ đĩa.

Tên và vị trí tệp

Theo mặc định, nếu bạn bật tính năng ghi dữ liệu phân tích vào tệp trên ổ đĩa, thì các tệp sẽ được ghi vào thư mục sau:

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

Edge tạo một thư mục mới trong /tmp cho các tệp dữ liệu, cứ sau mỗi phút. Định dạng của tên thư mục là:

org~env~yyyyMMddhhmmss

Ví dụ:

myorg~prod~20190909163500
myorg~prod~20190909163600

Mỗi thư mục chứa một tệp .gz có các tệp dữ liệu riêng lẻ cho khoảng thời gian đó. Định dạng của tên tệp .gz là:

4DigitRandomHex_StartTime.StartTimePlusInterval_internalHostIP_hostUUID_writer_index.txt.gz

Theo định kỳ, Edge sẽ di chuyển thư mục và tệp .gz chứa trong thư mục đó từ /tmp sang một trong các thư mục sau, dựa trên chế độ cài đặt của thuộc tính cấu hình Bộ xử lý thông báo uploadToCloud:

  • uploadToCloud = false: tệp đã được chuyển vào /opt/apigee/var/log/edge-message-processor/ax/staging
  • uploadToCloud = true: (mặc định): tệp được chuyển đến /opt/apigee/var/log/edge-message-processor/ax/failed

Giải nén dữ liệu từ thư mục /staging hoặc /failed để lấy các tệp dữ liệu phân tích.

Thuộc tính cấu hình

Sử dụng các thuộc tính sau để định cấu hình Bộ xử lý thông báo nhằm ghi dữ liệu phân tích vào ổ đĩa. Tất cả các thuộc tính này đều không bắt buộc:

Thuộc tính Mô tả
conf_analytics_analytics.saveToDisk

Đặt thành true để định cấu hình Bộ xử lý thông báo ghi dữ liệu phân tích vào tệp trên ổ đĩa.

Giá trị mặc định là false.

conf_analytics_analytics.sendToQueue

Đặt thành true để định cấu hình Bộ xử lý thông báo tải dữ liệu lên Qpid/Postgres. Đặt thành false để tắt tính năng ghi dữ liệu phân tích vào Qpid/Postgres.

Giá trị mặc định là true.

conf_analytics_analytics.baseDataDirectoryPath

Chỉ định đường dẫn cơ sở nơi các tệp dữ liệu phân tích được ghi.

Giá trị mặc định là /opt/apigee/var/log/edge-message-processor/ax.

conf_analytics_analytics.allocatedDiskSpaceInMBytes

Chỉ định dung lượng ổ đĩa (tính bằng megabyte) được phân bổ cho các tệp phân tích.

Giá trị mặc định là 3072. Nếu bạn vượt quá dung lượng ổ đĩa được phân bổ cho các tệp dữ liệu phân tích, thì Trình xử lý thông báo sẽ ngừng lưu dữ liệu phân tích và ghi thông báo lỗi vào tệp nhật ký.

conf_analytics_analytics.uploadToCloud

Kiểm soát vị trí cuối cùng của các tệp phân tích.

  • false: đã chuyển tệp vào /opt/apigee/var/log/edge-message-processor/ax/staging
  • true (mặc định): tệp được chuyển đến /opt/apigee/var/log/edge-message-processor/ax/failed

Lưu ý: Mặc dù thuộc tính này được gọi là uploadToCloud, nhưng không có dữ liệu nào được tải lên đám mây. Tất cả dữ liệu phân tích vẫn được lưu trữ cục bộ trong bản cài đặt của bạn.

Cách đặt các thuộc tính này:

  1. Mở tệp message-processor.properties trong trình chỉnh sửa. Nếu tệp không tồn tại, hãy tạo tệp:

    vi /opt/apigee/customer/application/message-processor.properties
  2. Đặt các thuộc tính như mong muốn:

    # 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. Lưu thay đổi.
  4. Đảm bảo tệp thuộc tính thuộc sở hữu của người dùng "apigee":

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Đặt giá trị của thuộc tính consumer-type thành ax cho nhóm phân tích axgroup-001:

    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

    Theo mặc định, tên của nhóm số liệu phân tích là axgroup-001. Trong tệp cấu hình cho một bản cài đặt Edge, bạn có thể đặt tên cho nhóm phân tích bằng cách sử dụng thuộc tính AXGROUP. Nếu bạn không chắc chắn về tên của nhóm phân tích, hãy chạy lệnh sau trên nút Máy chủ quản lý để hiển thị tên đó:

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

    Lệnh này trả về tên nhóm Analytics trong trường name.

  6. Khởi động lại Bộ xử lý thông báo:

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

    Sau khi khởi động lại, Bộ xử lý thông báo sẽ ghi dữ liệu phân tích vào tệp dữ liệu.

  7. Lặp lại các bước này cho tất cả Bộ xử lý thông báo.