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
Thiếu dữ liệu Analytics trong giao diện người dùng Edge do máy chủ Qpidd không chuyển thông báo phân tích sang PostgreSQL. Trong Edge, thành phần edge-qpid-server
tương ứng với máy chủ Qpidd.
Qpidd duy trì hai hàng đợi cho mỗi nhóm phân tích:
ax-q-axgroup001-consumer-group-001
Hàng đợi này lưu giữ các thông báo phân tích được đẩy từ Bộ xử lý và Bộ định tuyến thông báo. Thông báo được lấy từ đây bằng
edge-qpid-server
để phân tích cú pháp thông báo và chèn các thông báo đó vào PostgreSQL. Sau khi được xử lý thành công, thư sẽ được xoá khỏi hàng đợi.ax-q-axgroup001-consumer-group-001-dl
Hàng đợi này là hàng đợi chữ cái chết. Địa chỉ này đóng vai trò là đích đến của các thông báo mà
edge-qpid-server
không xử lý được nên không muốn nhận nữa. Thông số này thường được điền sẵn khi vượt quá số lượng phân phối tối đa hoặc nếu PostgreSQL từ chối chèn dữ liệu mới do lỗi thời gian chạy.
Thông báo Lỗi
Nguyên nhân gốc rễ có thể là do nhiều lỗi thời gian chạy từ thành phần edge-qpid-server
. Thông thường, nếu edge-qpid-server
gặp lỗi thời gian chạy từ PostgreSQL, thì công cụ này sẽ tạo hàng đợi chữ cái chết nếu chưa có rồi gửi thông báo sau đến đó:
yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.
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 |
---|---|---|
Thư bị mắc kẹt trong hàng đợi chữ cái chết của qpidd | edge-qpid-server không hiểu được các thông báo mà công cụ này đọc từ trình môi giới Qpidd hoặc không thể lưu giữ thông báo cho PostgreSQL.
|
Người dùng dịch vụ đám mây riêng tư của Edge |
Các bước chẩn đoán thường gặp
Chạy lệnh sau để xem số liệu thống kê của hàng đợi Qpidd:
qpid-stat -q
Kết quả sẽ trả về một tập hợp hàng đợi đã đăng ký với nhà môi giới. Nếu tên trong hàng đợi kết thúc bằng "-dl" có thư đã được điền sẵn, thì có thư bị mắc kẹt trong hàng đợi chữ cái chết.
Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ======================================================================================================================== ax-q-axgroup-001-consumer-group-001 Y 0 185 185 0 13.8m 13.8m 6 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 70 70 0 3.9m 3.9m 0 2
Nguyên nhân: Thư bị mắc kẹt trong hàng đợi chữ cái chết của qpidd
Chẩn đoán
Điều kiện này có thể xảy ra trong các trường hợp sau:
- Một quá trình nâng cấp đã diễn ra trước đây và trong thời gian PostgreSQL ngừng hoạt động.
- PostgreSQL tạm thời ngừng hoạt động do sự cố về mạng.
edge-qpid-server
đã cố gửi thông báo đến PostgreSQL nhưng PostgreSQL trả về lỗi thời gian chạy.
Độ phân giải
Ghi lại tên của hàng đợi trong phần Các bước chẩn đoán phổ biến. Ví dụ:
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
Chạy lệnh
qpid-tool
để nhập lời nhắcqpid
có tính tương tác:qpid-tool
Hàm này trả về các hàm sau:
Management Tool for QPID qpid:
Chạy
list broker
để lấy danh sách các nhà môi giới đang hoạt động:list broker
Hàm này trả về các hàm sau:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
Trong đó cột
ID
chỉ định mã nhận dạng của người môi giới.Ghi lại mã nhận dạng của người môi giới. Trong ví dụ, con số đó là 125.
Chạy lệnh sau để di chuyển thư từ hàng đợi chữ cái không hoạt động trở lại hàng đợi thực tế:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
Hàm này trả về các hàm sau:
OK (0) - {}
Nếu không có kết quả đầu ra thì không có gì để làm và chỉ báo hiệu để không có tin nhắn nào được di chuyển. Nếu không thấy
OK(0)
thì bạn nên liên hệ với Bộ phận hỗ trợ Apigee Edge.Thoát khỏi cửa sổ dòng lệnh qpid-tool.
quit
Đợi 5 phút rồi chạy lại các bước chẩn đoán trong phần Các bước chẩn đoán phổ biến. Xác minh rằng thư trên hàng đợi thực tế đang được xử lý và đảm bảo số lượng thư không còn được giữ nguyên ở 0.
Nếu sự cố vẫn tiếp diễn, hãy chuyển đến phần tiếp theo.
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ên, hãy thu thập thông tin chẩn đoán sau đây. Hãy liên hệ và chia sẻ chúng với Nhóm hỗ trợ Apigee Edge:
- Nhật ký Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- Nhật ký Postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- Nhật ký máy chủ Edge-qpid:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- Nhật ký máy chủ Edge-postgres:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
Số liệu thống kê hàng đợi Qpidd:
qpid-stat -q
Nhóm Analytics được trả về bằng lệnh curl sau:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax