Chinaunix

标题: 怎么快速验证受管是否能提供服务 [打印本页]

作者: Ajax0816    时间: 2013-02-22 10:47
标题: 怎么快速验证受管是否能提供服务
本帖最后由 Ajax0816 于 2013-02-22 10:50 编辑

现在遇到很多这样的问题,受管server的状态是正常的running,有进程且telnet是通的,有登录页面,但是输入用户和密码后,报错500、多未知错误等,因为受管比较,人工登录验证很麻烦,怎么能快速的定位到是哪个受管的问题呢?

环境信息:
weblogic9.2.3
jdk1.5
F5负载均衡
os:AIX和suse
作者: Shell_HAT    时间: 2013-02-24 21:18
人工登录验证

是登陆weblogic的console吗?
用WLST脚本行吗?
作者: Ajax0816    时间: 2013-02-25 09:22
回复 2# Shell_HAT


是怎么验证各个受管服务是否能提供服务?
现在是发现一种服务报错,然后通过控制台检查各server的状态正常,后台进程也存在,但是逐个去登录各个受管会发现某一个受管登录不进去,但是现在服务、受管数量都比较多,怎么能比较快速的查找出哪个受管服务异常,不采用人工登录验证的发发呢?


   
作者: shijun73    时间: 2013-03-04 16:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: rdcwayx    时间: 2013-03-05 08:28
500 error 是个很常见的错误。 问题应该从分析web服务器的错误日志和weblogic 日志开始(access 和 error log), 楼主能否贴上些错误日志给我们参考。

不知道我理解得对不对啊,按照楼主的意思,用户通过F5 访问web服务器,下面再连接weblogic 的多个 instances:port. 这其中一个instance 有异常,但是如果直接测试其端口,仍旧处于监听状态,问题是如何能够快速找出这个出问题的instance.

我通常的做法是,如果instances分布在多台服务器上,设好SSHkey, 运行个ssh+grep命令来搜寻我要找的错误日志,快速找出哪个instances 有问题。你先试一下。
作者: Ajax0816    时间: 2013-03-05 09:50
回复 5# rdcwayx

谢谢您的思路。此错误我已查明原因。我现在的监控做法是,通过weblogic.admin监控server的state是否为runinng,同时检测其进程是否存在,如果两者其中之一不符合,就判定该server有问题,发送邮件通知。但是运行一段时间后发现不是很严谨,在判定server的state时有收到邮件后查看服务发现没有问题的情况。目前想写个程序根据Http的返回码来判断,但是我的代码能力基本没有。。正在学习中
作者: rdcwayx    时间: 2013-03-08 11:44
Ajax0816 发表于 2013-03-05 11:50
回复 5# rdcwayx

谢谢您的思路。此错误我已查明原因。我现在的监控做法是,通过weblogic.admin监控serv ...


http 的返回码可以做个小脚本, 运行wget URL ,每5分钟跑一次,然后再加个判断,如果错误发生在半小时之内的,只用发一次邮件.

如果得到500错误,就自动发个邮件提醒,但是这个方法无法查到究竟哪个weblogic instance 出问题.

至于通过weblogic.admin监控server的state是否为runinng,可以参考Shell_HAT的几个WLST 工具贴,再写个脚本判断,可能更准确些。

但是你说到检测其进程是否存在,这个和当初的描述不一致,如果进程不在,端口号应该也会停的。还有你也可以收集所有要telnet的段口号,定期逐一telnet来判断。
作者: Ajax0816    时间: 2013-03-08 15:58
回复 7# rdcwayx

非常感谢您耐心的回复,我会认真参考您的建议。


   
作者: Shell_HAT    时间: 2013-03-09 09:31
回复 6# Ajax0816


我们的一个项目里面用的 weblogic.Admin 的 ping 命令
  1. java weblogic.Admin -url ManagedHost:8001 -username weblogic -password weblogic PING
复制代码

作者: rdcwayx    时间: 2013-03-09 13:52
@Ajax0816@Shell_HAT
这个ping 也不错, 我查了一下我公司的环境,也是用这个方法。

你还可以用它另写个监控脚本,一样放进cronjob定期运行, 如果有检测到异常,就自动重启该进程。这样的话,大部分时间你就不用管了。 省很多的支持时间。
作者: Ajax0816    时间: 2013-03-09 15:01
回复 9# Shell_HAT

谢谢。我现在脚本用的是java Weblogic.Admin -url URL GETSTATE,然后grep -i running来判定server是否正常,他们两之间会有什么不同吗?ping会更准确些吗?


   
作者: Ajax0816    时间: 2013-03-09 15:15
回复 10# rdcwayx

嗯,我会在cronjob加个PING的脚本,看一下会不会跟严谨些。
哎,我们领导的比较苛刻,要求只允许晚上时间段检测到异常才可以自动重启,白天在业务期间要发送邮件通知,然后人工去查找问题再确定是否重启


ps:问一下在服务器频繁的运行wlst脚本会不会对weblogic性能产生影响?
作者: Shell_HAT    时间: 2013-03-09 17:35
回复 11# Ajax0816


    是的,ping更准确。
作者: rdcwayx    时间: 2013-03-09 19:25
本帖最后由 rdcwayx 于 2013-03-09 21:26 编辑

@Ajax0816

如果要区分白天还是晚上,这个就再加个判断而已。 其实,这个监控白天可能更用得上。 晚上访问量少,出问题的机会也少。既然是cluster 了, 重启其中一个对访问影响不大。只要在自动重启的同时,再发个提醒邮件即可。还有你可以在重启之前,作三次 kill -3 (HUP) , 产生thread dump ,之后也一样可以分析问题根源。
作者: Shell_HAT    时间: 2013-03-11 14:04
回复 12# Ajax0816


    我们是10分钟运行一次监控脚本,对系统性能的影响基本可以忽略。
作者: Ajax0816    时间: 2013-03-11 20:54
回复 14# rdcwayx

嗯,了解,谢谢


   
作者: Ajax0816    时间: 2013-03-11 20:55
回复 15# Shell_HAT

嗯,好的,谢谢


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2