2018-02-06 04:39:43 +00:00
|
|
|
#!/usr/bin/env python3
|
2020-04-07 18:16:12 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2022-05-24 19:29:29 +00:00
|
|
|
import os
|
|
|
|
|
2020-07-15 04:22:18 +00:00
|
|
|
import funct
|
|
|
|
import sql
|
2022-05-24 19:29:29 +00:00
|
|
|
|
2018-05-05 12:40:41 +00:00
|
|
|
from jinja2 import Environment, FileSystemLoader
|
2020-02-26 18:10:02 +00:00
|
|
|
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
|
2018-05-05 12:40:41 +00:00
|
|
|
template = env.get_template('ovw.html')
|
2021-01-14 13:14:38 +00:00
|
|
|
|
2018-05-05 12:40:41 +00:00
|
|
|
print('Content-type: text/html\n')
|
2021-04-03 04:10:37 +00:00
|
|
|
|
2018-06-01 12:27:58 +00:00
|
|
|
funct.check_login()
|
2018-03-27 10:15:24 +00:00
|
|
|
|
2018-05-05 12:40:41 +00:00
|
|
|
try:
|
2021-08-15 09:02:12 +00:00
|
|
|
user, user_id, role, token, servers, user_services = funct.get_users_params()
|
2018-05-09 12:21:09 +00:00
|
|
|
groups = sql.select_groups()
|
2020-08-23 12:44:10 +00:00
|
|
|
user_group = funct.get_user_group(id=1)
|
2020-08-11 06:44:03 +00:00
|
|
|
|
|
|
|
if (role == 2 or role == 3) and int(user_group) != 1:
|
|
|
|
servers_for_grep = ''
|
2021-01-14 13:14:38 +00:00
|
|
|
i = 1
|
2020-08-11 06:44:03 +00:00
|
|
|
servers_len = len(servers)
|
|
|
|
|
|
|
|
for s in servers:
|
|
|
|
if i != servers_len:
|
2022-05-24 19:29:29 +00:00
|
|
|
servers_for_grep += s[2] + '\|'
|
2020-08-11 06:44:03 +00:00
|
|
|
else:
|
|
|
|
servers_for_grep += s[2]
|
|
|
|
|
2021-01-14 13:14:38 +00:00
|
|
|
i += 1
|
|
|
|
|
2022-06-15 07:34:20 +00:00
|
|
|
cmd = "ps ax |grep '[m]etrics_worker\|[m]etrics_waf_worker.py\|[m]etrics_nginx_worker.py'|grep '%s' |wc -l" % servers_for_grep
|
2020-08-11 06:44:03 +00:00
|
|
|
metrics_worker, stderr = funct.subprocess_execute(cmd)
|
2022-06-15 07:34:20 +00:00
|
|
|
cmd = "ps ax |grep '[c]hecker_worker\|[c]hecker_nginx\|[c]hecker_apache\|[c]hecker_keepalived'|grep -v grep |grep '%s' |wc -l" % servers_for_grep
|
2020-08-11 06:44:03 +00:00
|
|
|
checker_worker, stderr = funct.subprocess_execute(cmd)
|
|
|
|
i = 0
|
2021-01-14 13:14:38 +00:00
|
|
|
for s in sql.select_all_alerts(group=user_group):
|
2020-08-11 06:44:03 +00:00
|
|
|
i += 1
|
|
|
|
is_checker_worker = i
|
|
|
|
is_metrics_workers = sql.select_servers_metrics_for_master(group=user_group)
|
|
|
|
i = 0
|
|
|
|
for s in is_metrics_workers:
|
|
|
|
i += 1
|
|
|
|
is_metrics_worker = i
|
|
|
|
grafana = ''
|
|
|
|
prometheus = ''
|
|
|
|
host = ''
|
|
|
|
else:
|
2022-06-15 07:34:20 +00:00
|
|
|
cmd = "ps ax |grep '[m]etrics_worker\|[m]etrics_waf_worker.py\|[m]etrics_nginx_worker.py' |wc -l"
|
2020-08-11 06:44:03 +00:00
|
|
|
metrics_worker, stderr = funct.subprocess_execute(cmd)
|
2022-06-15 07:34:20 +00:00
|
|
|
cmd = "ps ax |grep '[c]hecker_worker\|[c]hecker_nginx\|[c]hecker_apache\|[c]hecker_keepalived' |wc -l"
|
2020-08-11 06:44:03 +00:00
|
|
|
checker_worker, stderr = funct.subprocess_execute(cmd)
|
|
|
|
i = 0
|
2021-01-14 13:14:38 +00:00
|
|
|
for s in sql.select_all_alerts():
|
2020-08-11 06:44:03 +00:00
|
|
|
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
|
2022-06-15 07:34:20 +00:00
|
|
|
cmd = "ps ax |egrep [g]rafana|wc -l"
|
2020-08-11 06:44:03 +00:00
|
|
|
grafana, stderr = funct.subprocess_execute(cmd)
|
|
|
|
host = os.environ.get('HTTP_HOST', '')
|
|
|
|
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-metrics"
|
2018-08-06 18:08:52 +00:00
|
|
|
metrics_master, stderr = funct.subprocess_execute(cmd)
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-checker"
|
2020-08-11 06:44:03 +00:00
|
|
|
checker_master, stderr = funct.subprocess_execute(cmd)
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-keep_alive"
|
2019-09-22 15:46:26 +00:00
|
|
|
keep_alive, stderr = funct.subprocess_execute(cmd)
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-smon"
|
2020-07-15 04:22:18 +00:00
|
|
|
smon, stderr = funct.subprocess_execute(cmd)
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-portscanner"
|
2021-04-03 04:10:37 +00:00
|
|
|
port_scanner, stderr = funct.subprocess_execute(cmd)
|
2022-03-26 20:23:02 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-socket"
|
|
|
|
socket, stderr = funct.subprocess_execute(cmd)
|
2020-04-21 21:07:54 +00:00
|
|
|
|
2022-05-24 20:20:24 +00:00
|
|
|
except Exception:
|
2020-01-11 21:16:27 +00:00
|
|
|
role = ''
|
2020-01-18 23:50:43 +00:00
|
|
|
user = ''
|
|
|
|
users = ''
|
|
|
|
groups = ''
|
|
|
|
roles = ''
|
|
|
|
metrics_master = ''
|
|
|
|
metrics_worker = ''
|
|
|
|
checker_master = ''
|
|
|
|
checker_worker = ''
|
|
|
|
keep_alive = ''
|
2020-07-15 04:22:18 +00:00
|
|
|
smon = ''
|
2020-04-07 18:16:12 +00:00
|
|
|
grafana = ''
|
2022-03-26 20:23:02 +00:00
|
|
|
socket = ''
|
2020-01-18 23:50:43 +00:00
|
|
|
versions = ''
|
|
|
|
haproxy_wi_log = ''
|
|
|
|
servers = ''
|
2020-04-07 18:16:12 +00:00
|
|
|
stderr = ''
|
2020-04-21 21:07:54 +00:00
|
|
|
is_checker_worker = ''
|
|
|
|
is_metrics_worker = ''
|
|
|
|
token = ''
|
2019-09-15 11:51:09 +00:00
|
|
|
|
2021-04-03 04:10:37 +00:00
|
|
|
|
2022-05-24 19:29:29 +00:00
|
|
|
rendered_template = template.render(
|
|
|
|
h2=1, autorefresh=1, title="Overview", role=role, user=user, groups=groups, roles=sql.select_roles(),
|
|
|
|
metrics_master=''.join(metrics_master), metrics_worker=''.join(metrics_worker), checker_master=''.join(checker_master),
|
|
|
|
checker_worker=''.join(checker_worker), keep_alive=''.join(keep_alive), smon=''.join(smon),
|
|
|
|
port_scanner=''.join(port_scanner), grafana=''.join(grafana), socket=''.join(socket),
|
|
|
|
haproxy_wi_log_id=funct.haproxy_wi_log(log_id=1, file="roxy-wi-", with_date=1),
|
|
|
|
metrics_log_id=funct.haproxy_wi_log(log_id=1, file="metrics", with_date=1),
|
|
|
|
checker_log_id=funct.haproxy_wi_log(log_id=1, file="checker", with_date=1),
|
|
|
|
keep_alive_log_id=funct.haproxy_wi_log(log_id=1, file="keep_alive"),
|
|
|
|
socket_log_id=funct.haproxy_wi_log(log_id=1, file="socket"),
|
|
|
|
metrics_error_log_id=funct.haproxy_wi_log(log_id=1, file="metrics-error"), error=stderr,
|
|
|
|
haproxy_wi_log=funct.haproxy_wi_log(), servers=servers, is_checker_worker=is_checker_worker,
|
|
|
|
is_metrics_worker=is_metrics_worker, host=host, user_services=user_services, token=token
|
|
|
|
)
|
|
|
|
print(rendered_template)
|