2018-08-03 19:17:03 +00:00
|
|
|
#!/usr/bin/env python3
|
2022-09-27 19:24:37 +00:00
|
|
|
import distro
|
|
|
|
|
2018-08-03 19:17:03 +00:00
|
|
|
import funct
|
|
|
|
import sql
|
|
|
|
from jinja2 import Environment, FileSystemLoader
|
2020-02-26 18:10:02 +00:00
|
|
|
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
|
2018-08-03 19:17:03 +00:00
|
|
|
template = env.get_template('metrics.html')
|
2021-08-15 09:02:12 +00:00
|
|
|
form = funct.form
|
|
|
|
service = form.getvalue('service')
|
2021-10-05 05:52:55 +00:00
|
|
|
title = 'Metrics service'
|
2018-08-03 19:17:03 +00:00
|
|
|
|
2021-08-15 09:02:12 +00:00
|
|
|
print('Content-type: text/html\n')
|
2018-08-03 19:17:03 +00:00
|
|
|
|
2022-09-27 19:06:34 +00:00
|
|
|
user, user_id, role, token, servers, user_services = funct.get_users_params()
|
|
|
|
|
2018-08-03 19:17:03 +00:00
|
|
|
try:
|
2021-08-29 14:27:01 +00:00
|
|
|
if distro.id() == 'ubuntu':
|
|
|
|
cmd = "apt list --installed 2>&1 |grep roxy-wi-metrics"
|
|
|
|
else:
|
|
|
|
cmd = "rpm -q roxy-wi-metrics-* |awk -F\"metrics\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'"
|
2020-09-26 17:37:14 +00:00
|
|
|
service_ver, stderr = funct.subprocess_execute(cmd)
|
2021-01-06 04:33:33 +00:00
|
|
|
services = '0'
|
2020-09-26 17:37:14 +00:00
|
|
|
|
2021-01-06 04:33:33 +00:00
|
|
|
if not stderr:
|
2022-04-29 10:28:48 +00:00
|
|
|
if service_ver[0] == ' is not installed' or service_ver == '':
|
2021-01-06 04:33:33 +00:00
|
|
|
servers = ''
|
|
|
|
else:
|
2021-08-15 09:02:12 +00:00
|
|
|
if service == 'nginx':
|
2022-09-27 19:06:34 +00:00
|
|
|
if funct.check_login(user_id, token, service=2):
|
2022-04-20 08:08:36 +00:00
|
|
|
title = "NGINX`s metrics"
|
2021-08-15 09:02:12 +00:00
|
|
|
servers = sql.select_nginx_servers_metrics_for_master()
|
2022-07-03 06:11:34 +00:00
|
|
|
elif service == 'apache':
|
2022-09-27 19:06:34 +00:00
|
|
|
if funct.check_login(user_id, token, service=4):
|
2022-07-03 06:11:34 +00:00
|
|
|
title = "Apache`s metrics"
|
|
|
|
servers = sql.select_apache_servers_metrics_for_master()
|
2021-08-15 09:02:12 +00:00
|
|
|
else:
|
2022-09-27 19:06:34 +00:00
|
|
|
if funct.check_login(user_id, token, service=1):
|
2021-08-15 09:02:12 +00:00
|
|
|
title = "HAProxy`s metrics"
|
|
|
|
servers = sql.select_servers_metrics()
|
2022-07-03 06:11:34 +00:00
|
|
|
service = 'haproxy'
|
2021-01-06 04:33:33 +00:00
|
|
|
services = '1'
|
2022-05-24 19:29:29 +00:00
|
|
|
except Exception:
|
2018-08-03 19:17:03 +00:00
|
|
|
pass
|
2019-09-15 11:51:09 +00:00
|
|
|
|
2022-04-29 10:28:48 +00:00
|
|
|
try:
|
|
|
|
user_status, user_plan = funct.return_user_status()
|
|
|
|
except Exception as e:
|
|
|
|
user_status, user_plan = 0, 0
|
2022-10-28 21:40:40 +00:00
|
|
|
funct.logging('Roxy-WI server', f'Cannot get a user plan: {e}', roxywi=1)
|
2022-04-29 10:28:48 +00:00
|
|
|
|
2018-08-03 19:17:03 +00:00
|
|
|
|
2022-05-24 19:29:29 +00:00
|
|
|
template = template.render(
|
|
|
|
h2=1, title=title, autorefresh=1, role=role, user=user, servers=servers, services=services,
|
|
|
|
user_services=user_services, service=service, user_status=user_status, user_plan=user_plan, token=token
|
|
|
|
)
|
2020-09-26 17:37:14 +00:00
|
|
|
print(template)
|