簡介
本文檔介紹當即時消息和線上狀態(IM&P)伺服器節點上的服務顯示為「未知」時,如何對線上狀態拓撲頁面進行故障排除。
背景資訊
導航到IM&P管理Web頁>系統>線上狀態拓撲以驗證伺服器的運行狀況時,可能會遇到伺服器未處於其正確狀態。在這種情況下,即使服務是通過utils service list 命令在命令列介面(CLI)上啟動的,伺服器也會在紅色圓圈中顯示一個白十字。
本文檔介紹這些錯誤在狀態拓撲網頁上顯示的最常見原因以及如何修復它們。
問題
在其中一個受影響的節點上選擇view時,可以在網頁上看到以下錯誤:服務的狀態未知:
但是,如果您訪問IM&P伺服器的CLI安全外殼(SSH)會話並運行命令:utils service list,您會看到所有這些服務實際上都處於「STARTED」狀態。
解決方案
GUI上的錯誤與Tomcat證書問題相關。以下是需要驗證的專案:
步驟1。確認所有Tomcat和Tomcat-trust憑證均未過期,否則需要重新生成這些憑證。
步驟2.如果您的伺服器使用CA簽名的憑證,則需要驗證整個Tomcat鏈是否完成。這表示中介軟體和根憑證需要以Tomcat-trust形式上傳。
以下是Tomcat鏈中缺少證書的示例。在這種情況下,Tomcat憑證鏈結僅包含兩個憑證:不過,根>枝葉,存在超過2個或3個中間證書構建鏈的情況。
在影象示例中,Issuer:mexrus-TENOCHTITLAN-CA是缺少憑證。
所需日誌
導航到IM and Presence Serviceability > Trace > Trace Configuration > Server以選擇:IM&P Publisher > Service Group > Database and Admin Services > Service:Cisco IM and Presence Admin > Apply to all Nodes > Debug level:Debug >選中Enable All Trace復選框> Save。
導航到IM and Presence Administration > System > Presence Topology > 選擇受未知服務影響的節點,並記下時間戳。
開啟思科即時監控工具(RTMT)並收集以下日誌:
- 思科系統日誌
- Cisco Tomcat
- Cisco Tomcat安全
- 事件檢視器應用程式日誌
- 事件檢視器系統日誌
- Cisco IM和狀態管理日誌
日誌中的期望值
從cupadmin*.log
訪問Presence Topology > Node面板時。
2021-01-23 17:54:57,036 DEBUG [Thread-137] logging.IMPCommonLogger - IMPSocketFactory: Create socket called with host tenochtitlanIMP.mexrus.ru and port 8443
2021-01-23 17:54:57,040 DEBUG [Thread-137] logging.IMPCommonLogger - Enabled protocols: [TLSv1.1, TLSv1, TLSv1.2]
由於未驗證證書,因此收到異常。
2021-01-23 17:54:57,087 ERROR [Thread-137] services.ServiceUtil - Got an exception setting up the HTTPS connection.
javax.net.ssl.SSLException: Certificate not verified.
at com.rsa.sslj.x.aH.b(Unknown Source)
at com.rsa.sslj.x.aH.a(Unknown Source)
at com.rsa.sslj.x.aH.a(Unknown Source)
at com.rsa.sslj.x.ap.c(Unknown Source)
at com.rsa.sslj.x.ap.a(Unknown Source)
at com.rsa.sslj.x.ap.j(Unknown Source)
at com.rsa.sslj.x.ap.i(Unknown Source)
at com.rsa.sslj.x.ap.h(Unknown Source)
at com.rsa.sslj.x.aS.startHandshake(Unknown Source)
at com.cisco.cup.services.ServiceUtil.init(ServiceUtil.java:118)
at com.cisco.cup.services.ServiceUtil.getServiceInfo(ServiceUtil.java:197)
at com.cisco.cup.services.ServiceUtil.getServiceInfo(ServiceUtil.java:182)
當您嘗試檢索拓撲的節點狀態時:
at com.cisco.cup.admin.actions.TopologyNodeStatusAction$ServiceRunner.run(TopologyNodeStatusAction.java:358)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.rsa.sslj.x.aK: Certificate not verified.
at com.rsa.sslj.x.bg.a(Unknown Source)
at com.rsa.sslj.x.bg.a(Unknown Source)
at com.rsa.sslj.x.bg.a(Unknown Source)
... 13 more
由於Tomcat證書的頒發者丟失,導致異常。
Caused by: java.security.cert.CertificateException: Issuer for signed certificate [CN=tenochtitlanCM-ms.mexrus.ru,OU=Collab,O=Cisco,L=Mexico,ST=Mexico City,C=MX] not found: CN=mexrus-TENOCHTITLAN-CA,DC=mexrus,DC=ru
at com.cisco.cup.security.TLSTrustManager.checkServerTrusted(TLSTrustManager.java:309)
at com.rsa.sslj.x.aE.a(Unknown Source)
... 16 more
2021-01-23 17:54:57,087 DEBUG [Thread-137] actions.TopologyNodeStatusAction$ServiceRunner - Retrieved service status for node tenochtitlanIMP.mexrus.ru
2021-01-23 17:54:57,088 DEBUG [http-bio-443-exec-8] actions.TopologyNodeStatusAction - [Topology] VerifyNodeServices - Complete.
在cupadmin*.log跟蹤中還可以找到另一種型別的異常,它顯示錯誤「Incorrect issuer for server cert」:
Caused by: java.security.cert.CertificateException: Incorrect issuer for server cert
at com.cisco.cup.security.TLSTrustManager.checkServerTrusted(TLSTrustManager.java:226)
at com.rsa.sslj.x.aE.a(Unknown Source)
... 16 more
2017-10-14 09:04:01,667 ERROR [Thread-125] services.ServiceUtil - Failed to retrieve service status. Reason: Certificate not verified.
javax.net.ssl.SSLException: Certificate not verified.
在這種情況下,IM&P無法將Tomcat的頒發者證書識別為有效的頒發者證書,該證書最有可能是由於證書損壞導致的。此處的選項有:
- 驗證以下兩項中提供的資訊:Tomcat和Issuer證書。
- 獲取另一個頒發者證書,並將其與已在IM&P信任儲存中的證書進行比較。
- 從IM&P中刪除頒發者證書並再次上傳。
- 重新生成Tomcat CA證書。
附註:請注意Cisco錯誤ID CSCvu78005,該錯誤表示Tomcat RSA/ECDSA Keystore's not update in all nodes when the existing CA certificate in the chain is replaced。
步驟1.在受影響的節點上運行utils diagnose test命令。
步驟2.聯絡思科技術協助中心(TAC)尋求進一步協助。