Beispiel #1
0
def send_api(host,port,data):
    try:
        send_s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        print 'start connect proxy server/client'
        send_s.connect((host,port))
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        send_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print '\033[34;1m sending Monitor Data to proxy server/client  .... \033[0m'
        #判断RSA认证结果
        RSA_status=send_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发送监控项数据改变,这里有本机、代理。如何判断?
            print RSA_status
            send_s.send('MonitorDataChange'+'|'+str(len(data)))
            transfer_status=send_s.recv(1024)
            if transfer_status=='ReadyToReceiveData':
                #send_s.send(str(len(proxy_monitor_list_json)))
                print data
                send_s.send(data)
                #break       
            else:
                pass
        else:
            print 'RSA Virification error!'
    except socket.error:
        print socket.error
    finally:
        send_s.close()
Beispiel #2
0
def push_status_data(host, port):
    try:
        #connect server let the status data into redis
        psh_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        psh_s.connect((host, port))
        RSA_signal, random_num = 'RSA_KEY_Virification', str(
            random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                     random_num)
        psh_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
        print '\033[34;1m sending status to Monitor server .... \033[0m'
        #判断RSA认证结果
        RSA_status = psh_s.recv(1024)
        if RSA_status == 'RSA_OK':
            psh_s.send('StatusDataIntoRedis')
            status = psh_s.recv(1024)
            if status == "StatusDataIntoRedis_OK":
                return pull_status_data()
            else:
                pass
    except socket.error:

        pprint(socket.error, 'err', exit=1)

        #sys.exit("Socket connect error")
    finally:
        psh_s.close()
Beispiel #3
0
def send2client(host,port,data):
    try:
        send_cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        print 'start connect client host'
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        send_cs.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print '\033[34;1m sending Monitor Data to proxy server  .... \033[0m'
        #判断RSA认证结果
        RSA_status=send_cs.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            send_cs.send('MonitorServicesDataChange')
            transfer_status=send_cs.recv(1024)
            if transfer_status=='ReadyToReceiveData':
                #向client host端发送该主机监控数据
                send_cs.send( json.dumps(data) )
                #break       
            else:
                data_str=send_cs.recv(1024)
                monitor_dic=json.loads(data_str)
        else:
            print 'RSA Virification error!'
    except socket.error:
        print socket.error
    finally:
        send_cs.close()
Beispiel #4
0
def send_data(is2client,host,port,data):
    try:
        send_cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        send_cs.connect((host, port))
        print 'start connect client/server host'
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        print '1----'
        send_cs.send(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print '\033[34;1m sending Monitor Data to proxy server  .... \033[0m'
        #判断RSA认证结果
        RSA_status=send_cs.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            if is2client:
                #向client端分发监控项数据
                send_cs.send('MonitorDataChange'+'|'+str(len(data)))
                print 'MonitorDataChange........'
            else:
                #向server端上传资产数据
                send_cs.send('AssetsDataCollect'+'|'+str(len(data))+'|'+'proxy')
                print 'AssetsDataCollect...............'
            transfer_status=send_cs.recv(1024)
            if transfer_status=='ReadyToReceiveData':
                #向client/server host端发送该主机监控数据/或资产数据
                #send_cs.send(str(len(json.dumps(data))))
                send_cs.send( json.dumps(data) )
        else:
            print 'RSA Virification error!'
    except socket.error:
        print socket.error
    finally:
        send_cs.close()
Beispiel #5
0
def send_api(host, port, data):
    try:
        send_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        print 'start connect proxy server/client'
        send_s.connect((host, port))
        RSA_signal, random_num = 'RSA_KEY_Virification', str(
            random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                     random_num)
        send_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
        print '\033[34;1m sending Monitor Data to proxy server/client  .... \033[0m'
        #判断RSA认证结果
        RSA_status = send_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发送监控项数据改变,这里有本机、代理。如何判断?
            print RSA_status
            send_s.send('MonitorDataChange' + '|' + str(len(data)))
            transfer_status = send_s.recv(1024)
            if transfer_status == 'ReadyToReceiveData':
                #send_s.send(str(len(proxy_monitor_list_json)))
                print data
                send_s.send(data)
                #break
            else:
                pass
        else:
            print 'RSA Virification error!'
    except socket.error:
        print socket.error
    finally:
        send_s.close()
Beispiel #6
0
def socket_test():
    status_dic['hostname'] = hostname
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    RSA_signal, random_num = 'RSA_KEY_Virification', str(
        random_pass.randomPassword(10))
    encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                 random_num)
    s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
    print '\033[34;1m sending status to Monitor server .... \033[0m'

    jsondumps = json.dumps(status_dic)
    sendSignalAndSize = 'datasizetest'
    s.send(sendSignalAndSize)
    flag = s.recv(1024)
    print flag
    get_data = recv_data = s.recv(1024)
    data3 = s.recv(1024)
    #print get_data
    print data3
    #发送标记'OK'不行,这里会有一个粘包的问题。
    '''
    while len(recv_data):  
        recv_data = s.recv(1024)
        get_data+=recv_data
    print type(json.loads(get_data))
    '''
    s.close()
    #with open('d:\info_test.json', 'wb') as f:
    #json.dump(status_dic, f)
    print "wait for the next round..."
Beispiel #7
0
def get_monitor_dic():
    '''第一次连接时,请求得到所有以该代理为服务端的主机监控信息'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((HOST, PORT))
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print 'get assets monitor configure info from server .... '
        req_s.send('GetMonitorItems')
        #如果服务端查不到数据时,会发生异常。
        monitor_data = req_s.recv(1024)
        #该客户端没有被监控
        if monitor_data=='no_monitor':
            req_s.send('get_data')
            #break
        else:
            monitor_dic=json.loads(monitor_data)
            #调用得到的监控数据方法
            get_interval_dic(monitor_dic)
            #send message
            req_s.send('get_data')
        #with open('d:\info_test.json', 'wb') as f:
            #json.dump(status_dic, f)
        #interval_dic = 
    except socket.error:
        print socket.error
    finally:
        req_s.close()
Beispiel #8
0
def send_data(result_dic):
    try:
        client_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client_s.connect((HOST, PORT))
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        client_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print '\033[34;1m sending status to Monitor server .... \033[0m' 
        #判断RSA认证结果
        RSA_status=client_s.recv(1024)
        if RSA_status == 'RSA_OK': 
            #RSA认证通过后,发生数据状态
            result_dic_json=json.dumps(result_dic)
            sendSignalAndSize = 'MonitorResultDataCollect'+'|'+str(len(result_dic_json))+'|'+'client'
            client_s.send(sendSignalAndSize)
            transferSignal = client_s.recv(1024)
            if transferSignal == 'ReadyToReceiveData':
                client_s.send(result_dic_json)
            else:
                pass
    except socket.error:
        print socket.error
    finally:
        client_s.close()
    print "wait for the next round..."
Beispiel #9
0
def socket_test():
    status_dic['hostname'] = hostname
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
    encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
    s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
    print '\033[34;1m sending status to Monitor server .... \033[0m'

    jsondumps = json.dumps(status_dic)
    sendSignalAndSize = 'datasizetest'
    s.send(sendSignalAndSize)
    flag=s.recv(1024)
    print flag
    get_data=recv_data=s.recv(1024)
    data3=s.recv(1024)
    #print get_data
    print data3
    #发送标记'OK'不行,这里会有一个粘包的问题。
    '''
    while len(recv_data):  
        recv_data = s.recv(1024)
        get_data+=recv_data
    print type(json.loads(get_data))
    '''
    s.close()
    #with open('d:\info_test.json', 'wb') as f:
    #json.dump(status_dic, f)
    print "wait for the next round..."
Beispiel #10
0
def get_monitor_dic():
    '''第一次连接时,请求得到所有以该代理为服务端的主机监控信息'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((HOST, PORT))
        RSA_signal, random_num = 'RSA_KEY_Virification', str(
            random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                     random_num)
        req_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
        print 'get assets monitor configure info from server .... '
        req_s.send('GetMonitorItems')
        #如果服务端查不到数据时,会发生异常。
        monitor_data = req_s.recv(1024)
        #该客户端没有被监控
        if monitor_data == 'no_monitor':
            req_s.send('get_data')
            #break
        else:
            monitor_dic = json.loads(monitor_data)
            #调用得到的监控数据方法
            get_interval_dic(monitor_dic)
            #send message
            req_s.send('get_data')
        #with open('d:\info_test.json', 'wb') as f:
        #json.dump(status_dic, f)
        #interval_dic =
    except socket.error:
        print socket.error
    finally:
        req_s.close()
Beispiel #11
0
def send2client(host, port, data):
    try:
        send_cs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        print 'start connect client host'
        RSA_signal, random_num = 'RSA_KEY_Virification', str(
            random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                     random_num)
        send_cs.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
        print '\033[34;1m sending Monitor Data to proxy server  .... \033[0m'
        #判断RSA认证结果
        RSA_status = send_cs.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            send_cs.send('MonitorServicesDataChange')
            transfer_status = send_cs.recv(1024)
            if transfer_status == 'ReadyToReceiveData':
                #向client host端发送该主机监控数据
                send_cs.send(json.dumps(data))
                #break
            else:
                data_str = send_cs.recv(1024)
                monitor_dic = json.loads(data_str)
        else:
            print 'RSA Virification error!'
    except socket.error:
        print socket.error
    finally:
        send_cs.close()
Beispiel #12
0
def send_data(is2client,host,port,data):
    try:
        send_cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        send_cs.connect((host, port))
        print 'start connect client/server host'
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        print '1----'
        send_cs.send(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print '\033[34;1m sending Monitor Data to proxy server  .... \033[0m'
        #判断RSA认证结果
        RSA_status=send_cs.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            if is2client:
                #向client端分发监控项数据
                send_cs.send('MonitorDataChange'+'|'+str(len(data)))
                print 'MonitorDataChange........'
            else:
                #向server端上传资产数据
                send_cs.send('MonitorResultDataCollect'+'|'+str(len(data))+'|'+'proxy')
                print 'MonitorResultDataCollect...............'
            transfer_status=send_cs.recv(1024)
            if transfer_status=='ReadyToReceiveData':
                #向client/server host端发送该主机监控数据/或资产数据
                #send_cs.send(str(len(json.dumps(data))))
                print data
                send_cs.send( data )
        else:
            print 'RSA Virification error!'
    except socket.error:
        print socket.error
    finally:
        send_cs.close()
Beispiel #13
0
def push_status_data(host,port):
    try:
        #connect server let the status data into redis
        psh_s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        psh_s.connect((host,port))
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        psh_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print '\033[34;1m sending status to Monitor server .... \033[0m' 
        #判断RSA认证结果
        RSA_status=psh_s.recv(1024)
        if RSA_status == 'RSA_OK':
            psh_s.send('StatusDataIntoRedis')
            status=psh_s.recv(1024)
            if status == "StatusDataIntoRedis_OK":
                return pull_status_data()
            else:
                pass
    except socket.error:
        
        pprint(socket.error, 'err',exit=1)
        
        #sys.exit("Socket connect error")
    finally:
        psh_s.close()
Beispiel #14
0
def send_data(result_dic):
    try:
        client_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client_s.connect((HOST, PORT))
        RSA_signal, random_num = 'RSA_KEY_Virification', str(
            random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                     random_num)
        client_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
        print '\033[34;1m sending status to Monitor server .... \033[0m'
        #判断RSA认证结果
        RSA_status = client_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态
            result_dic_json = json.dumps(result_dic)
            sendSignalAndSize = 'MonitorResultDataCollect' + '|' + str(
                len(result_dic_json)) + '|' + 'client'
            client_s.send(sendSignalAndSize)
            transferSignal = client_s.recv(1024)
            if transferSignal == 'ReadyToReceiveData':
                client_s.send(result_dic_json)
            else:
                pass
    except socket.error:
        print socket.error
    finally:
        client_s.close()
    print "wait for the next round..."
Beispiel #15
0
def get_monitor_dic():
    '''第一次连接时,请求得到自己的监控项数据'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((HOST, PORT))
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print 'get assets monitor configure info from server .... '
        #判断RSA认证结果
        RSA_status=req_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            print '\033[42;1m---------passed RSA verification--------\033[0m'
            req_s.send('MonitorDataRequest|client')
            #接收到的数据大小如何确定
            monitor_data_size=req_s.recv(1024)
            try:
                if int(monitor_data_size) == 0:
                    print 'no monitor_data configured for this host'
                    #req_s.send('get_info')
                    return 0
                elif int(monitor_data_size) <=8096:
                    monitor_data=req_s.recv(8096)
                else:
                    monitor_data=revc_data_by_size(req_s,int(monitor_data_size))
            except ValueError:
                pprint("Error:%s"% monitor_data_size, 'err')
                sys.exit() 
            if len(monitor_data) == int(monitor_data_size): #data received success
                client_config_data = json.loads(monitor_data)
                if isinstance(client_config_data,list):
                    print 'code goes here----------->'
                    return client_config_data
                else:
                    pprint("Error:%s" % client_config_data, 'err')
                    sys.exit()
            else:
                pprint('Could not retrieve the monitor list for this host,please check with your Monitor server', 'err')
                sys.exit()

                #将监控的数据放到文件中,并对文件生成md5密钥
        else:
            pprint('RSA authentication failed.......','err')
            sys.exit()
    except socket.error:
        pprint(socket.error, 'err')
        sys.exit()
    finally:
        req_s.close()
Beispiel #16
0
def monitor_api(m_dic, m_interval):
	status_dic = multi_job(m_dic['name'], m_interval)
	status_dic['hostname'] = hostname
	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	s.connect((HOST, PORT))
	RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
	encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
	s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
	print '\033[34;1m sending status to Monitor server .... \033[0m' 
	s.send('ReportMonitorStatus')
	transferSignal = s.recv(1024)
	if transferSignal == 'ReadyToReceiveStatusData':
		s.sendall(json.dumps(status_dic))
	s.close()
	print "wait for the next round..."
Beispiel #17
0
def get_monitor_dic():
    '''第一次连接时,请求得到自己的监控项数据'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((HOST, PORT))
        RSA_signal, random_num = 'RSA_KEY_Virification', str(
            random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                     random_num)
        req_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
        print 'get assets monitor configure info from server .... '
        #判断RSA认证结果
        RSA_status = req_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            req_s.send('MonitorDataRequest' + '|' + 'client')
            #接收到的数据大小如何确定
            monitor_data_size = req_s.recv(1024)
            if int(monitor_data_size) == 0:
                print 'no monitor_data configured for this host'
                #req_s.send('get_info')
                return 0
            elif int(monitor_data_size) <= 8096:
                monitor_data = req_s.recv(8096)
            else:
                monitor_data = revc_data_by_size(req_s, int(monitor_data_size))
                #将监控的数据放到文件中,并对文件生成md5密钥
                filename = '../recv/monitor_date_frist.json'
                generate_file(filename, monitor_data)
                global monitor_file_md5
                monitor_file_md5 = generate_file_md5value(filename)
            if len(monitor_data) == int(
                    monitor_data_size):  #data received success
                interval_dic = get_interval_dic(json.loads(monitor_data))
                return interval_dic
            else:
                pprint(
                    'Could not retrieve the monitor list for this host,please check with your Monitor server',
                    'err')
                sys.exit()
            #将监控的数据放到文件中,并对文件生成md5密钥
        else:
            pprint('RSA authentication failed.......', 'err')
            sys.exit()
    except socket.error:
        pprint(socket.error, 'err')
    finally:
        req_s.close()
def get_monitor_dic():
    '''第一次连接时,请求得到自己的监控项数据'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((HOST, PORT))
        RSA_signal, random_num = 'RSA_KEY_Virification', str(
            random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                     random_num)
        req_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
        print 'get assets monitor configure info from server .... '
        #判断RSA认证结果
        RSA_status = req_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            req_s.send('MonitorDataRequest' + '|' + 'client')
            #接收到的数据大小如何确定
            monitor_data_size = req_s.recv(1024)
            if int(monitor_data_size) == 0:
                print 'no monitor_data'
                req_s.send('get_info')
                return 0
                #req_s.send('get_info')
            elif int(monitor_data_size) <= 8096:
                monitor_data = req_s.recv(8096)
            else:
                monitor_data = revc_data_by_size(req_s, int(monitor_data_size))
            print 'get monitor data'
            req_s.send('get_info')
            monitor_dic = json.loads(monitor_data)
            #调用得到的监控数据方法
            interval_dic = get_interval_dic(monitor_dic)
            #send message
            req_s.send('get_data')
            #处理监控项数据,并存储到文件中。
            #{'10.168.7.35': [{'services': u'cpu', 'interval': 30L},,]}
            with open('d:\interval_data_temp.json', 'wb') as f:
                json.dump(interval_dic, f)
            return interval_dic
        else:
            print 'rsa error.......'
    except socket.error:
        print socket.error
    finally:
        req_s.close()
Beispiel #19
0
def get_monitor_dic():
    '''第一次连接时,请求得到自己的监控项数据'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((HOST, PORT))
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print 'get assets monitor configure info from server .... '
        #判断RSA认证结果
        RSA_status=req_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            req_s.send('MonitorDataRequest'+'|'+'client')
            #接收到的数据大小如何确定
            monitor_data_size=req_s.recv(1024)
            if int(monitor_data_size) == 0:
                print 'no monitor_data configured for this host'
                #req_s.send('get_info')
                return 0
            elif int(monitor_data_size) <=8096:
                monitor_data=req_s.recv(8096)
            else:
                monitor_data=revc_data_by_size(req_s,int(monitor_data_size))
                #将监控的数据放到文件中,并对文件生成md5密钥
                filename='../recv/monitor_date_frist.json'
                generate_file(filename,monitor_data)
                global monitor_file_md5
                monitor_file_md5=generate_file_md5value(filename)
            if len(monitor_data) == int(monitor_data_size): #data received success
                interval_dic=get_interval_dic(json.loads(monitor_data))
                return interval_dic
            else:
                pprint('Could not retrieve the monitor list for this host,please check with your Monitor server', 'err')
                sys.exit()
            #将监控的数据放到文件中,并对文件生成md5密钥
        else:
            pprint('RSA authentication failed.......','err')
            sys.exit()
    except socket.error:
        pprint(socket.error, 'err')
    finally:
        req_s.close()
def get_monitor_dic():
    '''第一次连接时,请求得到自己的监控项数据'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((HOST, PORT))
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print 'get assets monitor configure info from server .... '
        #判断RSA认证结果
        RSA_status=req_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,发生数据状态,
            req_s.send('MonitorDataRequest'+'|'+'client')
            #接收到的数据大小如何确定
            monitor_data_size=req_s.recv(1024)
            if int(monitor_data_size) == 0:
                print 'no monitor_data'
                req_s.send('get_info')
                return 0
                #req_s.send('get_info')
            elif int(monitor_data_size) <=8096:
                monitor_data=req_s.recv(8096)
            else:
                monitor_data=revc_data_by_size(req_s,int(monitor_data_size))
            print 'get monitor data'
            req_s.send('get_info')
            monitor_dic=json.loads(monitor_data)
            #调用得到的监控数据方法
            interval_dic=get_interval_dic(monitor_dic)
            #send message
            req_s.send('get_data')
            #处理监控项数据,并存储到文件中。
            #{'10.168.7.35': [{'services': u'cpu', 'interval': 30L},,]}
            with open('d:\interval_data_temp.json', 'wb') as f:
                json.dump(interval_dic, f) 
            return interval_dic
        else:
            print 'rsa error.......'
    except socket.error:
        print socket.error
    finally:
        req_s.close()
Beispiel #21
0
def server_connector(status_dic, HOST,PORT ):
	try:
		s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		s.connect((HOST, PORT))
	except socket.error:
		sys.exit( "TriAquae Master server couldn't be connected!")
		
	RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))

	encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)

	s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 

	print '\033[34;1m getting data from triaquae server .... \033[0m' 
	s.send('SyncConfigDataToTrunkServer')
	transferSignal = s.recv(1024)
	if transferSignal == 'ReadyToReceiveStatusData':
		s.sendall(json.dumps(status_dic))
	s.close()
	print "wait for the next round..."
Beispiel #22
0
def get_monitor_dic(host, port):
    '''第一次连接时,请求得到所有以该代理为服务端的主机监控信息'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((host, port))
        RSA_signal, random_num = 'RSA_KEY_Virification', str(
            random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                     random_num)
        req_s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))
        print 'get assets monitor configure info from server .... '
        #判断RSA认证结果
        RSA_status = req_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,进行监控数据请求
            req_s.send('MonitorDataRequest' + '|' + 'proxy')
            #如果服务端查不到数据时,会发生异常。
            monitor_data_size = req_s.recv(1024)
            global proxy_monitor_dic
            if int(monitor_data_size) == 0:
                #该代理客户端没有被监控
                print 'proxy client has no monitor data...'
                req_s.send('get_info')
                return 0
            elif int(monitor_data_size) <= 4096:
                monitor_data = req_s.recv(4096)
            else:
                monitor_data = receive_data_by_size(req_s,
                                                    int(monitor_data_size))
            req_s.send('get_info')
            proxy_monitor_dic = json.loads(monitor_data)
            print proxy_monitor_dic
            #send message
            print 'get monitor info.... '
            return proxy_monitor_dic
        else:
            print 'rsa error.......'
    except socket.error:
        print socket.error
    finally:
        req_s.close()
Beispiel #23
0
def server_connector(status_dic, HOST, PORT):
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((HOST, PORT))
    except socket.error:
        sys.exit("TriAquae Master server couldn't be connected!")

    RSA_signal, random_num = 'RSA_KEY_Virification', str(
        random_pass.randomPassword(10))

    encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,
                                                 random_num)

    s.sendall(json.dumps((RSA_signal, encrypted_data, random_num)))

    print '\033[34;1m getting data from triaquae server .... \033[0m'
    s.send('SyncConfigDataToTrunkServer')
    transferSignal = s.recv(1024)
    if transferSignal == 'ReadyToReceiveStatusData':
        s.sendall(json.dumps(status_dic))
    s.close()
    print "wait for the next round..."
Beispiel #24
0
def get_monitor_dic(host,port):
    '''第一次连接时,请求得到所有以该代理为服务端的主机监控信息'''
    try:
        req_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        req_s.connect((host, port))
        RSA_signal,random_num = 'RSA_KEY_Virification', str(random_pass.randomPassword(10))
        encrypted_data = key_gen.RSA_key.encrypt_RSA(key_gen.public_file,random_num)
        req_s.sendall(json.dumps( (RSA_signal,encrypted_data, random_num) )) 
        print 'get assets monitor configure info from server .... '
        #判断RSA认证结果
        RSA_status=req_s.recv(1024)
        if RSA_status == 'RSA_OK':
            #RSA认证通过后,进行监控数据请求
            req_s.send('MonitorDataRequest'+'|'+'proxy')
            #如果服务端查不到数据时,会发生异常。
            monitor_data_size=req_s.recv(1024)
            global proxy_monitor_dic
            if int(monitor_data_size) == 0:
                #该代理客户端没有被监控
                print 'proxy client has no monitor data...'
                req_s.send('get_info')
                return 0
            elif int(monitor_data_size) <= 8096:
                monitor_data = req_s.recv(8096)
            else:
                monitor_data =receive_data_by_size(req_s,int(monitor_data_size))
            req_s.send('get_info')
            proxy_monitor_dic=json.loads(monitor_data)
            print proxy_monitor_dic
            #send message
            print 'get monitor info.... '
            return proxy_monitor_dic
        else:
            print 'rsa error.......'
    except socket.error:
        print socket.error
    finally:
        req_s.close()