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.
Truy cập vào tài liệu Apigee X.
thông tin

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.

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 mỗi 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
Thiếu đường dẫn thuộc tính Zookeeper cho 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: Thiếu đường dẫn thuộc tính ZooKeeper cho tổ hợp tổ chức và môi trường

Chẩn đoán

Analytics được bật cho một tổ chức kết hợp với môi trường thông qua API Bật tính năng phân tích. API này sẽ điền sẵn /organizations//environments//properties vào cây ZooKeeper. Khi API này gặp lỗi, 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 tham gia 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ì rất có thể đây 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 ngang: 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 đề này xảy ra nếu UUID postgres-server được định cấu hình cho mỗi axgroup là giống nhau. Một 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"

Đầu ra mẫu sau đây nhanh chóng so sánh UUID của postgres-server để xác định xem chúng có giống nhau hay không:

{  "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 hai axgroup. Cách nhanh nhất để giải quyết vấn đề là xoá thông tin máy chủ postgres khỏi một axgroup và chỉ định tất cả các phạm vi (tổ chức, các 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 axgroup bằng cách làm theo hướng dẫn tại 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 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ó ít phạm vi nhất.
  2. Xoá tất cả cá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 mà bạn muốn sử dụng, bạn sẽ phải dùng nhó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 tính năng 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 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 xuất hiện trong tệp nhật ký /opt/apigee/var/log/edge-postgres-server/logs/system.log của máy chủ Postgres nữa.
  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 Thông tin chẩn đoán bắt buộc.

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 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ẻ các thông tin đó với Nhóm hỗ trợ Apigee Edge:

  1. /opt/apigee/var/log/edge-postgres-server/logs/system.logedge-postgres-server kể từ lần 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. Đầu ra của cây ZooKeeper thu được bằng lệnh sau:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt