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):
|
def update_ver(**kwargs):
|
||||||
con, cur = get_cur()
|
con, cur = get_cur()
|
||||||
sql = """update version set version = '4.2.2.0'; """
|
sql = """update version set version = '4.2.3.0'; """
|
||||||
try:
|
try:
|
||||||
cur.execute(sql)
|
cur.execute(sql)
|
||||||
con.commit()
|
con.commit()
|
||||||
|
|
22
app/funct.py
22
app/funct.py
|
@ -103,6 +103,12 @@ def telegram_send_mess(mess, **kwargs):
|
||||||
token_bot = telegram[1]
|
token_bot = telegram[1]
|
||||||
channel_name = telegram[2]
|
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':
|
if proxy is not None and proxy != '' and proxy != 'None':
|
||||||
apihelper.proxy = {'https': proxy}
|
apihelper.proxy = {'https': proxy}
|
||||||
try:
|
try:
|
||||||
|
@ -280,11 +286,18 @@ def diff_config(oldcfg, cfg):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def get_sections(config):
|
def get_sections(config, **kwargs):
|
||||||
record = False
|
record = False
|
||||||
return_config = list()
|
return_config = list()
|
||||||
with open(config, 'r') as f:
|
with open(config, 'r') as f:
|
||||||
for line in f:
|
for line in f:
|
||||||
|
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 (
|
if (
|
||||||
line.startswith('listen') or
|
line.startswith('listen') or
|
||||||
line.startswith('frontend') or
|
line.startswith('frontend') or
|
||||||
|
@ -834,14 +847,13 @@ def get_files(dir = get_config_var('configs', 'haproxy_save_configs_dir'), forma
|
||||||
file = set()
|
file = set()
|
||||||
return_files = set()
|
return_files = set()
|
||||||
i = 0
|
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':
|
if format == 'log':
|
||||||
file += [(i, files.split('/')[5])]
|
file += [(i, files.split('/')[5])]
|
||||||
else:
|
else:
|
||||||
file.add(files.split('/')[-1])
|
file.add(files.split('/')[-1])
|
||||||
i += 1
|
i += 1
|
||||||
files = sorted(file, reverse=True)
|
files = file
|
||||||
|
|
||||||
if format == 'cfg' or format == 'conf':
|
if format == 'cfg' or format == 'conf':
|
||||||
for file in files:
|
for file in files:
|
||||||
ip = file.split("-")
|
ip = file.split("-")
|
||||||
|
@ -849,7 +861,7 @@ def get_files(dir = get_config_var('configs', 'haproxy_save_configs_dir'), forma
|
||||||
return_files.add(file)
|
return_files.add(file)
|
||||||
return sorted(return_files, reverse=True)
|
return sorted(return_files, reverse=True)
|
||||||
else:
|
else:
|
||||||
return files
|
return file
|
||||||
|
|
||||||
|
|
||||||
def get_key(item):
|
def get_key(item):
|
||||||
|
|
|
@ -136,26 +136,35 @@ if act == "overviewHapserverBackends":
|
||||||
from jinja2 import Environment, FileSystemLoader
|
from jinja2 import Environment, FileSystemLoader
|
||||||
env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True)
|
env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True)
|
||||||
template = env.get_template('haproxyservers_backends.html')
|
template = env.get_template('haproxyservers_backends.html')
|
||||||
|
service = form.getvalue('service')
|
||||||
hap_configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')
|
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:
|
try:
|
||||||
sections = funct.get_sections(hap_configs_dir +funct.get_files()[0])
|
sections = funct.get_sections(configs_dir+funct.get_files(dir=configs_dir, format=format)[0], service=service)
|
||||||
except:
|
except Exception as e:
|
||||||
|
funct.logging('localhost', str(e), haproxywi=1)
|
||||||
try:
|
try:
|
||||||
cfg = hap_configs_dir + serv + "-" + funct.get_data('config') + ".cfg"
|
cfg = configs_dir + serv + "-" + funct.get_data('config') + '.'+format
|
||||||
except:
|
except:
|
||||||
funct.logging('localhost', ' Cannot generate cfg path', haproxywi=1)
|
funct.logging('localhost', ' Cannot generate cfg path', haproxywi=1)
|
||||||
try:
|
try:
|
||||||
|
if service == 'nginx':
|
||||||
|
error = funct.get_config(serv, cfg, nginx=1)
|
||||||
|
else:
|
||||||
error = funct.get_config(serv, cfg)
|
error = funct.get_config(serv, cfg)
|
||||||
except:
|
except:
|
||||||
funct.logging('localhost', ' Cannot download config', haproxywi=1)
|
funct.logging('localhost', ' Cannot download config', haproxywi=1)
|
||||||
try:
|
try:
|
||||||
sections = funct.get_sections(cfg)
|
sections = funct.get_sections(cfg, service=service)
|
||||||
except:
|
except:
|
||||||
funct.logging('localhost', ' Cannot get sections from config file', haproxywi=1)
|
funct.logging('localhost', ' Cannot get sections from config file', haproxywi=1)
|
||||||
sections = 'Cannot get backends'
|
sections = 'Cannot get backends'
|
||||||
|
|
||||||
template = template.render(backends=sections, serv=serv)
|
template = template.render(backends=sections, serv=serv, service=service)
|
||||||
print(template)
|
print(template)
|
||||||
|
|
||||||
|
|
||||||
|
@ -264,9 +273,14 @@ if act == "overviewwaf":
|
||||||
|
|
||||||
if act == "overviewServers":
|
if act == "overviewServers":
|
||||||
import asyncio
|
import asyncio
|
||||||
async def async_get_overviewServers(serv1, serv2):
|
async def async_get_overviewServers(serv1, serv2, service):
|
||||||
server_status = ()
|
server_status = ()
|
||||||
|
if service == 'haproxy':
|
||||||
commands = [ "top -u haproxy -b -n 1" ]
|
commands = [ "top -u haproxy -b -n 1" ]
|
||||||
|
else:
|
||||||
|
commands = [ "top -u nginx -b -n 1" ]
|
||||||
|
|
||||||
|
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'))
|
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)
|
out = funct.subprocess_execute(cmd)
|
||||||
out1 = ""
|
out1 = ""
|
||||||
|
@ -278,6 +292,8 @@ if act == "overviewServers":
|
||||||
out1 += "<br />"
|
out1 += "<br />"
|
||||||
else:
|
else:
|
||||||
out1 = "Can\'t connect to HAproxy"
|
out1 = "Can\'t connect to HAproxy"
|
||||||
|
else:
|
||||||
|
out1 = ''
|
||||||
|
|
||||||
server_status = (serv1,serv2, out1, funct.ssh_command(serv2, commands))
|
server_status = (serv1,serv2, out1, funct.ssh_command(serv2, commands))
|
||||||
return server_status
|
return server_status
|
||||||
|
@ -292,19 +308,20 @@ if act == "overviewServers":
|
||||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||||
user_id = cookie.get('uuid')
|
user_id = cookie.get('uuid')
|
||||||
role = sql.get_user_role_by_uuid(user_id.value)
|
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)):
|
for i, future in enumerate(asyncio.as_completed(futures)):
|
||||||
result = await future
|
result = await future
|
||||||
servers.append(result)
|
servers.append(result)
|
||||||
servers_sorted = sorted(servers, key=funct.get_key)
|
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)
|
print(template)
|
||||||
|
|
||||||
id = form.getvalue('id')
|
id = form.getvalue('id')
|
||||||
name = form.getvalue('name')
|
name = form.getvalue('name')
|
||||||
|
service = form.getvalue('service')
|
||||||
ioloop = asyncio.get_event_loop()
|
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()
|
ioloop.close()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,17 @@ try:
|
||||||
grafana, stderr = funct.subprocess_execute(cmd)
|
grafana, stderr = funct.subprocess_execute(cmd)
|
||||||
cmd = "ps ax |grep 'prometheus ' |grep -v grep|wc -l"
|
cmd = "ps ax |grep 'prometheus ' |grep -v grep|wc -l"
|
||||||
prometheus, stderr = funct.subprocess_execute(cmd)
|
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:
|
except:
|
||||||
role = ''
|
role = ''
|
||||||
user = ''
|
user = ''
|
||||||
|
@ -51,6 +62,9 @@ except:
|
||||||
haproxy_wi_log = ''
|
haproxy_wi_log = ''
|
||||||
servers = ''
|
servers = ''
|
||||||
stderr = ''
|
stderr = ''
|
||||||
|
is_checker_worker = ''
|
||||||
|
is_metrics_worker = ''
|
||||||
|
token = ''
|
||||||
|
|
||||||
|
|
||||||
template = template.render(h2 = 1,
|
template = template.render(h2 = 1,
|
||||||
|
@ -79,5 +93,7 @@ template = template.render(h2 = 1,
|
||||||
versions = funct.versions(),
|
versions = funct.versions(),
|
||||||
haproxy_wi_log = funct.haproxy_wi_log(),
|
haproxy_wi_log = funct.haproxy_wi_log(),
|
||||||
servers = servers,
|
servers = servers,
|
||||||
|
is_checker_worker = is_checker_worker,
|
||||||
|
is_metrics_worker = is_metrics_worker,
|
||||||
token = token)
|
token = token)
|
||||||
print(template)
|
print(template)
|
|
@ -32,4 +32,27 @@
|
||||||
- dashboard_id: 11879
|
- dashboard_id: 11879
|
||||||
revision_id: 3
|
revision_id: 3
|
||||||
datasource: prometheus
|
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}}
|
{{backends}}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% for b in backends %}
|
{% 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;">
|
<a href="/app/sections.py?serv={{ serv}}§ion={{b}}" title="Edit backend {{b}}" target="_blank" style="padding-right: 10px;">
|
||||||
{{b}}
|
{{b}}
|
||||||
</a>
|
</a>
|
||||||
|
{% else %}
|
||||||
|
{{b}}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
|
@ -1,17 +1,27 @@
|
||||||
{%- for service in service_status -%}
|
{%- for service in service_status -%}
|
||||||
<div class="server-info">
|
<div class="server-info">
|
||||||
|
{% if service_page == 'nginx' %}
|
||||||
|
<div class="server-name" style="padding-bottom: 0px;">
|
||||||
|
{% else %}
|
||||||
<div class="server-name">
|
<div class="server-name">
|
||||||
|
{% endif %}
|
||||||
Server status
|
Server status
|
||||||
<span class="update-icon">
|
<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>
|
<span class="service-reload"></span>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
{% if service_page == 'haproxy' %}
|
||||||
<div class="haproxy-info">
|
<div class="haproxy-info">
|
||||||
{{ service.2 }}
|
{{ service.2 }}
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if service_page == 'nginx' %}
|
||||||
|
<div class="top-info" style="margin-top: 5px;">
|
||||||
|
{% else %}
|
||||||
<div class="top-info">
|
<div class="top-info">
|
||||||
|
{% endif %}
|
||||||
<pre>
|
<pre>
|
||||||
{{ service.3 }}
|
{{ service.3 }}
|
||||||
</pre>
|
</pre>
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
hostnamea.push(host)
|
hostnamea.push(host)
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</script>
|
</script>
|
||||||
<div id="up-pannel">
|
<div id="up-pannel" class="sortable">
|
||||||
{% for s in servers %}
|
{% for s in servers %}
|
||||||
{% if serv %}
|
{% if serv %}
|
||||||
<link href="/inc/chart.min.css" rel="stylesheet">
|
<link href="/inc/chart.min.css" rel="stylesheet">
|
||||||
|
@ -45,35 +45,33 @@
|
||||||
getWafChartData('{{s.2}}')
|
getWafChartData('{{s.2}}')
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
showOverviewServer('{{s.1}}', '{{s.2}}', '{{s.0}}');
|
showOverviewServer('{{s.1}}', '{{s.2}}', '{{s.0}}', '{{service}}');
|
||||||
}
|
}
|
||||||
showMetrics();
|
showMetrics();
|
||||||
</script>
|
</script>
|
||||||
{% endif %}
|
{% 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 id="div-server-{{s.0}}" class="div-server-hapwi" {% if service == 'nginx' %}style="height:138px;"{%endif%}>
|
||||||
<div class="server-name">
|
<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' %}
|
{% if service == 'nginx' %}
|
||||||
<input type="hidden" id="service" value="nginx" />
|
|
||||||
{% if s.5.0.3 == 'active' %}
|
{% if s.5.0.3 == 'active' %}
|
||||||
<span class="serverUp server-status" title="Uptime: {{s.5.0.4}}"></span>
|
<span class="serverUp server-status" title="Uptime: {{s.5.0.4}}"></span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="serverDown server-status" title="Downtime: : {{s.5.0.4}}"></span>
|
<span class="serverDown server-status" title="Downtime: : {{s.5.0.4}}"></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{s.1}}
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<input type="hidden" id="service" value="haproxy" />
|
|
||||||
{% if s.5 != False %}
|
{% if s.5 != False %}
|
||||||
<span class="serverUp server-status" title="{{s.5.0.2}}"></span>
|
<span class="serverUp server-status" title="{{s.5.0.2}}"></span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="serverDown server-status" title="HAProxy is down"></span>
|
<span class="serverDown server-status" title="HAProxy is down"></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% if not serv %}
|
{% if not serv %}
|
||||||
<a href="/app/hapservers.py?serv={{s.2}}" title="More about {{s.1}}" style="color: #5d9ceb">{{s.1}}</a>
|
<a href="/app/hapservers.py?service={{service}}&serv={{s.2}}" title="More about {{s.1}}" style="color: #5d9ceb">{{s.1}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
{{s.1}}
|
{{s.1}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
|
||||||
{% if service == 'haproxy' %}
|
{% if service == 'haproxy' %}
|
||||||
{% if s.6|int() >= 1 %}
|
{% if s.6|int() >= 1 %}
|
||||||
<img
|
<img
|
||||||
|
@ -165,17 +163,22 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if serv %}
|
{% if serv %}
|
||||||
<div id="ajax-server-{{s.0}}" class="ajax-server"></div>
|
|
||||||
{% if service == 'haproxy' %}
|
{% 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="div-server div-backends">
|
||||||
<div class="server-name backends">
|
<div class="server-name backends">
|
||||||
|
{% if service == 'haproxy' %}
|
||||||
Backends:
|
Backends:
|
||||||
|
{% else %}
|
||||||
|
Virtual hosts:
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 10px;" id="top-{{s.1}}"></div>
|
<div style="margin-top: 10px;" id="top-{{s.1}}"></div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% if serv and service == 'haproxy' %}
|
{% if serv and service == 'haproxy' %}
|
||||||
|
@ -195,8 +198,8 @@
|
||||||
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:3px 12px 20px 0;"></span>Are you sure?</p>
|
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:3px 12px 20px 0;"></span>Are you sure?</p>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
{% if serv and service == 'haproxy' %}
|
{% if serv %}
|
||||||
overviewHapserverBackends(ip, hostnamea);
|
overviewHapserverBackends(ip, hostnamea, '{{service}}');
|
||||||
{% endif %}
|
{% endif %}
|
||||||
showHapservers(ip, hostnamea, '{{service}}');
|
showHapservers(ip, hostnamea, '{{service}}');
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -127,7 +127,11 @@
|
||||||
{% if metrics_worker|int() >= 1 %}
|
{% if metrics_worker|int() >= 1 %}
|
||||||
<span title="running {{metrics_worker}} worker processes"><span class="serverUp server-status"></span></span>
|
<span title="running {{metrics_worker}} worker processes"><span class="serverUp server-status"></span></span>
|
||||||
{% else %}
|
{% 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 %}
|
{% endif %}
|
||||||
{% if role <= 1 %}
|
{% 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">
|
<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">
|
||||||
|
@ -140,9 +144,13 @@
|
||||||
<td>
|
<td>
|
||||||
{% if checker_worker|int() >= 1 %}
|
{% if checker_worker|int() >= 1 %}
|
||||||
<span title="running {{ checker_worker }} worker processes"><span class="serverUp server-status"></span></span>
|
<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 %}
|
{% else %}
|
||||||
<span title="running {{ checker_worker }} worker processes"><span class="serverDown server-status"></span> </span>
|
<span title="running {{ checker_worker }} worker processes"><span class="serverDown server-status"></span> </span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% if role <= 1 %}
|
{% 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">
|
<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">
|
||||||
<span>Checker workers</span>
|
<span>Checker workers</span>
|
||||||
|
|
|
@ -33,6 +33,8 @@ def main(serv, port):
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
print(e)
|
print(e)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
try:
|
||||||
readstats = readstats.decode(encoding='UTF-8')
|
readstats = readstats.decode(encoding='UTF-8')
|
||||||
metric = readstats.splitlines()
|
metric = readstats.splitlines()
|
||||||
metrics = []
|
metrics = []
|
||||||
|
@ -40,6 +42,8 @@ def main(serv, port):
|
||||||
metrics.append(metric[i])
|
metrics.append(metric[i])
|
||||||
|
|
||||||
sql.insert_mentrics(serv, metrics[0], metrics[1], metrics[2], metrics[3])
|
sql.insert_mentrics(serv, metrics[0], metrics[1], metrics[2], metrics[3])
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
|
||||||
time.sleep(30)
|
time.sleep(30)
|
||||||
|
|
||||||
|
|
|
@ -41,12 +41,13 @@ function showHapserversCallBack(serv, hostnamea, service) {
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
function overviewHapserverBackends(serv, hostnamea) {
|
function overviewHapserverBackends(serv, hostnamea, service) {
|
||||||
$.ajax( {
|
$.ajax( {
|
||||||
url: "options.py",
|
url: "options.py",
|
||||||
data: {
|
data: {
|
||||||
act: "overviewHapserverBackends",
|
act: "overviewHapserverBackends",
|
||||||
serv: serv[0],
|
serv: serv[0],
|
||||||
|
service: service,
|
||||||
token: $('#token').val()
|
token: $('#token').val()
|
||||||
},
|
},
|
||||||
beforeSend: function() {
|
beforeSend: function() {
|
||||||
|
@ -85,7 +86,7 @@ function showOverviewCallBack(serv, hostnamea) {
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
function showOverviewServer(name,ip,id) {
|
function showOverviewServer(name,ip,id, service) {
|
||||||
$.ajax( {
|
$.ajax( {
|
||||||
url: "options.py",
|
url: "options.py",
|
||||||
data: {
|
data: {
|
||||||
|
@ -93,6 +94,7 @@ function showOverviewServer(name,ip,id) {
|
||||||
name: name,
|
name: name,
|
||||||
serv: ip,
|
serv: ip,
|
||||||
id: id,
|
id: id,
|
||||||
|
service: service,
|
||||||
page: 'hapservers.py',
|
page: 'hapservers.py',
|
||||||
token: $('#token').val()
|
token: $('#token').val()
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue