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/
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/
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-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 đề 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:
- 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.
- 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'
- Bật Analytics bằng cách sử dụng Bật API Analytics.
- 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
- 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
. - 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:
- 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. - 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"
- 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