File: //usr/lib/python2.7/site-packages/lap/logrwatcher.py
import os
import sys
import time
import datetime
import yaml
import redis
def __run__(params):
REDIS_HOST = params.get('redis_host','127.0.0.1')
REDIS_PORT = int(params.get('redis_port',6379))
REDIS_DB = int(params.get('redis_db',15))
REDIS_KEY = params.get('redis_key','errors:monitoring')
LOG_PATTERN = params.get('log_pattern')
ERROR_THRESHOLD = int(params.get('error_threshold'))
CRITICAL = []
OK = []
now = datetime.datetime.now()
try:
r = redis.Redis(host=REDIS_HOST,port=REDIS_PORT,db=REDIS_DB)
except:
return [2, "Redis Connection Error"]
key = "%s:%s:%s:%s:%s" % (REDIS_KEY,now.year, now.month, now.day, now.hour)
if not r.exists(key):
return [0, "Error Log OK"]
else:
if r.zscore(key,LOG_PATTERN) > ERROR_THRESHOLD:
return [2, "Too Many Errors. Please check log files for %s" % LOG_PATTERN]
else:
return [0, "Error Log OK"]