Nagios如何通过check_http监控一台web应用服务器上多个tomcat服务

今天就跟大家聊聊有关Nagios如何通过check_http监控一台web应用服务器上多个tomcat服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

成都网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、成都小程序开发、集团成都企业网站建设等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:iso认证等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞扬!

如何在nagios监控tomcat,是一个比较简单又复杂的事情,简单是因为如果只监控web应用服务器的一个tomcat服务是否正常运行,那么比较简单;如果要监控tomcat的其他比如连接数比如jvm内存使用率等就比较复杂,google没有适合的监控脚本;如果要监控web应用上面的多个tomcat服务器,而且很多tomcat服务都是跳转式的,那就需要多做很多事情。

一般通常都使用tcp tomcat端口的方式,不过这有一个bug就是tomcat假死的情况下,tcp 端口是OK的,但是tomcat里面部署的web应用其实已经不能正常访问,这个时候需要使用http方式来监控tomcat的状态。

所以本文就记录了如何采用http方式来监控一台web服务器上多个tomcat应用服务器。

1在tomcat web服务器上安装nrpe客户端:

Rpm包下载地址为:http://download.csdn.net/detail/mchdba/7493875

1.1,rpm方式安装nrpe客户端

3 tomcat多端口监控报警

tomcat930端口,现在再添加一个tomcat8300端口

3.1客户端的nrpe.cfg里面添加配置

[root@webserver root]# vim /etc/nagios/nrpe.cfg

command[check_tomcat_8300_status]=/usr/lib/nagios/plugins/check_http -I 10.xx.xx.10 -p 8300 -u /xx_xx_xx/index.html -e 200 -w 5 -c 10

 

301  Moved Permanently  客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302  Found  类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。

……

最后加入-v参数调试看详细的获取信息:

[root@webserver OCC_MANAGER_Web]# /usr/lib/nagios/plugins/check_http -H www.xxxx.com -I 10.xx.xx.10 -p 8200 -u /OCC_REPORT_Web/index.html -v

GET /OCC_REPORT_Web/index.html HTTP/1.0

User-Agent: check_http/v1861 (nagios-plugins 1.4.11)

Connection: close

Host: www.xxxx.com

http://10.xx.xx.10:8200/OCC_REPORT_Web/index.html is 323 characters

STATUS: HTTP/1.1 302 Found

**** HEADER ****

Server: Apache-Coyote/1.1

Set-Cookie: ploccSessionId=45CD9C9921A5B89C59FCB2E34FE52734; Path=/

Location: http://www.xxx.com/OCC_SSO_Web/login.htm?redirect=http%3A%2F%2Fwww.xxx.com%2FOCC_REPORT_Web%2Findex.html

Content-Length: 0

Date: Thu, 12 Jun 2014 02:52:45 GMT

Connection: close

**** CONTENT ****

HTTP OK - HTTP/1.1 302 Found - 0.003 second response time |time=0.003268s;;;0.000000 size=323B;;;0

看到页面重定向到域名系统,tomcat服务器是正常运行的,所以302 Found也可以表示tomca服务器正常运转无误,因为架构是用的lvs负载均衡,所以如果动用跳转后的公用域名来判断的话,就不能确定是否是这个主机的tomcat,因为公用域名每次只对应其中一个tomcat服务,因为这里是监控具体的一台web服务器的tomcat,所以去监控302端口也是一个不错的办法,这里可以去修改客户端nrpe.cfg里面的8200端口的监控命令,改成监控tomcat的302状态值:

Vim /etc/nagios/nrpe.cfg

/usr/lib/nagios/plugins/check_http -I 10.xx.xx.10 -p 8200 -u /OCC_REPORT_Web/index.html  -e 302 -w 3 -c 10

报错记录(一): NRPE: Unable to read output

[1402557345] SERVICE ALERT: webserver;Tomcat_6100_OCC_SSO_Service_Status;UNKNOWN;SOFT;3;NRPE: Unable to read output

解决:一般是nrpe路径不对。

报错记录(二):CHECK_NRPE: Error - Could not complete SSL handshake.

[root@cache-2 etc]# /usr/local/nagios/libexec/check_http -I 10.xx.3.xx -p 8100 -u /tradeAdmin/index.html

HTTP OK: HTTP/1.1 302 Found - 319 bytes in 0.064 second response time |time=0.064033s;;;0.000000 size=319B;;;0

[root@cache-2 etc]#

[root@cache-2 etc]# /usr/local/nagios/libexec/check_nrpe -H 10.xx.3.xx -c check_load

CHECK_NRPE: Error - Could not complete SSL handshake.

[root@cache-2 etc]#

解决:/etc/nagios/nrpe.cfg里面没有添加nagios服务器主机ip地址

Vim /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,10.xx.xxx.xx1

之后重启nrpe,service nrpe restart;再去nagios服务器上验证OK:

[root@cache-2 etc]# /usr/local/nagios/libexec/check_nrpe -H 10.xx.3.xx -c check_load

OK - load average: 0.43, 0.17, 0.06|load1=0.430;15.000;30.000;0; load5=0.170;10.000;25.000;0; load15=0.060;5.000;20.000;0;

[root@cache-2 etc]#

看完上述内容,你们对Nagios如何通过check_http监控一台web应用服务器上多个tomcat服务有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


当前标题:Nagios如何通过check_http监控一台web应用服务器上多个tomcat服务
标题URL:http://hbruida.cn/article/pdehgp.html