VCM SEM安装完成后,无法登录SEM管理界面

发布时间:  2016-10-06 浏览次数:  245 下载次数:  0
问题描述
某局点新到货服务器RH 2288 H3,需要部署VCM 5020 V100R002C20,由于RH 2288 H3服务器并未预安装,需要手动重新安装SEM server。按照产品文档中手动安装SEM章节进行部署,安装过程正常无报错,服务也能正常启动,但是SEM 页面无法正常显示。
处理过程

由于SEM服务正常启动,马上检查web界面绑定的端口是否被其他程序占用

使用lsof命令检查 8443(SEM 页面端口)发现并未被占用,此时推测如果端口未被占用,而SEM服务正常运行,是否页面所依赖的tomcat启动时出现问题。

按照此思路,便查看tomcat的运行日志(/usr/local/iGet/SRE/SEM/logs/tomcat/catalina.out),发现tomcat启动时,在绑定端口时报错。

Oct 05, 2016 11:50:11 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-nio-ff02:0:0:0:0:0:0:1-8443"]
java.net.SocketException: Invalid argument
 at sun.nio.ch.Net.bind0(Native Method)
 at sun.nio.ch.Net.bind(Unknown Source)
 at sun.nio.ch.Net.bind(Unknown Source)
 at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
 at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
 at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:475)
 at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:650)
 at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
 at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
 at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 at org.apache.catalina.core.StandardService.initInternal(StandardService.java:560)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:820)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:642)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:667)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427)

Oct 05, 2016 11:50:11 PM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[com.huawei.i2000.tomcat.http.Http11NioProtocol-8443]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[com.huawei.i2000.tomcat.http.Http11NioProtocol-8443]]
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
 at org.apache.catalina.core.StandardService.initInternal(StandardService.java:560)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:820)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:642)
 at org.apache.catalina.startup.Catalina.load(Catalina.java:667)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
 at org.apache.catalina.connector.Connector.initInternal(Connector.java:980)
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 ... 12 more
Caused by: java.net.SocketException: Invalid argument
 at sun.nio.ch.Net.bind0(Native Method)
 at sun.nio.ch.Net.bind(Unknown Source)
 at sun.nio.ch.Net.bind(Unknown Source)
 at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
 at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
 at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:475)
 at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:650)
 at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
 at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
 at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
 ... 13 more

Oct 05, 2016 11:50:11 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 901 ms

从日志中看出来,tomcat在启动时尝试绑定8443端口的时候,发生错误,而与端口绑定的地址是ff02:0:0:0:0:0:0:1, 这个并不是这台服务器中的MAC地址或者IP地址。推断是系统安装的时候出现了某个问题,导致地址配置错误,打算尝试重新安装SEM Server来修复此问题。但是通过重新安装SEM发现问题依旧,日志仍然是显示端口与ff02:0:0:0:0:0:0:1进行了绑定。

因此打算从系统配置文件入手,检查配置是否能够通过手动修改,把绑定的地址进行修改。

后续在检查sem的服务器配置文件(/usr/local/iGet/SRE/SEM/conf/server.xml)是发现其中一段配置如下

 <!-- Define a SSL HTTP/1.1 Connector on port 8443
         This connector uses the BIO implementation that requires the JSSE
         style configuration. When using the APR/native implementation, the
         OpenSSL style configuration is required as described in the APR/native
         documentation -->
   
    <Connector port="8443" server="huawei" address="ff02::1" protocol="com.huawei.i2000.tomcat.http.Http11NioProtocol"
               maxThreads="3000" acceptCount="1000"  connectionTimeout="20000" maxProcessors="1000"
      SSLEnabled="true" scheme="https" secure="true" maxPostSize="10240"
               disableUploadTimeout="false" clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1.1,TLSv1.2" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"
               keystoreFile="conf/sem.keystore" keystorePass="4DA76845F93FDAA5E41F47A40A8DB562" />

关于SEM的SSL HTTP 连接器的配置上面,地址写死为ff02::1,配置文件就是这里配置错误。

解决方案

把address 字段中的ff02::1,修改成服务器的实际地址175.10.1.220后保存重启服务后,SEM界面可以正常运行并访问,问题解决。

建议与总结
解决业务系统问题,需要了解业务实现原理以及过程,从业务启动到使用都要有清晰的思路,通过业务的每个启动阶段的排查,便能慢慢找到问题的原因并进行解决。

END