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 tuỳ chỉnh được tạo bằng chính sách về Trình thu thập thống kê sẽ không xuất hiện trong Phương diện tuỳ chỉnh của Báo cáo tuỳ chỉnh của Analytics trên giao diện người dùng Edge.

Thông báo lỗi

Nhật ký hệ thống Edge-postgres-server sẽ có lỗi sau đây sau khi khởi động lại cho từng tổ hợp 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 Nội dung mô tả Hướng dẫn khắc phục sự cố có thể áp dụng cho
Thiếu đường dẫn thuộc tính của trình giữ chỗ cho tổ chức và môi trường. Bạn không thể tạo phương diện tuỳ chỉnh khi thiếu đường dẫn ZooKeeper /organizations//environments//properties. Người dùng đám mây riêng tư ở Edge

Nguyên nhân: Thiếu đường dẫn thuộc tính của ZooKeeper cho tổ hợp 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 Bật API phân tích. API này sẽ điền /organizations//environments//properties trong cây ZooKeeper. Khi API này không thành công, thành phần cạnh-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 đã tham gia tại thời điểm tồn tại nhiều nhóm phân tích sử dụng cùng các mã nhận dạng duy nhất (UUID) postgres-server. Để kiểm tra xem có bao nhiêu nhóm phân tích, 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ể 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-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 đề sẽ xảy ra nếu UUID của postgres-server được định cấu hình cho mỗi axgroup giống nhau. Cách nhanh chóng để xác định điều này là 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 của postgres-server để xác định rằng các mã này 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 các máy chủ PostgreSQL cho hai axgroups. Cách nhanh nhất để giải quyết là xoá thông tin máy chủ Postgres khỏi một nhóm axgroup và chỉ định tất cả các phạm vi (tổ hợp, kết hợp 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 hai axgroups bằng cách làm theo 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 đề liên quan đến phạm vi không phát hành công khai, hãy chọn nhóm axgroup KHÔNG có phạm vi phát hành công khai cho bài tập này. Nếu không, hãy chọn nhóm axgroup có số phạm vi ít nhất.
  2. Xóa tất cả các phạm vi khỏi nhóm axgroup không còn có bất kỳ máy chủ Postgres nào và những phạm vi mà bạn đang gặp vấn đề về thứ nguyên tùy chỉnh khỏi nhóm axgroup. 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 mã 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 dữ liệu phân tích bằng cách sử dụng Bật API phân tích.
  4. Khởi động lại thành phần Edge-postgres-server trên nút chính của Postgres và tất cả cá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ý /opt/apigee/var/log/edge-postgres-server/logs/system.log của máy chủ Postgres.
  6. Xác nhận xem 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 mục 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 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 Nhóm hỗ trợ Apigee:

  1. Edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log 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