故障診斷:Amazon MQ for ActiveMQ - Amazon MQ

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

故障診斷:Amazon MQ for ActiveMQ

請使用此節中的資訊,協助診斷及解決在使用 Amazon MQ for ActiveMQ 代理程式時可能遇到的常見問題。

即使我已啟動記錄,我也看不到 Lo CloudWatch gs 中代理程式的一般記錄或稽核記錄。

如果您無法在 Logs 中檢視代理程式的 CloudWatch 記錄檔,請執行下列動作。

  1. 檢查建立或重新啟動代理程式的使用者是否具有 logs:CreateLogGroup 許可。在使用者建立或重新啟動代理程式之前,如果您未將 CreateLogGroup 許可新增至使用者,則 Amazon MQ 不會建立日誌群組。

  2. 檢查您是否已設定以資源為基礎的政策,以允許 Amazon MQ 將日誌發佈到 CloudWatch 日誌。若要允許 Amazon MQ 將日誌發佈到日誌 CloudWatch 日誌群組,請設定以資源為基礎的政策,讓 Amazon MQ 存取下列 CloudWatch 日誌動作:API

    • CreateLogStream— 為指定的 CloudWatch 記錄群組建立防護記錄資料流。

    • PutLogEvents— 將事件傳遞至指定的 CloudWatch 記錄檔記錄串流。

如需設定適用於 ActiveMQ 的 Amazon MQ 以將日誌發佈到日誌的詳細資訊,請參閱設定 CloudWatch 記錄。

代理程式重新啟動或維護時段之後,即使狀態為 RUNNING,我仍然無法連線到代理程式。為什麼?

在您初始化代理程式重新啟動後、排定的維護時段完成後、或者在啟動待命執行個體的失敗事件中,您可能會遇到連線問題。在任何一種情況下,代理程式重新啟動後的連線問題很可能是由於代理程式的 Amazon EFS 或 Amazon EBS 儲存磁碟區中存在異常大量訊息所造成。在重新啟動期間,Amazon MQ 會將持續性訊息從儲存區移至代理程式記憶體。若要確認此診斷,您可以針對適用於 ActiveMQ 代理程式 CloudWatch 的 Amazon MQ 監控下列指標:

  • StoragePercentUsage — 大百分比或接近 100% 可能會導致代理程式拒絕連線。

  • JournalFilesForFullRecovery - 指出在非正常關機並重新啟動後將重播的日誌檔案數量。增加或持續高於 1 的值表示未解決的交易,可能會在重新啟動後造成連線問題。

  • OpenTransactionCount - 重新啟動後的數字大於零,表示代理程式將嘗試存放先前使用的訊息,從而導致連線問題。

若要解決此問題,我們建議您使用 rollback()commit(),解決 XA 交易。如需詳細資訊並查看使用 rollback() 解決 XA 交易的程式碼範例,請參閱復原 XA 交易

我看到我的一些用戶端連線到代理程式,而其他用戶端無法連線。

如果您的代理程式處於 RUNNING 狀態,而有些用戶端可以成功連線到代理程式,而有些用戶端則無法連線,您可能已經達到代理程式的線路層級連線限制。若要確認您已達到線路層級連線限制,請執行下列動作:

  • 在日誌中檢查適用於 ActiveMQ 代理程式的 Amazon MQ 的一般代理程式日誌。 CloudWatch 如果已達到限制,您將在代理程式日誌中看到 Reached Maximum Connections。如需 ActiveMQ 代理程式適用之 Amazon MQ CloudWatch 日誌的詳細資訊,請參閱。了解日誌記 CloudWatch 錄的結構

達到線路層級連線限制後,代理程式將主動拒絕額外的連入連線。若要解決此問題,我們建議升級代理程式執行個體類型。如需有關選擇工作負載之最佳執行個體類型的詳細資訊,請參閱Broker instance types

如果您已確認線路層級連線數目小於代理程式連線限制,則問題可能與重新啟動用戶端有關。檢查您的代理程式日誌是否有大量和頻繁的 ... Inactive for longer than 600000 ms - removing ... 條目。日誌項目表示重新啟動用戶端或連線問題。當用戶端透過 Network Load Balancer (NLB) 與經常中斷連線並重新連線至代理程式的用戶端連線至代理程式時,此效果會更明顯。這在以容器為基礎的用戶端中更為常見。

檢查您的用戶端日誌以取得進一步的詳細資訊。代理程式會在 600000 ms 之後清理非作用中的連TCP線,並釋放連線套接字。

我在執行操作時,在 ActiveMQ 主控台上看到例外狀況 org.apache.jasper.JasperException: An exception occurred processing JSP page

如果您使用簡單驗證和設定AuthorizationPlugin佇列和主題授權,請務必使用組XML態檔案中的AuthorizationEntries元素,並允許activemq-webconsole群組權限存取所有佇列和主題。這可確保 ActiveMQ Web 主控台可以與 ActiveMQ 代理程式進行通訊。

以下 AuthorizationEntry 範例會將所有佇列和主題的讀取和寫入許可授予給 activemq-webconsole 群組。

<authorizationEntries> <authorizationEntry admin="activemq-webconsole,admins,users" topic=">" read="activemq-webconsole,admins,users" write="activemq-webconsole,admins,users" /> <authorizationEntry admin="activemq-webconsole,admins,users" queue=">" read="activemq-webconsole,admins,users" write="activemq-webconsole,admins,users" /> </authorizationEntries>

同樣,將您的經紀人與集成時LDAP,請確保授予該amazonmq-console-admins組的權限。如需LDAP整合的詳細資訊,請參閱LDAP 整合的運作方式