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
|
2022-09-27 19:06:34 +00:00
|
|
|
import sys
|
2022-11-17 07:34:58 +00:00
|
|
|
|
2022-09-02 14:12:28 +00:00
|
|
|
import psutil
|
2022-11-17 07:34:58 +00:00
|
|
|
from jinja2 import Environment, FileSystemLoader
|
2022-05-24 19:29:29 +00:00
|
|
|
|
2022-11-17 07:34:58 +00:00
|
|
|
import modules.db.sql as sql
|
|
|
|
import modules.roxywi.logs as roxy_logs
|
|
|
|
import modules.roxywi.auth as roxywi_auth
|
|
|
|
import modules.roxywi.common as roxywi_common
|
|
|
|
import modules.server.server as server_mod
|
2022-05-24 19:29:29 +00:00
|
|
|
|
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
|
|
|
|
2022-09-02 14:12:28 +00:00
|
|
|
grafana = 0
|
|
|
|
metrics_worker = 0
|
|
|
|
checker_worker = 0
|
|
|
|
is_checker_worker = 0
|
|
|
|
is_metrics_worker = 0
|
|
|
|
servers_group = []
|
|
|
|
host = os.environ.get('HTTP_HOST', '')
|
|
|
|
|
2022-11-17 07:34:58 +00:00
|
|
|
user_params = roxywi_common.get_users_params()
|
2022-09-27 19:06:34 +00:00
|
|
|
|
|
|
|
try:
|
2022-11-17 07:34:58 +00:00
|
|
|
roxywi_auth.check_login(user_params['user_uuid'], user_params['token'])
|
2022-09-27 19:06:34 +00:00
|
|
|
except Exception as e:
|
|
|
|
print(f'error {e}')
|
|
|
|
sys.exit()
|
|
|
|
|
|
|
|
try:
|
2018-05-09 12:21:09 +00:00
|
|
|
groups = sql.select_groups()
|
2022-11-17 07:34:58 +00:00
|
|
|
user_group = roxywi_common.get_user_group(id=1)
|
2020-08-11 06:44:03 +00:00
|
|
|
|
2022-11-17 07:34:58 +00:00
|
|
|
if (user_params['role'] == 2 or user_params['role'] == 3) and int(user_group) != 1:
|
|
|
|
for s in user_params['servers']:
|
2022-09-02 14:12:28 +00:00
|
|
|
servers_group.append(s[2])
|
2020-08-11 06:44:03 +00:00
|
|
|
|
2022-09-02 14:12:28 +00:00
|
|
|
is_checker_worker = len(sql.select_all_alerts(group=user_group))
|
|
|
|
is_metrics_worker = len(sql.select_servers_metrics_for_master(group=user_group))
|
2021-01-14 13:14:38 +00:00
|
|
|
|
2022-09-02 14:12:28 +00:00
|
|
|
for pids in psutil.pids():
|
|
|
|
if pids < 300:
|
|
|
|
continue
|
|
|
|
try:
|
|
|
|
pid = psutil.Process(pids)
|
|
|
|
cmdline_out = pid.cmdline()
|
|
|
|
if len(cmdline_out) > 2:
|
|
|
|
if 'checker_' in cmdline_out[1]:
|
|
|
|
if len(servers_group) > 0:
|
|
|
|
if cmdline_out[2] in servers_group:
|
|
|
|
checker_worker += 1
|
|
|
|
else:
|
|
|
|
checker_worker += 1
|
|
|
|
elif 'metrics_' in cmdline_out[1]:
|
|
|
|
if len(servers_group) > 0:
|
|
|
|
if cmdline_out[2] in servers_group:
|
|
|
|
metrics_worker += 1
|
|
|
|
else:
|
|
|
|
metrics_worker += 1
|
|
|
|
if len(servers_group) == 0:
|
|
|
|
if 'grafana' in cmdline_out[1]:
|
|
|
|
grafana += 1
|
|
|
|
except psutil.NoSuchProcess:
|
|
|
|
pass
|
2020-08-11 06:44:03 +00:00
|
|
|
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-metrics"
|
2022-11-17 07:34:58 +00:00
|
|
|
metrics_master, stderr = server_mod.subprocess_execute(cmd)
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-checker"
|
2022-11-17 07:34:58 +00:00
|
|
|
checker_master, stderr = server_mod.subprocess_execute(cmd)
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-keep_alive"
|
2022-11-17 07:34:58 +00:00
|
|
|
keep_alive, stderr = server_mod.subprocess_execute(cmd)
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-smon"
|
2022-11-17 07:34:58 +00:00
|
|
|
smon, stderr = server_mod.subprocess_execute(cmd)
|
2021-06-11 15:18:33 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-portscanner"
|
2022-11-17 07:34:58 +00:00
|
|
|
port_scanner, stderr = server_mod.subprocess_execute(cmd)
|
2022-03-26 20:23:02 +00:00
|
|
|
cmd = "systemctl is-active roxy-wi-socket"
|
2022-11-17 07:34:58 +00:00
|
|
|
socket, stderr = server_mod.subprocess_execute(cmd)
|
2020-04-21 21:07:54 +00:00
|
|
|
|
2022-11-17 07:34:58 +00:00
|
|
|
except Exception as e:
|
2020-01-18 23:50:43 +00:00
|
|
|
groups = ''
|
|
|
|
roles = ''
|
|
|
|
metrics_master = ''
|
|
|
|
checker_master = ''
|
|
|
|
keep_alive = ''
|
2020-07-15 04:22:18 +00:00
|
|
|
smon = ''
|
2022-03-26 20:23:02 +00:00
|
|
|
socket = ''
|
2020-04-07 18:16:12 +00:00
|
|
|
stderr = ''
|
2022-11-17 07:34:58 +00:00
|
|
|
print(e)
|
2021-04-03 04:10:37 +00:00
|
|
|
|
2022-05-24 19:29:29 +00:00
|
|
|
rendered_template = template.render(
|
2022-11-17 07:34:58 +00:00
|
|
|
h2=1, autorefresh=1, title="Overview", role=user_params['role'], user=user_params['user'], groups=groups,
|
|
|
|
roles=sql.select_roles(), metrics_master=''.join(metrics_master), metrics_worker=metrics_worker,
|
|
|
|
checker_master=''.join(checker_master), checker_worker=checker_worker, keep_alive=''.join(keep_alive),
|
|
|
|
smon=''.join(smon), port_scanner=''.join(port_scanner), grafana=grafana, socket=''.join(socket),
|
|
|
|
roxy_wi_log_id=roxy_logs.roxy_wi_log(log_id=1, file="roxy-wi-"),
|
|
|
|
metrics_log_id=roxy_logs.roxy_wi_log(log_id=1, file="metrics"),
|
|
|
|
checker_log_id=roxy_logs.roxy_wi_log(log_id=1, file="checker"),
|
|
|
|
keep_alive_log_id=roxy_logs.roxy_wi_log(log_id=1, file="keep_alive"),
|
|
|
|
socket_log_id=roxy_logs.roxy_wi_log(log_id=1, file="socket"), error=stderr,
|
|
|
|
roxy_wi_log=roxy_logs.roxy_wi_log(), servers=user_params['servers'], is_checker_worker=is_checker_worker,
|
|
|
|
is_metrics_worker=is_metrics_worker, host=host, user_services=user_params['user_services'],
|
2022-11-28 07:47:18 +00:00
|
|
|
token=user_params['token'], guide_me=1
|
2022-05-24 19:29:29 +00:00
|
|
|
)
|
|
|
|
print(rendered_template)
|