设为首页 收藏本站
查看: 1458|回复: 0

nagios监控http页面

[复制链接]
累计签到:15 天
连续签到:1 天
发表于 2015-9-8 09:24:06 | 显示全部楼层 |阅读模式
  http://yanfei1987.blog.iyunv.com/1245881/837309
  前段时间因为要使用nagios监控tomcat程序,本来是在网上找到的监控端口的,像check_tcp!8080端口,但是实际的工作中却出现问题了,实际中tomcat经常出现假死状态,就是像jsp的页面打不开的,但是端口已经是正常的,所以这个方法看来是不行了,后来在网上查找,可以直接使用check_http监控,就把我的方法贴出来,给刚使用nagios监控tomcat程序,节省一些时间。
  在每一个tomcat的webapps目录下,新建一个目录test(这个目录随便建),然后在其下面放一个asp文件。然后修改commands.cfg ,在里面添加
#tomcat1 set
define command{
command_name check_tomcat_80
command_line /usr/local/nagios/libexec/check_http -I $HOSTADDRESS$ -p 80 -u /test/test.jsp -e 200
}
  #tomcat2 set
define command{
command_name check_tomcat_8028
command_line /usr/local/nagios/libexec/check_http -I $HOSTADDRESS$ -p 8028 -u /test/test.jsp -e 200
}
然后在servers.cfg中添加tomcat服务就好了。
  
  本文出自 “成长随笔” 博客,请务必保留此出处http://yanfei1987.blog.iyunv.com/1245881/837309
  
  
  
  
  
  
  http://hi.baidu.com/encodery/item/b9302eee8d47c6ffe1a5d440
  
  
  

用nagios监控http页面的方法

  用nagios的插件check_http可以方便监控各种web页面,当有故障或者异常时,第一时间发出告警,
  
  从而快速地发现问题,解决故障。最终提高网站的可用性。
  check_http –help
  Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
  [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L]
  [-a auth] [-f <ok | warn | critcal | follow | sticky | stickyport>]
  [-e <expect>] [-s string] [-l] [-r <regex> | -R <case-insensitive regex>]
  [-P string] [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>]
  [-A string] [-k string] [-S] [-C <age>] [-T <content-type>] [-j method]
  其中我在工作中常用的参数如下:
  -H, –hostname=ADDRESS:域名或者被监控机IP(监控主机要有DNS)
  -I, –IP-address=ADDRESS:被监控机 IP (当监控主机没有DNS时用)
  -p, –port=INTEGER:http服务端口,默认为80
  -e, –expect=STRING
  Comma-delimited list of strings, at least one of them is expected in the first (status)
  
  line of the server response (default: HTTP/1.) If specified skips all other status line
  
  logic (ex: 3xx, 4xx, 5xx processing)
  -u, –url=PATH:URL to GET or POST (default: /)
  -s, –string=STRING:String to expect in the content
  举例:
  1.监控192.168.9.4机器http服务使用情况
  /usr/lib64/nagios/plugins/check_http -I 192.168.9.4
  HTTP OK: HTTP/1.1 302 Found – 619 bytes in 0.009 second response time
  
  |time=0.008873s;;;0.000000 size=619B;;;0
  2.监控192.168.120.2机器http9090端口服务的使用情况
  /usr/lib64/nagios/plugins/check_http -I 192.168.120.2 -p 9090
  HTTP WARNING: HTTP/1.1 403 Forbidden
  3.监控192.168.120.2机器http9090端口服务的使用情况,当http返回200,403时,nagios返回OK
  /usr/lib64/nagios/plugins/check_http -I 192.168.120.2 -p 9090 -e 403,200
  HTTP OK HTTP/1.1 403 Forbidden – 389 bytes in 0.004 seconds |time=0.003794s;;;0.000000
  
  size=389B;;;0
  4.监测www.twitter.com能否访问;
  /usr/lib64/nagios/plugins/check_http -H www.twitter.com
  CRITICAL – Socket timeout after 10 seconds
  5.监测http://123.112.137.221:10009/nagios/能否访问;
  /usr/lib64/nagios/plugins/check_http -I 123.112.137.221 -p 10009 -u /nagios/
  HTTP WARNING: HTTP/1.1 401 Authorization
  6.检测http://www.abc.com/search.aspx?name=abc&id=100能否访问
  /usr/lib64/nagios/plugins/check_http -H www.abc.com -u “/search.aspx?name=abc&id=100&Prime;
  HTTP OK: HTTP/1.1 301 Moved Permanently – 486 bytes in 0.567 second response time
  
  |time=0.567176s;;;0.000000 size=486B;;;0
  ————————————————————————————————-
  自己写监控插件
  监控http页面也可以自己写监控插件实现。如监控http://www.ip138.com/ips.asp?
  
  ip=218.204.252.127 的情况。可以通过curl命令下载网页,再根据http返回情况写脚本来实现监控
  
  。下面是实现方式:
  1.监控http返回状态
  curl -o /dev/null -s -w %{http_code} http://www.ip138.com/ips.asp?ip=218.204.252.127
  -o 把下载的所有内容都重定向到/dev/null,-s命令,屏蔽了curl本身的输出,而-w参数,是根据
  
  我们自己的需要,自定义了curl的输出格式。这里输出http的返回状态码。
  2.监控web站点的响应时间
  curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}
  
  http://www.ip138.com/ips.asp?ip=218.204.252.127
  其中:
  time_connect表示建立到服务器的 TCP 连接所用的时间
  time_starttransfer表示在发出请求之后,Web 服务器返回数据的第一个字节所用的时间
  time_total表示完成请求所用的时间
  3.check_dthttp脚本
  cat check_dthttp
  #!/bin/bash
  # Using to check dongtai http.
  # Made by yunhaozou@gmail.com, 2010/11/21.
  status[0]=”OK: “
  status[1]=”WARNING: “
  status[2]=”CRITICAL: “
  status[3]=”UNKNOWN: “
  if [ $# -lt 2 ]
  then
  echo “Usage:$0 -u url”
  exit 777
  fi
  httpcode=`curl -o /dev/null -s -w %{http_code} $2`
  if [ $httpcode -eq "200" ]
  then
  status=0
  echo “OK – http $httpcode.”
  exit 0
  else
  status=2
  echo “Critical – http $httpcode.”
  exit 2
  fi
  4.监控
  通过nrpe的方式实现:
  cat /etc/nagios/nrpe.cfg
  command[check_ip138]=/usr/lib64/nagios/plugins/check_dthttp -u
  
  http://www.ip138.com/ips.asp?ip=218.204.252.127
  ——————————————————————————————————————————
  HTTP协议返回状态码表
  1**:请求收到,继续处理
  2**:操作成功收到,分析、接受
  3**:完成此请求必须进一步处理
  4**:请求包含一个错误语法或不能完成
  5**:服务器执行一个完全有效请求失败
  ————-
  100——客户必须继续发出请求
  101——客户要求服务器根据请求转换HTTP协议版本
  200——交易成功
  201——提示知道新文件的URL
  202——接受和处理、但处理未完成
  203——返回信息不确定或不完整
  204——请求收到,但返回信息为空
  205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
  206——服务器已经完成了部分用户的GET请求
  300——请求的资源可在多处得到
  301——删除请求数据
  302——在其他地址发现了请求数据
  303——建议客户访问其他URL或访问方式
  304——客户端已经执行了GET,但文件未变化
  305——请求的资源必须从服务器指定的地址得到
  306——前一版本HTTP中使用的代码,现行版本中不再使用
  307——申明请求的资源临时性删除
  ————–
  400——错误请求,如语法错误
  401——请求授权失败
  402——保留有效ChargeTo头响应
  403——请求不允许
  404——没有发现文件、查询或URl
  405——用户在Request-Line字段定义的方法不允许
  406——根据用户发送的Accept拖,请求资源不可访问
  407——类似401,用户必须首先在代理服务器上得到授权
  408——客户端没有在用户指定的饿时间内完成请求
  409——对当前资源状态,请求不能完成
  410——服务器上不再有此资源且无进一步的参考地址
  411——服务器拒绝用户定义的Content-Length属性请求
  412——一个或多个请求头字段在当前请求中错误
  413——请求的资源大于服务器允许的大小
  414——请求的资源URL长于服务器允许的长度
  415——请求资源不支持请求项目格式
  416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求
  也不包含If-Range请求头字段
  417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下
  一级服务器不能满足请求
  —————
  500——服务器产生内部错误
  501——服务器不支持请求的函数
  502——服务器暂时不可用,有时是为了防止发生系统过载
  503——服务器过载或暂停维修
  504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长
  505——服务器不支持或拒绝支请求头中指定的HTTP版本
  
  本文出自孤风颠影|网站运维 网址:http://yunhaozou.org/monitor/103.html.转载请保留

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110898-1-1.html 上篇帖子: Nagios在RHEL5.3上部署 下篇帖子: nagios总结二
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表