查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
問題
由於 Qpidd 伺服器未將數據分析訊息傳送至 PostgreSQL,因此 Edge UI 中缺少數據分析資料。在 Edge 中,edge-qpid-server
元件會對應至 Qpidd 伺服器。
Qpidd 針對每個數據分析群組維護兩個佇列:
ax-q-axgroup001-consumer-group-001
這個佇列會保留從訊息處理器和路由器推送的分析訊息。訊息由
edge-qpid-server
從這裡提取,該訊息會剖析訊息並將其插入 PostgreSQL。成功處理完畢的訊息會從佇列中移除。ax-q-axgroup001-consumer-group-001-dl
這個佇列是無效信件佇列。可做為
edge-qpid-server
處理失敗,因此再也不想收到的訊息的目的地。如果超過放送次數上限,或是 PostgreSQL 因執行階段錯誤而拒絕插入新資料,系統就會填入這項資訊。
錯誤訊息
根本原因可能是 edge-qpid-server
元件的各種執行階段錯誤。一般來說,如果 edge-qpid-server
從 PostgreSQL 收到執行階段錯誤,就會建立無效信件佇列 (如果不存在),然後在該佇列傳送下列訊息:
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.
可能原因
原因 | 說明 | 疑難排解操作說明 |
---|---|---|
留言卡在 qpidd 的無效信件佇列中 | edge-qpid-server 無法理解從 Qpidd 代理程式讀取到的訊息,或無法將訊息保存至 PostgreSQL。
|
邊緣私有雲使用者 |
常見診斷步驟
執行下列指令,查看 Qpidd 佇列的統計資料:
qpid-stat -q
輸出會傳回透過代理程式註冊的一組佇列。如果佇列名稱結尾為「-dl」的佇列,訊息,然後有訊息卡在無效信件佇列中。
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
原因:訊息卡在 qpidd 的無效信件佇列中
診斷
這種狀況可能會在下列情況下發生:
- 升級作業過去已完成,在此期間 PostgreSQL 停止運作。
- PostgreSQL 因網路問題而暫時中斷服務。
edge-qpid-server
嘗試傳送訊息至 PostgreSQL,但 PostgreSQL 傳回執行階段錯誤。
解析度
記下常見診斷步驟中的佇列名稱。例如:
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
執行
qpid-tool
指令,輸入互動式qpid
提示:qpid-tool
這個通訊會傳回以下內容:
Management Tool for QPID qpid:
執行
list broker
以取得使用中的代理程式清單:list broker
這個通訊會傳回以下內容:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
其中
ID
資料欄會指定代理程式的 ID。記下代理人的 ID。在這個範例中為 125。
執行下列指令,將無效信件佇列中的訊息移回實際的佇列:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
這個通訊會傳回以下內容:
OK (0) - {}
如果沒有輸出,表示沒有動作可執行,表示沒有可移動的郵件。如未看到
OK(0)
,請與 Apigee Edge 支援團隊聯絡。關閉 qpid-tool 終端機。
quit
等待 5 分鐘,然後再次執行常見診斷步驟的診斷步驟。確認系統會在實際佇列中的訊息處理完畢,並確認無效信件訊息數維持在 0。
如果問題仍未解決,請參閱下一節。
必須收集診斷資訊
按照上述說明操作後,如果問題仍未解決,請收集下列診斷資訊。請與 Apigee Edge 支援團隊聯絡,並提供以下資訊:
- Qpidd 記錄:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- Postgresql 記錄:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- Edge-qpid-server 記錄檔:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- Edge-postgres-server 記錄:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
Qpidd 佇列統計資料:
qpid-stat -q
以下 curl 指令傳回的 Analytics 群組:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax