It takes arguments ip of db, delay , table name holds delay data, and sid
#!/usr/bin/python
import sys,os
import cx_Oracle
ip = str(sys.argv[1])
port = 1521
SID = str(sys.argv[4])
maxcount = sys.argv[2]
TABLE = str(sys.argv[3])
dsn_tns = cx_Oracle.makedsn(ip, port, SID)
connection = cx_Oracle.connect('dbuser', 'dbpass', dsn_tns)
cursor = connection.cursor()
cursor.execute("SELECT max(m5_id) FROM " + TABLE )
m5_id = cursor.fetchall()[0][0]
cursor.execute("SELECT ROUND((SYSDATE -(SELECT MAX(M5_REAL_DATE_LOCAL) FROM " + TABLE + "))*1440,2) FROM DUAL")
delay = cursor.fetchall()[0][0]
cursor.close()
connection.close()
if int(delay) < int(maxcount):
print "OK | " + str(delay)
sys.exit(0)
else:
print "NOK | " + str(delay)
sys.exit(2)
Nagios definitionsdefine command{
command_name check_dwhtime3
command_line $USER1$/check_dbrecordcount2.py $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$
}
define service{
use generic-service
host_name servername
service_description DWH time
check_command check_dwhtime3!90!DWH.DWH_TIME_TB!SID
contact_groups admins
}
No comments:
Post a Comment