Thứ nguyên tùy chỉnh không xuất hiện khi bạn đã định cấu hình nhiều nhóm

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Triệu chứng

Biến tùy chỉnh được tạo bằng Trình thu thập số liệu thống kê không hiển thị trong Thứ nguyên tùy chỉnh trong Báo cáo tùy chỉnh Analytics trong Giao diện người dùng Edge.

Thông báo Lỗi

Nhật ký hệ thống Edge-postgres-server sẽ gặp lỗi sau đây sau khi khởi động lại cho mỗi lần tổ chức/môi trường bị thiếu đường dẫn:

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

Nguyên nhân có thể xảy ra

Nguyên nhân Mô tả Hướng dẫn khắc phục sự cố áp dụng cho
Thiếu đường dẫn thuộc tính của Zookeeper để kết hợp tổ chức và môi trường. Khi đường dẫn ZooKeeper /organizations//environments//properties bị thiếu nên không thể tạo phương diện tuỳ chỉnh. Người dùng dịch vụ đám mây riêng tư của Edge

Nguyên nhân: Thiếu đường dẫn thuộc tính ZooKeeper để kết hợp tổ chức và môi trường

Chẩn đoán

Analytics được bật cho tổ hợp môi trường-tổ chức thông qua Bật API Analytics để điền sẵn /organizations//environments//properties trong cây ZooKeeper. Khi API này bị lỗi, thành phần Edge-postgres-server sẽ không thể tạo phương diện tuỳ chỉnh và lỗi sau sẽ xuất hiện trong system.log:

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

Trường hợp này thường xảy ra khi một tổ chức tham gia cùng lúc có nhiều hơn một nhóm số liệu phân tích đã tồn tại sử dụng cùng một mã nhận dạng duy nhất (UUID) của máy chủ postgres-server. Để kiểm tra số liệu phân tích nhóm đã tồn tại, hãy chạy lệnh gọi API sau:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

Nếu API này trả về nhiều nhóm, thì rất có thể đây là nguyên nhân của vấn đề. Trong ví dụ sau, lưu ý rằng có hai nhóm tồn tại, được phân biệt chỉ bằng dấu gạch nối: axgroup-001axgroup001

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

Cụ thể, vấn đề xảy ra nếu UUID của máy chủ postgres được định cấu hình cho mỗi axgroup vẫn giống nhau. Một cách nhanh chóng để xác định điều này là chạy như sau:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

Kết quả mẫu sau đây so sánh nhanh các UUID của máy chủ postgres để xác định chúng giống nhau:

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

Độ phân giải

Bạn không thể chỉ định cùng một nhóm máy chủ PostgreSQL cho 2 nhóm trục. Cách nhanh nhất để giải quyết là xóa thông tin máy chủ postgres khỏi một nhóm axgroup và chỉ định tất cả phạm vi (kết hợp tổ chức, môi trường) cho nhóm khác. Để thực hiện việc này, hãy làm theo các bước sau:

  1. Xóa các thành phần máy chủ postgres khỏi một trong hai nhóm axgroups bằng cách làm theo hướng dẫn vào lúc Thêm và xoá các thành phần Analytics trong các nhóm Analytics. Nếu bạn chỉ gặp vấn đề với phạm vi không liên quan đến sản xuất, hãy chọn nhóm axgroup KHÔNG có phạm vi sản xuất cho bài tập này. Nếu không, hãy chọn nhóm axgroup có số phạm vi tối thiểu.
  2. Xoá tất cả các phạm vi khỏi axgroup không còn máy chủ Postgres nào và các phạm vi đó mà bạn đang gặp vấn đề về phương diện tuỳ chỉnh trong nhóm axgroup. Theo giả định axgroup-001 trong ví dụ trên là nhóm bạn muốn sử dụng, phải dùng lệnh sau để xoá phạm vi cho tổ chức myorg, và môi trường chính thức:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Bật Analytics bằng cách sử dụng Bật API Analytics.
  4. Khởi động lại thành phần cạnh-postgres-server trên nút chính của postgres và tất cả cạnh-qpid-server mà bạn có thể đã cài đặt, bằng cách sử dụng các lệnh sau:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Xác minh rằng lỗi được cung cấp trong phần Thông báo lỗi ở trên không còn xảy ra trong tệp nhật ký của máy chủ Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log.
  6. Xác nhận xem các phương diện tuỳ chỉnh có xuất hiện trong giao diện người dùng Edge hay không.

Nếu vấn đề vẫn tiếp diễn, hãy chuyển đến phần Phải thu thập thông tin chẩn đoán.

Phải thu thập thông tin chẩn đoán

Nếu vấn đề vẫn tiếp diễn ngay cả sau khi đã làm theo các hướng dẫn trước đó, vui lòng thu thập thông tin chẩn đoán sau đây. Hãy liên hệ và chia sẻ thông tin đó với Bộ phận hỗ trợ Apigee Edge:

  1. Máy chủ Edge-postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log kể từ thời điểm khởi động lại gần đây nhất.
  2. Kết quả của lệnh gọi API Quản lý sau đây:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. Kết quả của cây ZooKeeper thu được bằng lệnh sau:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt