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
Các trang tổng quan về số liệu phân tích (Hiệu suất proxy, Hiệu suất mục tiêu, v.v.) không hiển thị bất kỳ trang tổng quan nào trong giao diện người dùng Edge. Tất cả trang tổng quan đều có thông báo sau:
No traffic in the selected date range
Thông báo lỗi
Vấn đề này không dẫn đến lỗi có thể quan sát được.
Các nguyên nhân có thể
Bảng sau đây liệt kê các nguyên nhân có thể gây ra sự cố này:
Nguyên nhân | Cho |
---|---|
Không có lưu lượng truy cập API cho môi trường tổ chức | Edge cho người dùng Đám mây riêng tư |
Dữ liệu có sẵn trong Cơ sở dữ liệu Postgres, nhưng không hiển thị trong Giao diện người dùng | Edge cho người dùng Đám mây riêng tư |
Dữ liệu Analytics không được đẩy sang Cơ sở dữ liệu Postgres | Edge cho người dùng Đám mây riêng tư |
Triển khai Analytics không chính xác | Edge cho người dùng Đám mây riêng tư |
Mã nhận dạng duy nhất (UUID) đã cũ của máy chủ Analytics | Edge cho người dùng Đám mây riêng tư |
Không có lưu lượng truy cập API cho môi trường tổ chức
Chẩn đoán
- Kiểm tra xem có lưu lượng truy cập cho các proxy API trong môi trường tổ chức cụ thể cho
khoảng thời gian cụ thể mà bạn đang cố gắng xem dữ liệu phân tích bằng một trong
phương thức:
- Bật tính năng theo dõi cho bất kỳ API nào mà người dùng của bạn đang sử dụng và kiểm tra xem bạn có nhận được yêu cầu nào trong dấu vết hay không.
- Xem nhật ký truy cập NGINX
(
/opt/apigee/var/log/edge-router/nginx/logs/access.log)
và xem có mục nhập mới cho Proxy API trong khoảng thời gian cụ thể. - Nếu bạn ghi nhật ký thông tin từ Proxy API vào một máy chủ nhật ký, chẳng hạn như Syslog, Splunk, Loggly, v.v. thì bạn có thể kiểm tra xem có mục nhập nào trong các máy chủ nhật ký này cho các Proxy API cho thời lượng cụ thể.
- Nếu không có lưu lượng truy cập (không có yêu cầu API) trong một khoảng thời gian cụ thể, thì dữ liệu phân tích sẽ không có. Bạn sẽ thấy thông báo "Không có lưu lượng truy cập trong phạm vi ngày đã chọn" trong Analytics bảng điều khiển.
Độ phân giải
- Thực hiện một số lệnh gọi đến một hoặc nhiều proxy API trong môi trường cụ thể của tổ chức.
- Đợi vài giây, sau đó xem trang tổng quan về số liệu phân tích trong thẻ Giờ và xem dữ liệu xuất hiện.
- Nếu vấn đề vẫn tiếp diễn, hãy chuyển sang phần Dữ liệu có trong Postgres Cơ sở dữ liệu, nhưng không hiển thị trong giao diện người dùng.
Dữ liệu có trong Cơ sở dữ liệu Postgres nhưng không hiển thị trong giao diện người dùng
Triệu chứng
Trước tiên, hãy xác định tính sẵn có của dữ liệu Analytics mới nhất trong cơ sở dữ liệu Postgres.
Để kiểm tra xem dữ liệu Analytics mới nhất có sẵn trong Postgres Master hay không nút:
- Đăng nhập vào từng máy chủ Postgres và chạy lệnh sau để xác thực xem bạn có đang
trên nút Chính Postgres:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- Trên nút Chính Postgres, hãy đăng nhập vào PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- Kiểm tra xem bảng có tồn tại cho môi trường tổ chức của bạn hay không bằng cách sử dụng truy vấn SQL sau trong Postgres
cơ sở dữ liệu:
\d analytics."orgname.envname.fact"
- Kiểm tra xem dữ liệu mới nhất có sẵn trong cơ sở dữ liệu Postgres hay không bằng cách sử dụng SQL sau
truy vấn:
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- Nếu dấu thời gian mới nhất là quá cũ (hoặc rỗng), thì điều này cho biết rằng dữ liệu có sẵn trong cơ sở dữ liệu Postgres. Nguyên nhân có thể gây ra vấn đề này là do dữ liệu không được đẩy từ Máy chủ Qpid sang cơ sở dữ liệu Postgres. Tiếp tục đến phần Dữ liệu Analytics không được đẩy sang Cơ sở dữ liệu Postgres.
- Nếu có dữ liệu mới nhất trong cơ sở dữ liệu Postgres trên Nút chính, hãy làm theo các bước bên dưới để chẩn đoán lý do dữ liệu không hiển thị trong giao diện người dùng Edge.
Chẩn đoán
- Bật Công cụ dành cho nhà phát triển
trong trình duyệt Chrome và nhận API được sử dụng từ một trong các trang tổng quan phân tích bằng cách sử dụng
các bước bên dưới:
- Chọn thẻ Mạng trong Công cụ dành cho nhà phát triển.
- Bắt đầu ghi.
- Tải lại trang tổng quan Analytics.
- Trên bảng điều khiển bên trái trong Công cụ dành cho nhà phát triển, hãy chọn hàng có "apiproxy?_optimization...".
- Trên bảng điều khiển bên phải trong Công cụ dành cho nhà phát triển, hãy chọn "Tiêu đề" và lưu ý "URL yêu cầu".
- Dưới đây là kết quả mẫu từ Công cụ cho nhà phát triển:
Kết quả mẫu cho thấy API được dùng trong trang tổng quan Hiệu suất proxy từ thẻ Network trang tổng quan về Hiệu suất proxy cho Công cụ dành cho nhà phát triển
- Chạy trực tiếp lệnh gọi API quản lý rồi kiểm tra xem bạn có nhận được kết quả hay không. Dưới đây là một API mẫu
cho thẻ Ngày trong trang tổng quan Hiệu suất proxy:
curl -u username:password "http://management_server_IP_address:8080/v1/organizations/ org_name/environments/env_name/stats/apiproxy?limit=14400& select=sum(message_count),sum(is_error),avg(total_response_time), avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error), avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+ 18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
- Nếu bạn thấy phản hồi thành công nhưng không có bất kỳ dữ liệu nào, thì tức là Máy chủ quản lý không thể tìm nạp dữ liệu từ máy chủ Postgres do mạng vấn đề về kết nối.
- Kiểm tra xem bạn có thể kết nối với máy chủ Postgres từ Máy chủ quản lý hay không:
telnet Postgres_server_IP_address 5432
- Nếu bạn không thể kết nối với máy chủ Postgres, hãy kiểm tra xem có tường lửa nào không các hạn chế đối với cổng 5432.
- Nếu có hạn chế về tường lửa, thì đó có thể là nguyên nhân khiến Máy chủ quản lý không thể lấy dữ liệu từ máy chủ Postgres.
Độ phân giải
- Nếu có các hạn chế về tường lửa, hãy xoá các hạn chế đó để Máy chủ quản lý có thể giao tiếp với máy chủ Postgres.
- Nếu không có hạn chế về tường lửa, thì vấn đề này có thể là do sự cố mạng.
- Nếu có bất kỳ sự cố mạng nào trên Máy chủ quản lý, thì việc khởi động lại có thể khắc phục vấn đề.
- Khởi động lại từng máy chủ quản lý bằng lệnh bên dưới:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Kiểm tra xem bạn có thể xem dữ liệu phân tích trong giao diện người dùng Edge hay không.
Nếu bạn vẫn không thấy dữ liệu, hãy liên hệ với Bộ phận hỗ trợ Apigee Edge.
Dữ liệu Analytics không được đẩy sang Cơ sở dữ liệu Postgres
Chẩn đoán
Nếu dữ liệu không được đẩy từ Máy chủ Qpid sang Cơ sở dữ liệu Postgres như đã xác định trong phần Dữ liệu có sẵn trong Cơ sở dữ liệu Postgres, nhưng không được hiển thị trong Giao diện người dùng, hãy thực hiện các bước sau:
- Kiểm tra xem từng Máy chủ Qpid có đang hoạt động và đang chạy hay không bằng cách thực thi lệnh bên dưới:
/opt/apigee/bin/apigee-service edge-qpid-server status
- Nếu có Máy chủ Qpid nào ngừng hoạt động, hãy khởi động lại máy chủ đó. Nếu không, hãy chuyển sang bước 5.
/opt/apigee/bin/apigee-service edge-qpid-server restart
- Hãy chờ một thời gian rồi kiểm tra lại xem có dữ liệu mới nhất trong cơ sở dữ liệu Postgres hay không.
- Đăng nhập vào PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- Chạy truy vấn SQL bên dưới để kiểm tra xem có dữ liệu mới nhất hay không:
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- Đăng nhập vào PostgreSQL:
- Nếu có dữ liệu mới nhất, hãy bỏ qua các bước sau và chuyển sang bước cuối cùng trong Cách giải quyết. Nếu không có dữ liệu mới nhất, hãy tiếp tục các bước sau bước.
- Kiểm tra xem thông báo từ hàng đợi của máy chủ Qpid có được đẩy đến cơ sở dữ liệu Postgres hay không.
- Thực thi
qpid-stat -q command
và kiểm tra msgIn và Giá trị cột msgOut. - Dưới đây là kết quả mẫu cho thấy msgIn và msgOut không bằng nhau. Điều này cho biết rằng thông báo không được đẩy từ Máy chủ Qpid sang Cơ sở dữ liệu Postgres.
- Thực thi
- Nếu không khớp trong cột msgIn và msgOut, hãy kiểm tra Qpid
Nhật ký máy chủ
/opt/apigee/var/log/edge-qpid-server/system.log
và xem có bất kỳ lỗi nào. - Bạn có thể thấy các thông báo lỗi như "Có thể PG vẫn không hoạt động" hoặc
"FATAL: rất tiếc, đã có quá nhiều khách hàng" như trong hình bên dưới:
2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (FATAL: sorry, too many clients already)
Điều này có thể xảy ra nếu Máy chủ Postgres đang chạy quá nhiều truy vấn SQL hoặc CPU đang chạy cao và do đó không thể phản hồi Máy chủ Qpid.
Độ phân giải
- Khởi động lại Máy chủ Postgres và PostgreSQL như trình bày dưới đây:
/opt/apigee/bin/apigee-service edge-postgres-server restart
/opt/apigee/bin/apigee-service apigee-postgresql restart
- Quá trình khởi động lại này đảm bảo rằng tất cả truy vấn SQL trước đó đều đã dừng lại và sẽ cho phép các kết nối với cơ sở dữ liệu Postgres.
- Tải lại trang tổng quan Analytics rồi kiểm tra xem dữ liệu Analytics có đang hiển thị hay không.
Nếu sự cố vẫn tiếp diễn, hãy liên hệ với Bộ phận hỗ trợ Apigee Edge.
Triển khai Analytics không chính xác
Chẩn đoán
- Xem trạng thái triển khai Analytics bằng cách sử dụng lệnh gọi API sau:
curl -u user_email:password http://management_server_host:port /v1/organizations/orgname/environments/envname/provisioning/axstatus
- Kiểm tra trạng thái của máy chủ Qpid và Postgres trong kết quả của lệnh gọi API.
- Nếu trạng thái của máy chủ Qpid và Postgres được hiển thị là "Thành công", thì trạng thái đó cho biết máy chủ Analytics đã đi dây đúng cách. Chuyển đến phần Đã lỗi thời Mã nhận dạng duy nhất (UUID) của máy chủ Analytics.
- Nếu trạng thái của máy chủ Qpid/Postgres được hiển thị là "UNKNOWN" hoặc "FAILURE" thì bị lỗi
cho biết có vấn đề với máy chủ tương ứng.
Ví dụ: tình huống sau đây cho thấy trạng thái của các máy chủ Postgres là "UNKNOWN" (KHÔNG XÁC ĐỊNH):
Điều này có thể xảy ra nếu xảy ra lỗi trong quá trình bắt đầu sử dụng số liệu phân tích. Lỗi này ngăn thông báo từ Máy chủ quản lý đến máy chủ Postgres.
Độ phân giải
Thông thường, bạn có thể khắc phục sự cố này bằng cách khởi động lại máy chủ xuất hiện thông báo "FAILURE" hoặc "UNKNOWN" (KHÔNG XÁC ĐỊNH).
- Khởi động lại từng máy chủ có trạng thái đấu dây phân tích chỉ ra "ĐÃ LỖI" hoặc "UNKNOWN"
bằng lệnh sau:
/opt/apigee/apigee-service/bin/apigee-service component restart
- Ví dụ:
- Nếu bạn gặp vấn đề trên Máy chủ Qpid, hãy khởi động lại Máy chủ Qpid:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- Nếu bạn gặp vấn đề trên Máy chủ Postgres, hãy khởi động lại cả Máy chủ chính và Máy chủ Slave
Nút máy chủ Postgres:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- Nếu bạn gặp vấn đề trên Máy chủ Qpid, hãy khởi động lại Máy chủ Qpid:
- Trong ví dụ trên, trạng thái "UNKNOWN" hiển thị cho máy chủ Postgres nên bạn cần
để khởi động lại cả hai máy chủ Master và Slave Postgres:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
Mã nhận dạng duy nhất (UUID) đã cũ của máy chủ Analytics
Chẩn đoán
- Lấy cấu hình Analytics bằng cách sử dụng lệnh gọi API sau:
curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
Dưới đây là kết quả mẫu từ API ở trên:
[ { "name" : "axgroup001", "properties" : { "consumer-type" : "ax" }, "scopes" : [ "myorg~prod", "myorg~test" ], "uuids" : { "aries-datastore" : [ ], "postgres-server" : [ "6777...2db14" ], "dw-server" : [ ], "qpid-server" : [ "774e...fb23", "29f3...8c11" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "774e...8c11" ], "datastores" : [ "6777...db14" ], "properties" : { } } ], "data-processors" : { } } ]
- Hãy đảm bảo thông tin sau trong dữ liệu đầu ra là chính xác:
- tên org-env được liệt kê trong "phạm vi" .
- Các mã nhận dạng duy nhất (UUID) của máy chủ Postgres và máy chủ Qpid.
- Nhận UUID của Máy chủ Postgres bằng cách chạy lệnh sau trên mỗi
Nút máy chủ Postgres:
curl 0:8084/v1/servers/self/uuid
- Nhận UUID của Máy chủ Qpid bằng cách chạy lệnh sau trên mỗi Qpid
nút máy chủ:
curl 0:8083/v1/servers/self/uuid
- Nhận UUID của Máy chủ Postgres bằng cách chạy lệnh sau trên mỗi
Nút máy chủ Postgres:
- Nếu tất cả thông tin đều chính xác, hãy chuyển đến phần Dữ liệu Analytics không được đẩy sang Cơ sở dữ liệu Postgres.
- Nếu các mã nhận dạng duy nhất (UUID) của máy chủ Postgres và/hoặc Qpid không chính xác, thì có thể là Máy chủ quản lý đang tham chiếu đến UUID cũ.
Độ phân giải
Để xoá các mã nhận dạng duy nhất (UUID) cũ và thêm đúng mã nhận dạng duy nhất (UUID) của máy chủ, hãy liên hệ với Bộ phận hỗ trợ Apigee Edge.