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.
info

Dấu hiệu

Biến tuỳ chỉnh được tạo bằng chính sách Trình thu thập số liệu thống kê không xuất hiện trong mục Phương diện tuỳ chỉnh trong Báo cáo tuỳ chỉnh của Analytics trong Giao diện người dùng Edge mới.

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 từng tổ hợp tổ chức/môi trường mà đường dẫn bị thiếu:

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ể dẫn đến vấn đề này

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

Nguyên nhân: Đường dẫn thuộc tính ZooKeeper bị thiếu đối với tổ hợp tổ chức và môi trường

Chẩn đoán

Analytics được bật cho tổ hợp tổ chức-môi trường thông qua API Bật tính năng phân tích, API này sẽ điền /organizations//environments//properties vào cây ZooKeeper. Khi API này không thành công, thành phần edge-postgres-server không thể tạo phương diện tuỳ chỉnh và lỗi sau đây 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

Thông thường, điều này xảy ra khi một tổ chức được tích hợp vào thời điểm có nhiều nhóm phân tích sử dụng cùng một UUID postgres-server. Để kiểm tra số lượng nhóm phân tích hiện có, 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ì đây rất có thể là nguyên nhân gây ra vấn đề. Trong ví dụ sau, hãy lưu ý rằng có 2 nhóm, chỉ phân biệt bằng dấu gạch nối: axgroup-001 và axgroup001

[ {
  "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 đề này xảy ra nếu UUID postgres-server được định cấu hình cho mỗi axgroup là giống nhau. Bạn có thể xác định nhanh chóng bằng cách chạy lệ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 nhanh chóng so sánh các UUID postgres-server để xác định rằng 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 tập hợp máy chủ PostgreSQL cho 2 axgroup. Cách giải quyết nhanh nhất là xoá thông tin máy chủ postgres khỏi một axgroup và chỉ định tất cả phạm vi (tổ hợp tổ chức, môi trường) cho nhóm còn lại. Để thực hiện việc này, hãy làm theo các bước sau:

  1. Xoá các thành phần máy chủ postgres khỏi một trong 2 axgroup bằng hướng dẫn trong bài viết Thêm và xoá các thành phần phân tích trong nhóm phân tích. Nếu bạn chỉ gặp vấn đề với các phạm vi không phải là phạm vi sản xuất, hãy chọn axgroup nào KHÔNG có phạm vi sản xuất nào cho bài tập này. Nếu không, hãy chọn axgroup có số lượng phạm vi ít nhất.
  2. Xoá tất cả phạm vi khỏi axgroup không còn máy chủ postgres nào và những phạm vi mà bạn đang gặp vấn đề về phương diện tuỳ chỉnh khỏi axgroup của chúng. Giả sử axgroup-001 trong ví dụ ở trên là nhóm bạn muốn sử dụng, bạn sẽ phải sử dụng lệnh sau để xoá phạm vi cho tổ chức myorg, và môi trường prod:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Bật tính năng phân tích bằng API Bật tính năng phân tích.
  4. Khởi động lại thành phần edge-postgres-server trên nút chính postgres và tất cả thành phần edge-qpid-server mà bạn có thể đã cài đặt bằ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 mới hay không.

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

Thông tin chẩn đoán cần thu thập

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

  1. edge-postgres-server /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:
    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