Exemplo n.º 1
0
                msgDic[role].append(errMessage)
            else:
                msgDic[role] = [errMessage]
        for role in msgDic.keys():  # 遍历字典的key值
            phoneSql = (
                "select t.phone_no from monitor.vop_mot_role_phone t where t.role_name='%s'" % role
            )  # 获取每个角色对应的电话号码
            db.executeSQL(cursor, phoneSql)
            result = db.getSQLrst(cursor)
            errMsgList = msgDic[role]  # 短信内容列表
            print errMsgList
            phoneNumList = []
            for phone in result:
                phone = phone[0]
                phoneNumList.append(phone)  # 获取号码列表
            message_send(errMsgList, phoneNumList)  # 发送短信
        id = tuple(idList)  # 刚才发送出去的信息 res_log_id
        dealSql = dealSql()  # 生成更新res_flag 的sql
        upSql = dealSql.upResIdSql(id)
        if upSql:  # 如果sql存在
            db.executeSQL(cursor, upSql)  # 执行sql
            db.sqlcommit(dbconn)  # 提交
        print "update is ok"
    except Exception, e:
        err = "%s %s" % (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "mainMessage Send message falied")
        with open(r"./log/message_error.log", "a") as error_log:
            print >> error_log, ("%s %s" % (err, e))
    finally:
        db.closeCursor(cursor)  # 关闭数据库链接
        db.closeConnect(dbconn)  # 关闭数据库链接
Exemplo n.º 2
0
 #从数据库 获取主机信息,监控命令,监控类型的sql
 db=dealOracle() #实例化处理oracle数据库的类
 filename='./config/dbinfo.ini' #链接数据库的配置文件
 dblist=db.getConnectInfo(filename)
 dbconn=db.connectDb(dblist[0]) #链接数据库
 cursor=db.getCursor(dbconn) #获取游标
 db.executeSQL(cursor,infoSql) #执行sql
 result=db.getSQLrst(cursor) #获取sql执行结果
 time.sleep(2)
 deal=dealdbInfo() #实例化处理信息的类,根据命令执行的频率,判断那条命令应该执行
 infoDic=deal.dealInfo(result)#获取处理后的命令的结果
 ssh=getData() #实例化ssh 登录主机获取主机监控信息的类
 data=ssh.sshMain(infoDic)#获取主机的监控信息
 id=tuple(data[1]) #获取执行的命令的id,用来更新vop_mot_cmd_conf 表的命令执行时间exce_time
 result=data[0] #获取执行命令的结果
 dealSql=dealSql()#实例化处理sql的类
 updateSql=dealSql.upCmdIdSql(id)#获取更新vop_mot_cmd_conf 表exce_time 的sql
 if updateSql: #如果sql 存在
     updateSql=updateSql % now
     db.executeSQL(cursor,updateSql) #执行updatesql
     db.sqlcommit(dbconn) #提交
 dealData=dealData() #实例化 处理 采集到的 监控 信息的类
 resList=dealData.dealRes(result) # 获取处理后的结果
 insertList=[]
 for res in resList: #遍历处理结果
     errMsg=res[1]+':'+res[2]+','+res[3]
     roleName=res[0]
     insertSql="""insert into monitor.vop_mot_res_log (res_log_id,err_content,res_flag,insert_time,role_name,mot_msg,err_value) values (SEQ_ON_VOP_MOT_RES_LOG.nextval,'%s','0',sysdate,'%s','%s','%s')""" % (errMsg,roleName,res[4],res[5])
     insertList.append(insertSql) #获取 insert vop_mot_res_log 表的sql 是个列表
 for insertSql in insertList: # 遍历 列表
     db.executeSQL(cursor,insertSql) # 将处理后 达到告警阀值的信息 插入到vop_mot_res_log 表