File: //usr/lib/python2.7/site-packages/lap/elasticsearch.py
#!/usr/bin/python
import urllib2
import socket
import json
socket.setdefaulttimeout(10)
def __run__(params):
try:
host = params.get("host", "localhost")
port = int(params.get("port", "9200"))
timeout = int(params.get("timeout", "10"))
except Exception, e:
return [2, "CRITICAL - Error %s" % repr(e)]
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))
except Exception, e:
return [2, "CRITIAL - Error %s" % repr(e)]
try:
conn = urllib2.Request("http://%s:%s/_cluster/health" % (host, port))
result = urllib2.urlopen(conn, timeout=timeout)
data = json.loads(result.read())
if data["status"] == "green":
return [0, "OK - %s" % repr(str(data['status']))]
elif data["status"] == "yellow":
return [1, "WARNING - %s" % repr(str(data['status']))]
else:
return [2, "CRITICAL - %s" % repr(str(data['status']))]
except Exception, e:
return [2, "CRITICAL - %s" % repr(e)]