root/platform/nagios-plugins/check_memcached.py @ 22634

Revision 22634, 1.6 kB (checked in by kakikubo, 5 years ago)

beta version

Line 
1#! /usr/bin/env python
2'''
3
4  2007 Kakikubo Teruo
5  check_memcache.py
6
7  Check Memcached Server plugin.
8  This Plugin requires the memcached-Python API.
9  This Plugin was tested only in the python 2.5
10
11'''
12import memcache
13import signal
14import os,sys
15
16from optparse import OptionParser
17
18pid = str(os.getpid())
19# option
20parser = OptionParser()
21parser.add_option("-H","--hostname",dest="hostaddress",
22                  help="Host Address", metavar=" <hostaddr>")
23parser.add_option("-t","--timeout",dest="timeout",
24                  help="timeout x seconds", metavar=" <timeout>", default=10)
25parser.add_option("-p","--port",dest="port",
26                  help="port number", metavar=" <port number>" , default=11211)
27(opts,args)=parser.parse_args()
28
29if not opts.hostaddress:
30    parser.print_help()
31    parser.error("UNKNOWN - Please specify Host")
32    exit(2)
33
34svr = u""
35svr = str(opts.hostaddress) + ":" + str(opts.port)
36mc = memcache.Client([ svr ], debug=0)
37#mc = memcache.Client({opts.hostaddress}:{opts.port}, debug=1)
38#mc = memcache.Client(["ocnblg-tc01-int:112"], debug=1)
39
40def handler(signum, frame):
41    #print 'Signal handler called with signal', signum
42    #raise IOError, "hogehogehgoehgoe"
43    print "CRITICAL - timeout after " + str(opts.timeout) + " seconds"
44    sys.exit(2)
45
46## Set the signal handler
47signal.signal(signal.SIGALRM, handler)
48signal.alarm(int(opts.timeout))
49
50if not mc.set(pid,"nagios value"):
51    print "CRITICAL - cannot set the value"
52    sys.exit(2)
53else:
54    if not mc.get(pid) == 'nagios value':
55        print "CRITICAL - cannot get the value"
56        sys.exit(2)
57    else:
58        mc.delete(pid)
59        print "OK - memcached alive"
60        sys.exit(0)
61
Note: See TracBrowser for help on using the browser.