def pull_status_data(): #pull out status data from Redis #monitor_status_dic = redis_connector.r.get('monitor_status_data') r=redis_connector.get_redis() monitor_status_dic = r.get('monitor_status_data') #取到到清除该数据 #redis_connector.r.delete('monitor_status_data') if monitor_status_dic is not None: monitor_status_dic = json.loads(monitor_status_dic) return monitor_status_dic else: return "No monitor data found in Redis,please check..."
#!/usr/bin/env python import redis_connector r = redis_connector.get_redis() r.set('aa', 'test') print 'ok' print r['aa'] ''' data_dic={'name':'zxv','age':22} r.lpush('ls','str') r.lpush('ls',data_dic) ''' print r.lrange('ls', 0, -1) a_list = [1, 2, 3, 4, 5] #r.lpush('ls',a_list) result = r.lrange('ls', 0, 0) len = r.llen('ls') print len for i in range(r.llen('ls')): value = r.lpop('ls') print value b_list = result[0].strip("[]").split(",") print type(b_list[0])
def status_handler(status_dic,host_dic): alert_dic={} #if host_dic.has_key(status_dic[]) #解析处理本server内的各主机监控字典,分析状态字典的内容 for h_k,one_host_dic in host_dic.items(): alert_list=[] #one_host_dic=host_dic[h_k] #1分析某台主机的是否返回了结果数据 print "\033[32;1mhost:%s\033[0m"%(h_k) if status_dic.has_key(h_k): #处理监控数据存入redis中??? status_dic[h_k]['inredis_time']=time.time() #存入到本地redis r=redis_connector.get_redis() r.lpush(h_k,status_dic[h_k]) #print r.lpop(h_k) #2分析该主机的监控服务项 if len(one_host_dic['service']): #状态字典是否获取了监控项的状态 if len(status_dic[h_k]['result_values']): #得到服务项的监控间隔 for service_k in one_host_dic['service'].keys(): #print service_k,one_host_dic['service'][service_k] #测试输出 #状态字典中是否有主机的服务项 if status_dic[h_k]['result_values'].has_key(service_k): try: #主机存在该监控服务项,用monitor_data_handle.py进行具体处理 alert_info = alert_handle.service_handle(one_host_dic['service'][service_k], status_dic[h_k]['result_values'][service_k] ) if len(s) !=0: alert_list.append(alert_info) else:pass except KeyError: print "service %s not exist in client data"%(service_k) alert_list.append({"NoValidServiceData":(service_k,"service not exist in client data")} ) else: print 'host:%s ,service:% is not exist'%(h_k,service_k) alert_list.append({"NoValidServiceData":(service_k,"service not exist in client data")} ) else: print 'host: %s has no get result data'%(one_host_dic['hostname']) alert_list.append('host: %s has no get result data'%(one_host_dic['hostname'])) else: print '%s host has no service....'%(h_k) #1没有收集到某主机h_k的状态信息 else: alert_list.append('host: %s has not get monitoring status data...'%(h_k)) print 'host: %s has not get monitoring status data...'%(one_host_dic['hostname']) #为某个主机添加警告列表 alert_dic[h_k]=alert_list #2分析需要得到监控状态的信息 #一个处理监控项中是否有该结果信息, #另一个是处理在规定的时间间隔中,某主机的监控信息是否返回 for s_k in status_dic.keys(): #状态主机的hostname alert_list=[] if s_k in host_dic.keys(): for service_k in status_dic[s_k]['result_values'].keys(): if service_k in host_dic[s_k]['service'].keys(): pass else: print "host %s service %s is not find in db..." %(s_k,service_k) alert_list.append("host %s service %s is not find in db..." %(s_k,service_k)) else: print "%s host is not find in monitor db...." %(s_k) alert_list.append("%s host is not find in monitor db...." %(s_k)) alert_dic[s_k]=alert_list #报警信息存入到redis中,proxy端放到远程的里面。 alert_dic['TimeStamp'] = time.time() print alert_dic if conf.proxy_server: r=redis_connector.get_redis('10.168.0.218',6379,0) else: r=redis_connector.get_redis() r['TempTriAquaeAlertList'] = json.dumps(alert_dic) #redis_connector.r['TempTriAquaeAlertList'] = json.dumps(alert_dic) '''
#!/usr/bin/env python import redis_connector r = redis_connector.get_redis() r.set('aa','test') print 'ok' print r['aa'] ''' data_dic={'name':'zxv','age':22} r.lpush('ls','str') r.lpush('ls',data_dic) ''' print r.lrange('ls',0,-1) a_list=[1,2,3,4,5] #r.lpush('ls',a_list) result=r.lrange('ls',0,0) len=r.llen('ls') print len for i in range(r.llen('ls')): value=r.lpop('ls') print value b_list=result[0].strip("[]").split(",") print type(b_list[0])