diff --git a/app/create_db.py b/app/create_db.py
index 354f0c95..6c39b50e 100644
--- a/app/create_db.py
+++ b/app/create_db.py
@@ -401,7 +401,7 @@ def update_db_v_3_4_7(**kwargs):
def update_ver(**kwargs):
con, cur = get_cur()
- sql = """update version set version = '3.4.8.1'; """
+ sql = """update version set version = '3.4.9'; """
try:
cur.execute(sql)
con.commit()
diff --git a/app/hapservers.py b/app/hapservers.py
new file mode 100644
index 00000000..7d522b12
--- /dev/null
+++ b/app/hapservers.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+import funct, sql
+import create_db
+import os, http.cookies
+from jinja2 import Environment, FileSystemLoader
+env = Environment(loader=FileSystemLoader('templates/'))
+template = env.get_template('hapservers.html')
+
+print('Content-type: text/html\n')
+
+
+try:
+ cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
+ user_id = cookie.get('uuid')
+ user = sql.get_user_name_by_uuid(user_id.value)
+ users = sql.select_users()
+ groups = sql.select_groups()
+ token = sql.get_token(user_id.value)
+ servers = sql.get_dick_permit()
+except:
+ pass
+
+haproxy_sock_port = sql.get_setting('haproxy_sock_port')
+
+servers_with_status1 = []
+out1 = ""
+for s in servers:
+ # print(s[2])
+ servers_with_status = list()
+ cmd = 'echo "show info" |nc %s %s -w 1 |grep -e "Ver\|Uptime:"' % (s[2], haproxy_sock_port)
+ # print(cmd )
+ out = funct.subprocess_execute(cmd)
+ servers_with_status.append(s[0])
+ servers_with_status.append(s[1])
+ servers_with_status.append(s[2])
+ servers_with_status.append(s[11])
+ for k in out:
+ if "Ncat: Connection refused." not in k and "Ncat: Connection timed out." not in k:
+ out1 = out
+ else:
+ out1 = False
+ servers_with_status.append(out1)
+
+ servers_with_status1.append(servers_with_status)
+# print(servers_with_status1)
+
+template = template.render(h2 = 1,
+ autorefresh = 1,
+ title = "HAProxy servers overview",
+ role = sql.get_user_role_by_uuid(user_id.value),
+ user = user,
+ users = users,
+ groups = groups,
+ servers = servers_with_status1,
+ versions = funct.versions(),
+ token = token)
+print(template)
diff --git a/app/overview.py b/app/overview.py
index 5737a62a..dc91e6d2 100644
--- a/app/overview.py
+++ b/app/overview.py
@@ -28,6 +28,8 @@ try:
metrics_master, stderr = funct.subprocess_execute(cmd)
cmd = "ps ax |grep -e 'metrics_worker\|metrics_waf_worker.py' |grep -v grep |wc -l"
metrics_worker, stderr = funct.subprocess_execute(cmd)
+ cmd = "ps ax |grep -e 'keep_alive.py' |grep -v grep |wc -l"
+ keep_alive, stderr = funct.subprocess_execute(cmd)
except:
pass
@@ -43,6 +45,7 @@ template = template.render(h2 = 1,
metrics_worker = ''.join(metrics_worker),
checker_master = ''.join(checker_master),
checker_worker = ''.join(checker_worker),
+ keep_alive = ''.join(keep_alive),
error = stderr,
versions = funct.versions(),
token = token)
diff --git a/app/ovw.py b/app/ovw.py
index fb41d843..df9eafd2 100644
--- a/app/ovw.py
+++ b/app/ovw.py
@@ -15,15 +15,14 @@ server_status = ()
async def async_get_overview(serv1, serv2):
haproxy_config_path = sql.get_setting('haproxy_config_path')
commands = [ "ls -l %s |awk '{ print $6\" \"$7\" \"$8}'" % haproxy_config_path ]
- commands1 = [ "ps ax |grep waf/bin/modsecurity |grep -v grep |wc -l" ]
+ # commands1 = [ "ps ax |grep waf/bin/modsecurity |grep -v grep |wc -l" ]
commands2 = "ps ax |grep keep_alive.py |grep -v grep |wc -l"
- cmd = 'echo "show info" |nc %s %s |grep -e "Process_num"' % (serv2, haproxy_sock_port)
+ cmd = 'echo "show info" |nc %s %s -w 1|grep -e "Process_num"' % (serv2, haproxy_sock_port)
server_status = (serv1,
serv2,
funct.server_status(funct.subprocess_execute(cmd)),
- funct.ssh_command(serv2, commands),
- funct.ssh_command(serv2, commands1),
+ funct.ssh_command(serv2, commands),
sql.select_servers(server=serv2, keep_alive=1),
funct.subprocess_execute(commands2))
return server_status
@@ -68,8 +67,13 @@ def get_overviewWaf(url):
ioloop.close()
async def async_get_overviewServers(serv1, serv2, desc):
- commands = [ "top -u haproxy -b -n 1" ]
- cmd = 'echo "show info" |nc %s %s |grep -e "Ver\|CurrConns\|SessRate\|Maxco\|MB\|Uptime:"' % (serv2, haproxy_sock_port)
+ # commands = [ "top -u haproxy -b -n 1" ]
+ # commands = [ "top -u haproxy -b -n 1 -o %MEM |grep -e 'haproxy\|PID' |awk '{print $1\"\t\"$5\"\t\"$9\"\t\"$10\"\t\"$11}'" ]
+ commands = [ "top -u haproxy -b -n 1 -w 67 |grep -e 'haproxy\|PID\|Cpu\|KiB' |grep -v Swap" ]
+ if desc == "hapservers.py":
+ cmd = 'echo "show info" |nc %s %s -w 1|grep -e "Ver\|CurrConns\|Maxco\|MB\|Uptime:"' % (serv2, haproxy_sock_port)
+ else:
+ cmd = 'echo "show info" |nc %s %s -w 1|grep -e "Ver\|CurrConns\|SessRate\|Maxco\|MB\|Uptime:"' % (serv2, haproxy_sock_port)
out = funct.subprocess_execute(cmd)
out1 = ""
user_id = cookie.get('uuid')
@@ -81,7 +85,7 @@ async def async_get_overviewServers(serv1, serv2, desc):
os.system("/bin/rm -f " + cfg)
for k in out:
- if "Ncat: Connection refused." not in k:
+ if "Ncat: Connection refused." not in k and "Ncat: Connection timed out." not in k:
for r in k:
out1 += r
out1 += "
"
@@ -95,21 +99,27 @@ async def async_get_overviewServers(serv1, serv2, desc):
return server_status
-async def get_runner_overviewServers():
+async def get_runner_overviewServers(**kwargs):
template = env.get_template('overviewServers.html')
user_id = cookie.get('uuid')
role = sql.get_user_role_by_uuid(user_id.value)
- futures = [async_get_overviewServers(server[1], server[2], server[11]) for server in listhap]
+ if kwargs.get('server1'):
+ futures = [async_get_overviewServers(kwargs.get('server1'), kwargs.get('server2'), 'hapservers.py')]
+ else:
+ futures = [async_get_overviewServers(server[1], server[2], server[11]) for server in listhap]
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)
+ template = template.render(service_status=servers_sorted, role=role,page=kwargs.get('page'))
print(template)
-def get_overviewServers():
+def get_overviewServers(**kwargs):
+ server1 = kwargs.get('name')
+ server2 = kwargs.get('ip')
+ page = kwargs.get('page')
ioloop = asyncio.get_event_loop()
- ioloop.run_until_complete(get_runner_overviewServers())
+ ioloop.run_until_complete(get_runner_overviewServers(server1=server1, server2=server2,page=page))
ioloop.close()
def get_map(serv):
diff --git a/app/templates/ajax/config_show.html b/app/templates/ajax/config_show.html
index 9099e872..a74d9769 100644
--- a/app/templates/ajax/config_show.html
+++ b/app/templates/ajax/config_show.html
@@ -117,5 +117,6 @@
+
-{{ service.2 }} --
-{{ service.3 }} --
+{{ service.3 }} ++