| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -219,56 +219,36 @@ class FileWatch(Analysis):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						def __init__(self,conf):
 | 
					 | 
					 | 
					 | 
						def __init__(self,conf):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pass
 | 
					 | 
					 | 
					 | 
							pass
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						def split(self,row):
 | 
					 | 
					 | 
					 | 
						def split(self,row):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							x = row.split(' ')
 | 
					 | 
					 | 
					 | 
							x = row.split(' ')
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							r = {}
 | 
					 | 
					 | 
					 | 
							r = {}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
 | 
					 | 
					 | 
					 | 
							months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							if x:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								if 'K' in x[0]:
 | 
					 | 
					 | 
					 | 
								if 'K' in x[0]:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								size = x[0].replace('K','').replace('KB','') / 1000
 | 
					 | 
					 | 
					 | 
									print x
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									size = float(x[0].replace('K','').replace('KB','')) / 1000
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								elif 'M' in x[0] :
 | 
					 | 
					 | 
					 | 
								elif 'M' in x[0] :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									size = x[0].replace('MB','')
 | 
					 | 
					 | 
					 | 
									size = x[0].replace('MB','')
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								elif 'G' in x[0] :
 | 
					 | 
					 | 
					 | 
								elif 'G' in x[0] :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									size = x[0].replace('GB','') * 1000
 | 
					 | 
					 | 
					 | 
									size = x[0].replace('GB','') * 1000
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								elif 'T' in x[0] :
 | 
					 | 
					 | 
					 | 
								elif 'T' in x[0] :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									pass
 | 
					 | 
					 | 
					 | 
									pass
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							month	= months.index(m[1]) + 1
 | 
					 | 
					 | 
					 | 
								month	= months.index(x[1]) + 1
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								day	= x[2]
 | 
					 | 
					 | 
					 | 
								day	= x[2]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							hour,minute	= x[3].split(':')
 | 
					 | 
					 | 
					 | 
								print [' ** ',x[4]]
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								#hour,minute	= x[3].split(':')
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								year	= x[4]
 | 
					 | 
					 | 
					 | 
								year	= x[4]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return {"size":size,"age":age}	
 | 
					 | 
					 | 
					 | 
								return {"size":size,"age":age}	
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return None
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						def evaluate(self,path):
 | 
					 | 
					 | 
					 | 
						def evaluate(self,path):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							cmd = "find  :path|xargs ls -lh |awk '{print $5,$6,$7,$8,$9}'".replace(":path",path)
 | 
					 | 
					 | 
					 | 
							cmd = "find  :path|xargs ls -lh |awk '{print $5,$6,$7,$8,$9}'".replace(":path",path)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							print cmd
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							handler = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
 | 
					 | 
					 | 
					 | 
							handler = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							ostream = handler.communicate()[0].split('\n')
 | 
					 | 
					 | 
					 | 
							ostream = handler.communicate()[0].split('\n')
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							[self.split(stream) for stream in ostream if stream.strip() != '']
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pass
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					"""
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						This class attempts to retrieve information form a jmxproxy
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						The resulting is a dataset that will be used for mining, and detection of anomalies
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					"""
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					class Jmx (Analysis):
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						def __init__(self,conf):
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							self.conf = conf
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						def evaluate(self,**param):
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							app = param['app']
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							r = param['host'].split('@')
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							host = r[1].strip()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							login = base64.b64encode("%s" % (r[0]))
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							uri = "".join(['http://',host,'/manager/jmxproxy/?qry=*:j2eeType=Servlet,*'])
 | 
					 | 
					 | 
					 | 
							print [self.split(stream) for stream in ostream if stream.strip() != '']
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							pass
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							request = http.Request(uri)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							request.add_header('Authorization','Basic '+login)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							r = http.urlopen(request)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							stream= r.read()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							r.close()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							self.parse(stream)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						def parse(self,stream):
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							print stream
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return {}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					class Monitor (Thread):
 | 
					 | 
					 | 
					 | 
					class Monitor (Thread):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						def __init__(self,pConfig,pWriter,id='processes') :
 | 
					 | 
					 | 
					 | 
						def __init__(self,pConfig,pWriter,id='processes') :
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |