Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1838585
  • 博文数量: 293
  • 博客积分: 10127
  • 博客等级: 上将
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 19:05
文章分类

全部博文(293)

文章存档

2011年(11)

2010年(282)

我的朋友

分类: LINUX

2010-09-12 17:05:14

1. 问题的由来
    对于一个网站来说,外部用户能够看到就是该网站的页面。网站页面能否被正常访问,
 以及显示是否正常势必会成为网站整体水平最直接的外在表现。
    那么,如何才能在第一时间检测到网页是否正常,并且给相应的技术人员发出报警来及
时解决问题,而不是等接到用户抱怨的电话后才在慌忙中仓促的解决问题呢?解决这个问题
的关键就是要在第一时间发现问题,发现那些不能显示的网页或是显示不正常的网页,并及
时发出报警。当然我们可以通过人工的方法去监测,但对于一些大型的、复杂的网站来说就
不是很合适了,我们可以使用监控软件来解决这个问题。 我所使用的就是Nagios软件,它
提供的插件(Plugins)中有相应的命令可以完成对网页的监控。
 
2. 如何通过Nagios解决此类问题
    对于Nagios、NRPE 以及Nagios Plugins 的安装配置网站的资料很多,在我的Blog 中
也有相应的文章可以参考,在这里就不再过多的说明了。
    想使用Nagios监控网页状况,Nagios插件中的一个命令不得不被提及,那就是
check_http,我没可以使用它来检查网页是否正常、可用。该命令的具体说明和用法如下。
             选  项                                   说  明
        -H, --hostname=ADDRESS                      主机名或域名
        -I, --IP-address=ADDRESS server的IP地址,用于在不能DNS 的
                                                    情况下
        -p, --port=INTEGER                          端口号,默认80
        -u, --url=PATH                              url,默认是/
        -w, --warning=DOUBLE                        warning状态的响应时间,单位是秒
        -c, --critical=DOUBLE                       critical状态的响应时间,单位是秒
        -t, --timeout=INTEGER                       连接超时时间,默认 10秒
 
举一个简单的实例,一个网站的域名是,端口是默认80,需要监测
它的主页/index.html,warning 时间和critical 时间、 timeout时间使用默认值,不设置。
具体命令书写如下。    
    $ ./check_http -H -u /index.html 
    HTTP OK HTTP/1.1 200 OK - 115357 bytes in 1.717 seconds |time=1.716934s;;;0.000000 
     size=115357B;;;0
    
    可以看出该网页是正常的,如果网页地址不对或显示有错误也会有相应的反馈信息。
3. 具体配置Nagios来监控网页
    通过Nagios监控网页一般有两种方式,一种是直接通过Nagios监控主机配置监控服务
监视网页;另一种是在某一安装了NRPE 的客户端主机上配置监控命令,通过NRPE监控网页
情况,再将结果传回给Nagios监控主机。通过一个装有NRPE 的客户端作为桥 的方式可以
使主机更加安全,减轻Nagios主机的负担,同时可以避免在Nagios主机上配置DNS等不必
要的麻烦。
方式一、直接通过Nagios主机监控网页。
 
方式二、通过NRPE监控网页。
 
方式一的配置十分简单,只需要在Nagios 的配置文件里添加一个服务即可。
    配置内容如下   
    修改./etc/objects/commands.cfg,增加如下内容。
      #'check_http' check web page
      define command{
              command_name    check_webpage
              command_line    $USER1$/check_http $ARG1$
              }
    修改./etc/objects/localhost.cfg,增加如下内容。
      define host{
              use                     linux-server            
              host_name               web_pages
              alias                   web_pages
              address                 127.0.0.1
              }
      #the check web pages on the remote host.
      define service{
              use                     generic-service
              host_name                    web_pages      ;主机名,为了便于显示可
      以定义一个虚拟的host
              service_description     web page1
              check_command           check_webpage!-H -u 
      /index.html
              }
    
    方式二的配置方法略复杂一些,需要修改两台主机的配置文件。
    修改NRPE 的配置文件,增加如下内容。
      #check webpage
      command[check_webpage]=/usr/local/nagios        libexec/check_http -H 
      -u /index.html
    
    修改Nagios配置文件,增加如下内容。
      #the check_apache on the remote host.
      define service{
              use                     generic-service
              host_name               hostname
              service_description     web page
              check_command           check_nrpe! check_webpage
 }
    
    以上仅仅是举个简单的例子来说明,当然实际环境要更复杂、页面要更多,可以通过增
加服务(service)的方式将其一一纳入监控范围。
阅读(6427) | 评论(1) | 转发(1) |
0

上一篇:TOMCAT集群和负载均衡

下一篇:NAT概念介绍

给主人留下些什么吧!~~

chinaunix网友2010-09-13 15:02:31

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com