mirror of https://github.com/Aidaho12/haproxy-wi
				
				
				
			
							parent
							
								
									d6f79bff7b
								
							
						
					
					
						commit
						2e331a4582
					
				| 
						 | 
				
			
			@ -432,7 +432,7 @@ def update_db_v_42(**kwargs):
 | 
			
		|||
	
 | 
			
		||||
def update_ver(**kwargs):
 | 
			
		||||
	con, cur = get_cur()
 | 
			
		||||
	sql = """update version set version = '4.2.2.0'; """
 | 
			
		||||
	sql = """update version set version = '4.2.3.0'; """
 | 
			
		||||
	try:    
 | 
			
		||||
		cur.execute(sql)
 | 
			
		||||
		con.commit()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										56
									
								
								app/funct.py
								
								
								
								
							
							
						
						
									
										56
									
								
								app/funct.py
								
								
								
								
							| 
						 | 
				
			
			@ -102,7 +102,13 @@ def telegram_send_mess(mess, **kwargs):
 | 
			
		|||
	for telegram in telegrams:
 | 
			
		||||
		token_bot = telegram[1]
 | 
			
		||||
		channel_name = telegram[2]
 | 
			
		||||
			
 | 
			
		||||
		
 | 
			
		||||
	if token_bot == '' or channel_name == '':
 | 
			
		||||
		mess = " Fatal: Can't send message. Add Telegram chanel before use alerting at this servers group"
 | 
			
		||||
		print(mess)
 | 
			
		||||
		logging('localhost', mess, haproxywi=1)
 | 
			
		||||
		sys.exit()
 | 
			
		||||
		
 | 
			
		||||
	if proxy is not None and proxy != '' and proxy != 'None':
 | 
			
		||||
		apihelper.proxy = {'https': proxy}
 | 
			
		||||
	try:
 | 
			
		||||
| 
						 | 
				
			
			@ -280,26 +286,33 @@ def diff_config(oldcfg, cfg):
 | 
			
		|||
		pass
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
def get_sections(config):
 | 
			
		||||
def get_sections(config, **kwargs):
 | 
			
		||||
	record = False
 | 
			
		||||
	return_config = list()
 | 
			
		||||
	with open(config, 'r') as f:
 | 
			
		||||
		for line in f:		
 | 
			
		||||
			if ( 
 | 
			
		||||
				line.startswith('listen') or 
 | 
			
		||||
				line.startswith('frontend') or 
 | 
			
		||||
				line.startswith('backend') or 
 | 
			
		||||
				line.startswith('cache') or 
 | 
			
		||||
				line.startswith('defaults') or 
 | 
			
		||||
				line.startswith('global') or 
 | 
			
		||||
				line.startswith('#HideBlockEnd') or 
 | 
			
		||||
				line.startswith('#HideBlockStart') or
 | 
			
		||||
				line.startswith('peers') or
 | 
			
		||||
				line.startswith('resolvers') or
 | 
			
		||||
				line.startswith('userlist')
 | 
			
		||||
				):		
 | 
			
		||||
			if kwargs.get('service') == 'nginx':
 | 
			
		||||
				if 'server_name' in line:
 | 
			
		||||
					line = line.split('server_name')[1]
 | 
			
		||||
					line = line.split(';')[0]
 | 
			
		||||
					line = line.strip()
 | 
			
		||||
					return_config.append(line)
 | 
			
		||||
			else:	
 | 
			
		||||
				if ( 
 | 
			
		||||
					line.startswith('listen') or 
 | 
			
		||||
					line.startswith('frontend') or 
 | 
			
		||||
					line.startswith('backend') or 
 | 
			
		||||
					line.startswith('cache') or 
 | 
			
		||||
					line.startswith('defaults') or 
 | 
			
		||||
					line.startswith('global') or 
 | 
			
		||||
					line.startswith('#HideBlockEnd') or 
 | 
			
		||||
					line.startswith('#HideBlockStart') or
 | 
			
		||||
					line.startswith('peers') or
 | 
			
		||||
					line.startswith('resolvers') or
 | 
			
		||||
					line.startswith('userlist')
 | 
			
		||||
					):		
 | 
			
		||||
						line = line.strip()
 | 
			
		||||
						return_config.append(line)
 | 
			
		||||
					
 | 
			
		||||
	return return_config
 | 
			
		||||
		
 | 
			
		||||
| 
						 | 
				
			
			@ -834,22 +847,21 @@ def get_files(dir = get_config_var('configs', 'haproxy_save_configs_dir'), forma
 | 
			
		|||
		file = set()
 | 
			
		||||
	return_files = set()
 | 
			
		||||
	i = 0
 | 
			
		||||
	for files in glob.glob(os.path.join(dir,'*.'+format)):	
 | 
			
		||||
	for files in sorted(glob.glob(os.path.join(dir,'*.'+format))):		
 | 
			
		||||
		if format == 'log':
 | 
			
		||||
			file += [(i, files.split('/')[5])]
 | 
			
		||||
		else:
 | 
			
		||||
		else:		
 | 
			
		||||
			file.add(files.split('/')[-1])
 | 
			
		||||
		i += 1
 | 
			
		||||
	files = sorted(file, reverse=True)
 | 
			
		||||
 | 
			
		||||
	files = file
 | 
			
		||||
	if format == 'cfg' or format == 'conf':
 | 
			
		||||
		for file in files:
 | 
			
		||||
		for file in files:		
 | 
			
		||||
			ip = file.split("-")
 | 
			
		||||
			if serv == ip[0]:
 | 
			
		||||
				return_files.add(file)
 | 
			
		||||
				return_files.add(file)			
 | 
			
		||||
		return sorted(return_files, reverse=True)
 | 
			
		||||
	else: 
 | 
			
		||||
		return files
 | 
			
		||||
		return file
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
def get_key(item):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -136,26 +136,35 @@ if act == "overviewHapserverBackends":
 | 
			
		|||
	from jinja2 import Environment, FileSystemLoader
 | 
			
		||||
	env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True)
 | 
			
		||||
	template = env.get_template('haproxyservers_backends.html')
 | 
			
		||||
	
 | 
			
		||||
	hap_configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')
 | 
			
		||||
	service = form.getvalue('service')
 | 
			
		||||
	if service == 'haproxy':
 | 
			
		||||
		configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')
 | 
			
		||||
		format = 'cfg'
 | 
			
		||||
	elif service == 'nginx':
 | 
			
		||||
		configs_dir = funct.get_config_var('configs', 'nginx_save_configs_dir')
 | 
			
		||||
		format = 'conf'
 | 
			
		||||
	try:
 | 
			
		||||
		sections = funct.get_sections(hap_configs_dir +funct.get_files()[0])
 | 
			
		||||
	except:
 | 
			
		||||
		sections = funct.get_sections(configs_dir+funct.get_files(dir=configs_dir, format=format)[0], service=service)
 | 
			
		||||
	except Exception as e:
 | 
			
		||||
		funct.logging('localhost', str(e), haproxywi=1)
 | 
			
		||||
		try:
 | 
			
		||||
			cfg = hap_configs_dir + serv + "-" + funct.get_data('config') + ".cfg"
 | 
			
		||||
			cfg = configs_dir + serv + "-" + funct.get_data('config') + '.'+format
 | 
			
		||||
		except:
 | 
			
		||||
			funct.logging('localhost', ' Cannot generate cfg path', haproxywi=1)
 | 
			
		||||
		try:
 | 
			
		||||
			error = funct.get_config(serv, cfg)
 | 
			
		||||
			if service == 'nginx':
 | 
			
		||||
				error = funct.get_config(serv, cfg, nginx=1)
 | 
			
		||||
			else:
 | 
			
		||||
				error = funct.get_config(serv, cfg)
 | 
			
		||||
		except:
 | 
			
		||||
			funct.logging('localhost', ' Cannot download config', haproxywi=1)
 | 
			
		||||
		try:
 | 
			
		||||
			sections = funct.get_sections(cfg)
 | 
			
		||||
			sections = funct.get_sections(cfg, service=service)
 | 
			
		||||
		except:
 | 
			
		||||
			funct.logging('localhost', ' Cannot get sections from config file', haproxywi=1)
 | 
			
		||||
			sections = 'Cannot get backends'
 | 
			
		||||
			
 | 
			
		||||
	template = template.render(backends=sections, serv=serv)
 | 
			
		||||
	template = template.render(backends=sections, serv=serv, service=service)
 | 
			
		||||
	print(template)
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			@ -264,20 +273,27 @@ if act == "overviewwaf":
 | 
			
		|||
	
 | 
			
		||||
if act == "overviewServers":
 | 
			
		||||
	import asyncio	
 | 
			
		||||
	async def async_get_overviewServers(serv1, serv2):
 | 
			
		||||
	async def async_get_overviewServers(serv1, serv2, service):
 | 
			
		||||
		server_status = ()
 | 
			
		||||
		commands =  [ "top -u haproxy -b -n 1" ]
 | 
			
		||||
		cmd = 'echo "show info" |nc %s %s -w 1|grep -e "Ver\|CurrConns\|Maxco\|MB\|Uptime:"' % (serv2, sql.get_setting('haproxy_sock_port'))
 | 
			
		||||
		out = funct.subprocess_execute(cmd)
 | 
			
		||||
		out1 = ""
 | 
			
		||||
		if service == 'haproxy':
 | 
			
		||||
			commands =  [ "top -u haproxy -b -n 1" ]
 | 
			
		||||
		else:
 | 
			
		||||
			commands =  [ "top -u nginx -b -n 1" ]
 | 
			
		||||
		
 | 
			
		||||
		for k in out:
 | 
			
		||||
			if "Ncat:" not in k:
 | 
			
		||||
				for r in k:
 | 
			
		||||
					out1 += r
 | 
			
		||||
					out1 += "<br />"
 | 
			
		||||
			else:
 | 
			
		||||
				out1 = "Can\'t connect to HAproxy"
 | 
			
		||||
		if service == 'haproxy':
 | 
			
		||||
			cmd = 'echo "show info" |nc %s %s -w 1|grep -e "Ver\|CurrConns\|Maxco\|MB\|Uptime:"' % (serv2, sql.get_setting('haproxy_sock_port'))
 | 
			
		||||
			out = funct.subprocess_execute(cmd)
 | 
			
		||||
			out1 = ""
 | 
			
		||||
			
 | 
			
		||||
			for k in out:
 | 
			
		||||
				if "Ncat:" not in k:
 | 
			
		||||
					for r in k:
 | 
			
		||||
						out1 += r
 | 
			
		||||
						out1 += "<br />"
 | 
			
		||||
				else:
 | 
			
		||||
					out1 = "Can\'t connect to HAproxy"
 | 
			
		||||
		else:
 | 
			
		||||
			out1 = ''
 | 
			
		||||
 | 
			
		||||
		server_status = (serv1,serv2, out1, funct.ssh_command(serv2, commands))
 | 
			
		||||
		return server_status	
 | 
			
		||||
| 
						 | 
				
			
			@ -292,19 +308,20 @@ if act == "overviewServers":
 | 
			
		|||
		cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
 | 
			
		||||
		user_id = cookie.get('uuid')
 | 
			
		||||
		role = sql.get_user_role_by_uuid(user_id.value)
 | 
			
		||||
		futures = [async_get_overviewServers(kwargs.get('server1'), kwargs.get('server2'))]
 | 
			
		||||
		futures = [async_get_overviewServers(kwargs.get('server1'), kwargs.get('server2'), kwargs.get('service'))]
 | 
			
		||||
 | 
			
		||||
		for i, future in enumerate(asyncio.as_completed(futures)):
 | 
			
		||||
			result = await future
 | 
			
		||||
			servers.append(result)
 | 
			
		||||
		servers_sorted = sorted(servers, key=funct.get_key)
 | 
			
		||||
		template = template.render(service_status=servers_sorted, role=role, id=kwargs.get('id'))
 | 
			
		||||
		template = template.render(service_status=servers_sorted, role=role, id=kwargs.get('id'), service_page=service)
 | 
			
		||||
		print(template)	
 | 
			
		||||
	
 | 
			
		||||
	id = form.getvalue('id')
 | 
			
		||||
	name = form.getvalue('name')
 | 
			
		||||
	service = form.getvalue('service')
 | 
			
		||||
	ioloop = asyncio.get_event_loop()
 | 
			
		||||
	ioloop.run_until_complete(get_runner_overviewServers(server1=name, server2=serv, id=id))
 | 
			
		||||
	ioloop.run_until_complete(get_runner_overviewServers(server1=name, server2=serv, id=id, service=service))
 | 
			
		||||
	ioloop.close()
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,6 +33,17 @@ try:
 | 
			
		|||
	grafana, stderr = funct.subprocess_execute(cmd)
 | 
			
		||||
	cmd = "ps ax |grep 'prometheus ' |grep -v grep|wc -l"
 | 
			
		||||
	prometheus, stderr = funct.subprocess_execute(cmd)
 | 
			
		||||
	is_checker_workers = sql.select_alert()
 | 
			
		||||
	i = 0
 | 
			
		||||
	for s in sql.select_alert():
 | 
			
		||||
		i += 1 
 | 
			
		||||
	is_checker_worker = i
 | 
			
		||||
	is_metrics_workers = sql.select_servers_metrics_for_master()
 | 
			
		||||
	i = 0
 | 
			
		||||
	for s in is_metrics_workers:
 | 
			
		||||
		i += 1
 | 
			
		||||
	is_metrics_worker = i
 | 
			
		||||
 | 
			
		||||
except:
 | 
			
		||||
	role = ''
 | 
			
		||||
	user = ''
 | 
			
		||||
| 
						 | 
				
			
			@ -51,6 +62,9 @@ except:
 | 
			
		|||
	haproxy_wi_log = ''
 | 
			
		||||
	servers = ''
 | 
			
		||||
	stderr = ''
 | 
			
		||||
	is_checker_worker = ''
 | 
			
		||||
	is_metrics_worker = ''
 | 
			
		||||
	token = ''
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template = template.render(h2 = 1,
 | 
			
		||||
| 
						 | 
				
			
			@ -79,5 +93,7 @@ template = template.render(h2 = 1,
 | 
			
		|||
							versions = funct.versions(),
 | 
			
		||||
							haproxy_wi_log = funct.haproxy_wi_log(),
 | 
			
		||||
							servers = servers,
 | 
			
		||||
							is_checker_worker = is_checker_worker,
 | 
			
		||||
							is_metrics_worker = is_metrics_worker,
 | 
			
		||||
							token = token)
 | 
			
		||||
print(template)
 | 
			
		||||
| 
						 | 
				
			
			@ -32,4 +32,27 @@
 | 
			
		|||
        - dashboard_id: 11879
 | 
			
		||||
          revision_id: 3
 | 
			
		||||
          datasource: prometheus
 | 
			
		||||
   
 | 
			
		||||
  tasks:
 | 
			
		||||
    - name: populate service facts
 | 
			
		||||
      service_facts:
 | 
			
		||||
      
 | 
			
		||||
    - name: Open stat port for firewalld
 | 
			
		||||
      firewalld:
 | 
			
		||||
        port: "{{ item }}/tcp"
 | 
			
		||||
        state: enabled
 | 
			
		||||
        permanent: yes
 | 
			
		||||
        immediate: yes
 | 
			
		||||
      ignore_errors: yes
 | 
			
		||||
      no_log: True
 | 
			
		||||
      debugger: never
 | 
			
		||||
      when: (ansible_facts['os_family'] == "RedHat" or ansible_facts['os_family'] == 'CentOS')  and ansible_facts.services["firewalld.service"]['state'] == "running"
 | 
			
		||||
      with_items:  [ "3000", "9090" ]
 | 
			
		||||
      
 | 
			
		||||
    - name: Open stat port for iptables
 | 
			
		||||
      iptables:
 | 
			
		||||
        chain: INPUT
 | 
			
		||||
        destination_port: "{{ item }}"
 | 
			
		||||
        jump: ACCEPT
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
      ignore_errors: yes  
 | 
			
		||||
      with_items:  [ "3000", "9090" ]
 | 
			
		||||
| 
						 | 
				
			
			@ -7,8 +7,12 @@
 | 
			
		|||
	{{backends}}
 | 
			
		||||
{% else %}
 | 
			
		||||
	{% for b in backends %}
 | 
			
		||||
		{% if service == 'haproxy' %}
 | 
			
		||||
		<a href="/app/sections.py?serv={{ serv}}§ion={{b}}" title="Edit backend {{b}}" target="_blank" style="padding-right: 10px;">
 | 
			
		||||
			{{b}}
 | 
			
		||||
		</a>
 | 
			
		||||
		{% else %}
 | 
			
		||||
			{{b}}
 | 
			
		||||
		{% endif %}
 | 
			
		||||
	{% endfor %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,17 +1,27 @@
 | 
			
		|||
{%- for service in service_status -%}
 | 
			
		||||
<div class="server-info">
 | 
			
		||||
	{% if service_page == 'nginx' %}
 | 
			
		||||
	<div class="server-name" style="padding-bottom: 0px;">
 | 
			
		||||
	{% else %}
 | 
			
		||||
	<div class="server-name">
 | 
			
		||||
	{% endif %}
 | 
			
		||||
		Server status
 | 
			
		||||
		<span class="update-icon">
 | 
			
		||||
			<a onclick="showOverviewServer('{{ service.0 }}', '{{ service.1 }}', '{{id}}')" title="Refresh">
 | 
			
		||||
			<a onclick="showOverviewServer('{{ service.0 }}', '{{ service.1 }}', '{{id}}', '{{service_page}}')" title="Refresh">
 | 
			
		||||
				<span class="service-reload"></span>
 | 
			
		||||
			</a>
 | 
			
		||||
		</span>
 | 
			
		||||
	</div>
 | 
			
		||||
	{% if service_page == 'haproxy' %}
 | 
			
		||||
	<div class="haproxy-info">
 | 
			
		||||
		{{ service.2 }}
 | 
			
		||||
	</div>
 | 
			
		||||
	{% endif %}
 | 
			
		||||
	{% if service_page == 'nginx' %}
 | 
			
		||||
	<div class="top-info" style="margin-top: 5px;">
 | 
			
		||||
	{% else %}
 | 
			
		||||
	<div class="top-info">
 | 
			
		||||
	{% endif %}
 | 
			
		||||
		<pre>
 | 
			
		||||
{{ service.3 }}
 | 
			
		||||
		</pre>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,7 +31,7 @@
 | 
			
		|||
		hostnamea.push(host)
 | 
			
		||||
	{% endfor %}
 | 
			
		||||
</script>
 | 
			
		||||
<div id="up-pannel">
 | 
			
		||||
<div id="up-pannel" class="sortable">
 | 
			
		||||
	{% for s in servers %}
 | 
			
		||||
		{% if serv %}
 | 
			
		||||
			<link href="/inc/chart.min.css" rel="stylesheet">
 | 
			
		||||
| 
						 | 
				
			
			@ -45,35 +45,33 @@
 | 
			
		|||
							getWafChartData('{{s.2}}')
 | 
			
		||||
						{% endfor %}
 | 
			
		||||
					{% endif %}
 | 
			
		||||
					showOverviewServer('{{s.1}}', '{{s.2}}', '{{s.0}}');
 | 
			
		||||
					showOverviewServer('{{s.1}}', '{{s.2}}', '{{s.0}}', '{{service}}');
 | 
			
		||||
				}
 | 
			
		||||
				showMetrics();
 | 
			
		||||
			</script>
 | 
			
		||||
		{% endif %}
 | 
			
		||||
	<div class="div-pannel" id="div-pannel-{{s.0}}">
 | 
			
		||||
		<div id="div-server-{{s.0}}" class="div-server-hapwi" {% if service == 'nginx' %}style="height:138px;"{%endif%}>
 | 
			
		||||
			<div class="server-name">	
 | 
			
		||||
				<input type="hidden" id="server-name-{{s.0}}" value="{{s.1}}" />
 | 
			
		||||
				<input type="hidden" id="service" value="{{service}}" />
 | 
			
		||||
				{% if service == 'nginx' %}
 | 
			
		||||
					<input type="hidden" id="service" value="nginx" />
 | 
			
		||||
					{% if s.5.0.3 == 'active' %}
 | 
			
		||||
						<span class="serverUp server-status" title="Uptime: {{s.5.0.4}}"></span>
 | 
			
		||||
					{% else %}
 | 
			
		||||
						<span class="serverDown server-status" title="Downtime: : {{s.5.0.4}}"></span>
 | 
			
		||||
					{% endif %}
 | 
			
		||||
					{{s.1}}
 | 
			
		||||
					{% endif %}					
 | 
			
		||||
				{% else %}
 | 
			
		||||
					<input type="hidden" id="service" value="haproxy" />
 | 
			
		||||
					{% if s.5 != False %}
 | 
			
		||||
						<span class="serverUp server-status" title="{{s.5.0.2}}"></span>
 | 
			
		||||
					{% else %}
 | 
			
		||||
						<span class="serverDown server-status" title="HAProxy is down"></span>
 | 
			
		||||
					{% endif %}
 | 
			
		||||
					{% if not serv %}
 | 
			
		||||
						<a href="/app/hapservers.py?serv={{s.2}}" title="More about {{s.1}}" style="color: #5d9ceb">{{s.1}}</a>
 | 
			
		||||
				{% endif %}
 | 
			
		||||
				{% if not serv %}
 | 
			
		||||
						<a href="/app/hapservers.py?service={{service}}&serv={{s.2}}" title="More about {{s.1}}" style="color: #5d9ceb">{{s.1}}</a>
 | 
			
		||||
					{% else %}
 | 
			
		||||
						{{s.1}}
 | 
			
		||||
					{% endif %}
 | 
			
		||||
				{% endif %}
 | 
			
		||||
				{% if service == 'haproxy' %}
 | 
			
		||||
					{% if s.6|int() >= 1 %}
 | 
			
		||||
						<img 
 | 
			
		||||
| 
						 | 
				
			
			@ -165,17 +163,22 @@
 | 
			
		|||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
		{% if serv %}
 | 
			
		||||
			<div id="ajax-server-{{s.0}}" class="ajax-server"></div>
 | 
			
		||||
			{% if service == 'haproxy' %}
 | 
			
		||||
			<div id="ajax-server-{{s.0}}" class="ajax-server"></div>
 | 
			
		||||
			{% else %}
 | 
			
		||||
			<div id="ajax-server-{{s.0}}" class="ajax-server" style="height: 158px;"></div>
 | 
			
		||||
			{% endif %}
 | 
			
		||||
			<div class="div-server div-backends">			
 | 
			
		||||
				<div class="server-name backends">	
 | 
			
		||||
					Backends:
 | 
			
		||||
					{% if service == 'haproxy' %}
 | 
			
		||||
						Backends:
 | 
			
		||||
					{% else %}
 | 
			
		||||
						Virtual hosts:
 | 
			
		||||
					{% endif %}
 | 
			
		||||
				</div>				
 | 
			
		||||
				<div style="margin-top: 10px;" id="top-{{s.1}}"></div>
 | 
			
		||||
			</div>
 | 
			
		||||
			{% endif %}
 | 
			
		||||
		{% endif %}
 | 
			
		||||
	</div>
 | 
			
		||||
	{% endfor %}
 | 
			
		||||
</div>
 | 
			
		||||
{% if serv and service == 'haproxy' %}
 | 
			
		||||
| 
						 | 
				
			
			@ -195,9 +198,9 @@
 | 
			
		|||
  <p><span class="ui-icon ui-icon-alert" style="float:left; margin:3px 12px 20px 0;"></span>Are you sure?</p>
 | 
			
		||||
</div>
 | 
			
		||||
<script>
 | 
			
		||||
	{% if serv and service == 'haproxy' %}
 | 
			
		||||
		overviewHapserverBackends(ip, hostnamea);
 | 
			
		||||
	{% if serv %}
 | 
			
		||||
		overviewHapserverBackends(ip, hostnamea, '{{service}}');
 | 
			
		||||
	{% endif %}
 | 
			
		||||
	showHapservers(ip, hostnamea, '{{service}}');
 | 
			
		||||
</script>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
{% endblock %}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -111,7 +111,7 @@
 | 
			
		|||
			{% if keep_alive|int() >= 1 %}
 | 
			
		||||
				<span title="running {{ keep_alive }} processe"><span class="serverUp server-status"></span></span>
 | 
			
		||||
			{% else %}
 | 
			
		||||
				<span class="serverDown server-status"></span> 
 | 
			
		||||
				<span class="serverDown server-status"></span>
 | 
			
		||||
			{% endif %}
 | 
			
		||||
			{% if role <= 1 %}
 | 
			
		||||
			<a href="/app/viewlogs.py?viewlogs={{keep_alive_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View keep alive logs" class="logs_link">
 | 
			
		||||
| 
						 | 
				
			
			@ -127,7 +127,11 @@
 | 
			
		|||
		{% if metrics_worker|int() >= 1 %}
 | 
			
		||||
			<span title="running {{metrics_worker}} worker processes"><span class="serverUp server-status"></span></span>
 | 
			
		||||
		{% else %}
 | 
			
		||||
			<span title="running {{metrics_worker}} worker processes"><span class="serverDown server-status"></span></span>
 | 
			
		||||
			{% if is_metrics_worker|int == 0 %}
 | 
			
		||||
			<span title="There is not jobs for metrics"><span class="serverNone server-status"></span></span>
 | 
			
		||||
			{% else %}
 | 
			
		||||
			<span title="running {{is_checker_worker}} worker processes"><span class="serverDown server-status"></span></span>
 | 
			
		||||
			{% endif %}
 | 
			
		||||
		{% endif %}
 | 
			
		||||
		{% if role <= 1 %}
 | 
			
		||||
			<a href="/app/viewlogs.py?viewlogs={{metrics_error_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View worker's logs" class="logs_link">
 | 
			
		||||
| 
						 | 
				
			
			@ -141,7 +145,11 @@
 | 
			
		|||
		{% if checker_worker|int() >= 1 %}
 | 
			
		||||
			<span title="running {{ checker_worker }} worker processes"><span class="serverUp server-status"></span></span>
 | 
			
		||||
		{% else %}
 | 
			
		||||
			{% if is_checker_worker|int == 0 %}
 | 
			
		||||
			<span title="There is not jobs for checker"><span class="serverNone server-status"></span> </span>
 | 
			
		||||
			{% else %}
 | 
			
		||||
			<span title="running {{ checker_worker }} worker processes"><span class="serverDown server-status"></span> </span>
 | 
			
		||||
			{% endif %}
 | 
			
		||||
		{% endif %}
 | 
			
		||||
		{% if role <= 1 %}
 | 
			
		||||
			<a href="/app/viewlogs.py?viewlogs={{checker_error_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View checker's logs" class="logs_link">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,14 +33,18 @@ def main(serv, port):
 | 
			
		|||
		except OSError as e:
 | 
			
		||||
			print(e)
 | 
			
		||||
			sys.exit()
 | 
			
		||||
		readstats = readstats.decode(encoding='UTF-8')	
 | 
			
		||||
		metric = readstats.splitlines()
 | 
			
		||||
		metrics = []
 | 
			
		||||
		for i in range(0,len(metric)):
 | 
			
		||||
			metrics.append(metric[i])
 | 
			
		||||
		
 | 
			
		||||
		try:
 | 
			
		||||
			readstats = readstats.decode(encoding='UTF-8')	
 | 
			
		||||
			metric = readstats.splitlines()
 | 
			
		||||
			metrics = []
 | 
			
		||||
			for i in range(0,len(metric)):
 | 
			
		||||
				metrics.append(metric[i])
 | 
			
		||||
				
 | 
			
		||||
			sql.insert_mentrics(serv, metrics[0], metrics[1], metrics[2], metrics[3])
 | 
			
		||||
		except Exception as e:
 | 
			
		||||
			print(str(e))
 | 
			
		||||
			
 | 
			
		||||
		sql.insert_mentrics(serv, metrics[0], metrics[1], metrics[2], metrics[3])
 | 
			
		||||
	
 | 
			
		||||
		time.sleep(30)	
 | 
			
		||||
				
 | 
			
		||||
		if killer.kill_now:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,12 +41,13 @@ function showHapserversCallBack(serv, hostnamea, service) {
 | 
			
		|||
		}					
 | 
			
		||||
	} );
 | 
			
		||||
}
 | 
			
		||||
function overviewHapserverBackends(serv, hostnamea) {	
 | 
			
		||||
function overviewHapserverBackends(serv, hostnamea, service) {	
 | 
			
		||||
	$.ajax( {
 | 
			
		||||
		url: "options.py",
 | 
			
		||||
		data: {
 | 
			
		||||
			act: "overviewHapserverBackends",
 | 
			
		||||
			serv: serv[0],
 | 
			
		||||
			service: service,
 | 
			
		||||
			token: $('#token').val()
 | 
			
		||||
		},
 | 
			
		||||
		beforeSend: function() {
 | 
			
		||||
| 
						 | 
				
			
			@ -85,7 +86,7 @@ function showOverviewCallBack(serv, hostnamea) {
 | 
			
		|||
		}					
 | 
			
		||||
	} );
 | 
			
		||||
}
 | 
			
		||||
function showOverviewServer(name,ip,id) {
 | 
			
		||||
function showOverviewServer(name,ip,id, service) {
 | 
			
		||||
	$.ajax( {
 | 
			
		||||
		url: "options.py",
 | 
			
		||||
		data: {
 | 
			
		||||
| 
						 | 
				
			
			@ -93,6 +94,7 @@ function showOverviewServer(name,ip,id) {
 | 
			
		|||
			name: name,
 | 
			
		||||
			serv: ip,
 | 
			
		||||
			id: id,
 | 
			
		||||
			service: service,
 | 
			
		||||
			page: 'hapservers.py',
 | 
			
		||||
			token: $('#token').val()
 | 
			
		||||
		},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue