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 definitions
define 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