object-python-监控web状态-nagios-plug

#! /usr/bin/env python2.6
# 2013-1-28
# written by Tony.yang
#

import os
import sys
import getopt
import urllib

def usage():
        print """
---------------------------------------------------------------------------------------------
| Tony-warn: This nagios receiving return status.(0:OK; 1:WARNING;  2:CRITICAL;  3:UNKNOWN) |
---------------------------------------------------------------------------------------------
Usage: check_web_status [-h|--help] [-u|--url value] [-s|--status url_status]

If url_status is not %s of the url, the script will send critical message. % (url_status)
"""
        sys.exit(3)

# obtain command args
try:
        options, args = getopt.getopt(sys.argv[1:], 'hu:s:', '--help --url= --status=')
except getopt.GetoptError:
        usage()
        sys.exit(3)

#
argUrl = 'http://__init__'
argStatus = '200__init__'

#
for name, value in options:
        if name in ('-h', '--help'):
                usage()
        if name in ('-u', '--url'):
                try:
                        argUrl = value
                except Exception:
                        print "Unable to converting char URL\n"
        if name in ('-s', '--status'):
                try:
                        argStatus = value
                except Exception:
                        print "Unable to converting char STATUS\n"
                        usage()

try:
        Status_url = urllib.urlopen(argUrl).getcode()
        #print  "WEB: %s" % Status_url
except Exception:
        print "GETLOADAVG UNKNOWN: Error while requesting this URL"
        sys.exit(3)

if str(argStatus) == str(Status_url):
        print "WEBURL OK: This %s state is %s" % (argUrl, Status_url)
        print "0"
        sys.exit(0)
else:
        #print "weburl xx: the url is %s" % (argStatus)
        print "WEBURL CRITICAL: This %s state is %s" % (argUrl, Status_url)
        print "2"
        sys.exit(2)


备注:
此脚本使用起来很灵活,可以和nagios使用起来也很方便,废话不多说,看实例:
python2.6 check_web_status.py -u yoururl -s yoururl_status(200, 301, 302, 404, 500 ... 都可以)

[xxx@xxx 10:32:47 ]# /usr/bin/python2.6 check_web_status.py -u http://www.8558.com/ -s 200
WEBURL OK: This http://www.8558.com/ state is 200
0  <----为nagios返回0
[xxx@xxx 10:32:47 ]# /usr/bin/python2.6 check_web_status.py -u http://www.8558.com/index.ph -s 200
WEBURL CRITICAL: This http://www.8558.com/index.ph state is 404
2  <----为nagios返回2


解释:-u 参数后面可以加你要监控的网址。
            -s  参数后面可以加你要监控网址的状态,如何你监控的状态是301,那么除了301状态,其他的会报警给nagios。

创新互联建站致力于互联网品牌建设与网络营销,包括成都做网站、成都网站制作、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联建站为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联建站核心团队10年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。

网站栏目:object-python-监控web状态-nagios-plug
URL分享:https://www.cdcxhl.com/article48/gijdep.html

成都网站建设公司_创新互联,为您提供做网站搜索引擎优化自适应网站用户体验网站设计公司网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设