周末有项目反应有系统启动webseal的时候无法访问门户,远程过去,现场人员演示问题:
1、启动服务器一的webseal的时候,浏览器报错
third server no response
2、启动服务器二的webseal的时候,可以正常访问门户系统
附上服务器部署结构图(简单版) :
注:webseal是IBM的TAM的组件,httpserver是IBM HTTP Server,appServer是IBM WebSphere Server
通过错误可以知道,是由于第三方服务器无响应。
步骤一:通过url排查是否是中间件的问题
解决问题的思路是先排查问题,到底是什么问题,从浏览器输入的请求会经过多少个中间件系统,然后到达业务应用,然后是数据库或者文件系统。
通过浏览器上url的测试,发现是httpserver1没启动。通过ssh连接上服务器,输入启动命令:
apachectl start
通过linux命令查看端口是否已经在监听了
netstat -nap | grep 82
通过命令发现82(IHS的监听端口)并未在监听
步骤二:解决IHS无法启动的问题
中间件无法启动的问题主要从以下几个方面去思考:
- 中间件文件损坏;
- 日志文件过大,日志无法写入;
- 监听端口被占用;
- 服务器硬盘满了
- IP地址更换
- 其他(以我的见识只能想到这几点了)
- 中间件文件损坏;
- 移除日志文件,并新建一个空的日志文件也无法启动IHS
- 监听端口未被占用
- 服务器磁盘空间未满,至少IHS安装的目录依然可以读写
- IP地址未更换
- 通过下面命令发现安装配置没问题
apachectl -t
- 通过下面命令发现启动日志中没错误
apachectl -e DEBUG
- 授予安装目录最高权限
chmod 777 -R HTTPServer1
- 启动依旧没端口监听,logs中依旧没有httpd.pid文件,进程号
- 同台机存在正常启动的IHS(是其他appserver上的ihs),
- 通过下面命令发现很多启动命令的进程号
ps -ef | grep http
步骤三:重启服务器
这时候最坏的情况,就是文件有损坏,很多问题通过重启系统可能都有好转,于是重启系统,可是重启系统之后问题依旧。
步骤四:复制正常的IHS
本着不重新安装的思想,因为同机有另一个appserver的ihs可以正常启动,打算复制正常的IHS,一开始走了一条弯路:我复制的是同机的其他appserver的IHS,步骤:- 移走IHS1(有问题的)
- 复制正常的IHS到IHS1的位置
- 替换IHS1(有问题的)下的/conf文件到复制之后的IHS1上
- 启动发现,监听的端口居然是IHS的,不知所措,怎么修改conf下的http.conf文件都不起作用
步骤四:重新安装IHS
在重新安装了IHS,安装目录是HTTPServer2(原来是HTTPServer1),并打上和原来相同版本的补丁之后,通过控制台创建webserver,并生成插件,发布插件之后成功通过新安装的监听端口访问应用,原本问题到这里就解决了,但是新安装的目录和原本的目录不一样,本着精益求精的思想,做了一下操作:- 移走HTTPServer1
- 修改HTTPServer2文件夹名成HTTPServer1
- 替换新安装的IHS中的conf文件夹(用出问题的conf文件夹替换,这样可以达到新安装的IHS可以拥有和原来相同的优化参数)
记一次服务器出错的解决思路。。。流水账