mirror of https://github.com/Aidaho12/haproxy-wi
parent
6448ca20e0
commit
8e9b5f861a
|
@ -33,7 +33,7 @@ def default_values():
|
|||
{'param': 'haproxy_path_logs', 'value': '/var/log/haproxy/', 'section': 'haproxy',
|
||||
'desc': 'The path for HAProxy logs', 'group': '1'},
|
||||
{'param': 'syslog_server_enable', 'value': '0', 'section': 'logs',
|
||||
'desc': 'Enable getting logs from a syslog server; (0 - no, 1 - yes)', 'group': '1'},
|
||||
'desc': 'Enable getting logs from a syslog server', 'group': '1'},
|
||||
{'param': 'syslog_server', 'value': '', 'section': 'logs', 'desc': 'IP address of the syslog_server',
|
||||
'group': '1'},
|
||||
{'param': 'log_time_storage', 'value': '14', 'section': 'logs',
|
||||
|
@ -59,7 +59,7 @@ def default_values():
|
|||
{'param': 'haproxy_sock_port', 'value': '1999', 'section': 'haproxy', 'desc': 'HAProxy sock port',
|
||||
'group': '1'},
|
||||
{'param': 'apache_log_path', 'value': '/var/log/' + apache_dir + '/', 'section': 'logs',
|
||||
'desc': 'Path to Apache logs. Apache service for Roxy-WI', 'group': '1'},
|
||||
'desc': 'Path to Apache logs. Apache service for Roxy-WI', 'group': '1'},
|
||||
{'param': 'nginx_path_logs', 'value': '/var/log/nginx/', 'section': 'nginx',
|
||||
'desc': 'The path for NGINX logs', 'group': '1'},
|
||||
{'param': 'nginx_stats_user', 'value': 'admin', 'section': 'nginx', 'desc': 'Username for accessing NGINX stats page',
|
||||
|
@ -744,7 +744,7 @@ def update_db_v_6_1_0(**kwargs):
|
|||
|
||||
|
||||
def update_ver():
|
||||
query = Version.update(version='6.1.0.0')
|
||||
query = Version.update(version='6.1.1.0')
|
||||
try:
|
||||
query.execute()
|
||||
except Exception:
|
||||
|
|
|
@ -226,6 +226,16 @@ class NginxMetrics(BaseModel):
|
|||
primary_key = False
|
||||
|
||||
|
||||
class ApacheMetrics(BaseModel):
|
||||
serv = CharField()
|
||||
conn = IntegerField()
|
||||
date = DateTimeField(default=datetime.now)
|
||||
|
||||
class Meta:
|
||||
table_name = 'apache_metrics'
|
||||
primary_key = False
|
||||
|
||||
|
||||
class Version(BaseModel):
|
||||
version = CharField()
|
||||
|
||||
|
@ -268,7 +278,7 @@ class WafRules(BaseModel):
|
|||
serv = CharField()
|
||||
rule_name = CharField()
|
||||
rule_file = CharField()
|
||||
desc = CharField(null=True)
|
||||
desc = TextField(null=True)
|
||||
en = IntegerField(constraints=[SQL('DEFAULT 1')])
|
||||
|
||||
class Meta:
|
||||
|
@ -532,4 +542,4 @@ def create_tables():
|
|||
Setting, Cred, Backup, Metrics, WafMetrics, Version, Option, SavedServer, Waf, ActionHistory,
|
||||
PortScannerSettings, PortScannerPorts, PortScannerHistory, ProvidersCreds, ServiceSetting,
|
||||
ProvisionedServers, MetricsHttpStatus, SMON, WafRules, Alerts, GeoipCodes, NginxMetrics,
|
||||
SystemInfo, Services, UserName, GitSetting, CheckerSetting])
|
||||
SystemInfo, Services, UserName, GitSetting, CheckerSetting, ApacheMetrics])
|
||||
|
|
|
@ -712,7 +712,7 @@ def install_haproxy(server_ip, **kwargs):
|
|||
os.system("cp scripts/%s ." % script)
|
||||
|
||||
if haproxy_ver is None:
|
||||
haproxy_ver = '2.5.1-1'
|
||||
haproxy_ver = '2.6.0-1'
|
||||
|
||||
if proxy is not None and proxy != '' and proxy != 'None':
|
||||
proxy_serv = proxy
|
||||
|
@ -1330,16 +1330,13 @@ def show_haproxy_log(serv, rows=10, waf='0', grep=None, hour='00', minut='00', h
|
|||
return show_log(output, grep=grep)
|
||||
|
||||
|
||||
def haproxy_wi_log(**kwargs):
|
||||
def roxy_wi_log(**kwargs):
|
||||
log_path = get_config_var('main', 'log_path')
|
||||
|
||||
if kwargs.get('log_id'):
|
||||
selects = get_files(log_path, format="log")
|
||||
for key, value in selects:
|
||||
if kwargs.get('with_date'):
|
||||
log_file = kwargs.get('file') + get_data('logs') + ".log"
|
||||
else:
|
||||
log_file = kwargs.get('file') + ".log"
|
||||
log_file = kwargs.get('file') + ".log"
|
||||
if log_file == value:
|
||||
return key
|
||||
else:
|
||||
|
|
|
@ -29,10 +29,15 @@ try:
|
|||
if funct.check_login(service=2):
|
||||
title = "NGINX`s metrics"
|
||||
servers = sql.select_nginx_servers_metrics_for_master()
|
||||
elif service == 'apache':
|
||||
if funct.check_login(service=4):
|
||||
title = "Apache`s metrics"
|
||||
servers = sql.select_apache_servers_metrics_for_master()
|
||||
else:
|
||||
if funct.check_login(service=1):
|
||||
title = "HAProxy`s metrics"
|
||||
servers = sql.select_servers_metrics()
|
||||
service = 'haproxy'
|
||||
services = '1'
|
||||
except Exception:
|
||||
pass
|
||||
|
|
|
@ -15,6 +15,7 @@ if (
|
|||
or form.getvalue('new_http_metrics')
|
||||
or form.getvalue('new_waf_metrics')
|
||||
or form.getvalue('new_nginx_metrics')
|
||||
or form.getvalue('new_apache_metrics')
|
||||
or form.getvalue('metrics_hapwi_ram')
|
||||
or form.getvalue('metrics_hapwi_cpu')
|
||||
or form.getvalue('getoption')
|
||||
|
@ -1335,7 +1336,10 @@ if form.getvalue('master'):
|
|||
group_id = sql.get_group_id_by_server_ip(master)
|
||||
cred_id = sql.get_cred_id_by_server_ip(master)
|
||||
hostname = sql.get_hostname_by_server_ip(master)
|
||||
sql.add_server(hostname + '-VIP', IP, group_id, '1', '1', '0', cred_id, ssh_port, 'VRRP IP for ' + master, haproxy, nginx, '0')
|
||||
firewall = 1 if funct.is_service_active(master, 'firewalld') else 0
|
||||
sql.add_server(
|
||||
hostname + '-VIP', IP, group_id, '1', '1', '0', cred_id, ssh_port, 'VRRP IP for ' + master, haproxy, nginx, '0', firewall
|
||||
)
|
||||
|
||||
if form.getvalue('master_slave'):
|
||||
master = form.getvalue('master_slave')
|
||||
|
@ -1934,35 +1938,16 @@ if form.getvalue('new_http_metrics'):
|
|||
|
||||
print(json.dumps(metrics))
|
||||
|
||||
if form.getvalue('new_waf_metrics'):
|
||||
if any((form.getvalue('new_nginx_metrics'), form.getvalue('new_apache_metrics'), form.getvalue('new_waf_metrics'))):
|
||||
serv = form.getvalue('server')
|
||||
hostname = sql.get_hostname_by_server_ip(serv)
|
||||
time_range = form.getvalue('time_range')
|
||||
metric = sql.select_waf_metrics(serv, time_range=time_range)
|
||||
metrics = {'chartData': {}}
|
||||
metrics['chartData']['labels'] = {}
|
||||
labels = ''
|
||||
curr_con = ''
|
||||
|
||||
for i in metric:
|
||||
label = str(i[2])
|
||||
label = label.split(' ')[1]
|
||||
labels += label + ','
|
||||
curr_con += str(i[1]) + ','
|
||||
|
||||
metrics['chartData']['labels'] = labels
|
||||
metrics['chartData']['curr_con'] = curr_con
|
||||
metrics['chartData']['server'] = hostname + ' (' + serv + ')'
|
||||
|
||||
import json
|
||||
|
||||
print(json.dumps(metrics))
|
||||
|
||||
if form.getvalue('new_nginx_metrics'):
|
||||
serv = form.getvalue('server')
|
||||
hostname = sql.get_hostname_by_server_ip(serv)
|
||||
time_range = form.getvalue('time_range')
|
||||
metric = sql.select_nginx_metrics(serv, time_range=time_range)
|
||||
if form.getvalue('new_nginx_metrics'):
|
||||
metric = sql.select_nginx_metrics(serv, time_range=time_range)
|
||||
elif form.getvalue('new_apache_metrics'):
|
||||
metric = sql.select_apache_metrics(serv, time_range=time_range)
|
||||
elif form.getvalue('new_waf_metrics'):
|
||||
metric = sql.select_waf_metrics(serv, time_range=time_range)
|
||||
metrics = {'chartData': {}}
|
||||
metrics['chartData']['labels'] = {}
|
||||
labels = ''
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
- name: Creates directory
|
||||
file:
|
||||
path: "{{ RPATH }}/haproxy-wi-configs-backup/configs"
|
||||
path: "{{ RPATH }}/roxy-wi-configs-backup/configs"
|
||||
state: directory
|
||||
owner: "{{ ansible_user }}"
|
||||
when: DELJOB|length == 0
|
||||
|
@ -22,21 +22,23 @@
|
|||
|
||||
- name: Creates backup jobs
|
||||
cron:
|
||||
name: "Backup HAProxy configs for user {{ SERVER }} {{ item }}"
|
||||
name: "Roxy-WI Backup configs for server {{ SERVER }} {{ item }}"
|
||||
special_time: "{{ TIME }}"
|
||||
job: "rsync -arv {{ TYPE }} /var/www/haproxy-wi/configs/{{ item }}/{{ SERVER }}* {{ ansible_user }}@{{ HOST }}:{{ RPATH }}/haproxy-wi-configs-backup/configs/{{ item }} -e 'ssh -i {{ KEY }} -o StrictHostKeyChecking=no' --log-file=/var/www/haproxy-wi/log/backup.log"
|
||||
job: "rsync -arv {{ TYPE }} /var/www/haproxy-wi/configs/{{ item }}/{{ SERVER }}* {{ ansible_user }}@{{ HOST }}:{{ RPATH }}/roxy-wi-configs-backup/configs/{{ item }} -e 'ssh -i {{ KEY }} -o StrictHostKeyChecking=no' --log-file=/var/www/haproxy-wi/log/backup.log"
|
||||
when: DELJOB|length == 0
|
||||
with_items:
|
||||
- kp_config
|
||||
- hap_config
|
||||
- nginx_config
|
||||
- apache_config
|
||||
|
||||
- name: Removes backup jobs
|
||||
cron:
|
||||
name: "Backup HAProxy configs for user {{ SERVER }} {{ item }}"
|
||||
name: "Roxy-WI Backup configs for server {{ SERVER }} {{ item }}"
|
||||
state: absent
|
||||
when: DELJOB|length > 0
|
||||
with_items:
|
||||
- kp_config
|
||||
- hap_config
|
||||
- nginx_config
|
||||
- nginx_config
|
||||
- apache_config
|
||||
|
|
92
app/sql.py
92
app/sql.py
|
@ -297,7 +297,7 @@ def update_hapwi_server(server_id, alert, metrics, active, service_name):
|
|||
update_hapwi = Server.update(keepalived_alert=alert, keepalived_active=active).where(
|
||||
Server.server_id == server_id)
|
||||
elif service_name == 'apache':
|
||||
update_hapwi = Server.update(apache_alert=alert, apache_active=active).where(
|
||||
update_hapwi = Server.update(apache_alert=alert, apache_active=active, apache_metrics=metrics).where(
|
||||
Server.server_id == server_id)
|
||||
else:
|
||||
update_hapwi = Server.update(alert=alert, metrics=metrics, active=active).where(
|
||||
|
@ -872,7 +872,8 @@ def get_dick_permit(**kwargs):
|
|||
try:
|
||||
cursor.execute(sql)
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
# out_error(e)
|
||||
pass
|
||||
else:
|
||||
return cursor.fetchall()
|
||||
|
||||
|
@ -1233,6 +1234,13 @@ def insert_nginx_metrics(serv, conn):
|
|||
out_error(e)
|
||||
|
||||
|
||||
def insert_apache_metrics(serv, conn):
|
||||
try:
|
||||
ApacheMetrics.insert(serv=serv, conn=conn, date=funct.get_data('regular')).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
||||
def select_waf_metrics_enable_server(ip):
|
||||
query = Waf.select(Waf.metrics).join(Server, on=(Waf.server_id == Server.server_id)).where(Server.ip == ip)
|
||||
try:
|
||||
|
@ -1365,6 +1373,44 @@ def select_nginx_metrics(serv, **kwargs):
|
|||
return cursor.fetchall()
|
||||
|
||||
|
||||
def select_apache_metrics(serv, **kwargs):
|
||||
cursor = conn.cursor()
|
||||
|
||||
if mysql_enable == '1':
|
||||
if kwargs.get('time_range') == '60':
|
||||
date_from = "and date > now() - INTERVAL 60 minute group by `date` div 100"
|
||||
elif kwargs.get('time_range') == '180':
|
||||
date_from = "and date > now() - INTERVAL 180 minute group by `date` div 200"
|
||||
elif kwargs.get('time_range') == '360':
|
||||
date_from = "and date > now() - INTERVAL 360 minute group by `date` div 300"
|
||||
elif kwargs.get('time_range') == '720':
|
||||
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
||||
else:
|
||||
date_from = "and date > now() - INTERVAL 30 minute"
|
||||
sql = """ select * from apache_metrics where serv = '{serv}' {date_from} order by `date` desc limit 60 """.format(
|
||||
serv=serv, date_from=date_from)
|
||||
else:
|
||||
if kwargs.get('time_range') == '60':
|
||||
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
||||
elif kwargs.get('time_range') == '180':
|
||||
date_from = "and date > datetime('now', '-180 minutes', 'localtime') and rowid % 5 = 0"
|
||||
elif kwargs.get('time_range') == '360':
|
||||
date_from = "and date > datetime('now', '-360 minutes', 'localtime') and rowid % 7 = 0"
|
||||
elif kwargs.get('time_range') == '720':
|
||||
date_from = "and date > datetime('now', '-720 minutes', 'localtime') and rowid % 9 = 0"
|
||||
else:
|
||||
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
||||
sql = """ select * from (select * from apache_metrics where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(
|
||||
serv=serv, date_from=date_from)
|
||||
|
||||
try:
|
||||
cursor.execute(sql)
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
else:
|
||||
return cursor.fetchall()
|
||||
|
||||
|
||||
def insert_waf_metrics_enable(serv, enable):
|
||||
try:
|
||||
server_id = Server.get(Server.ip == serv).server_id
|
||||
|
@ -1544,6 +1590,14 @@ def delete_nginx_metrics():
|
|||
out_error(e)
|
||||
|
||||
|
||||
def delete_apache_metrics():
|
||||
query = ApacheMetrics.delete().where(ApacheMetrics.date < funct.get_data('regular', timedelta_minus=3))
|
||||
try:
|
||||
query.execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
||||
def select_metrics(serv, **kwargs):
|
||||
cursor = conn.cursor()
|
||||
|
||||
|
@ -1624,10 +1678,28 @@ def select_metrics_http(serv, **kwargs):
|
|||
|
||||
|
||||
def select_servers_metrics_for_master(**kwargs):
|
||||
if kwargs.get('group') is not None:
|
||||
query = Server.select(Server.ip).where((Server.metrics == 1) & (Server.groups == kwargs.get('group')))
|
||||
if kwargs.get('group') != 1:
|
||||
query = Server.select(Server.ip).where(
|
||||
((Server.metrics == 1) | (Server.nginx_metrics == 1) | (Server.apache_metrics == 1))
|
||||
& (Server.groups == kwargs.get('group'))
|
||||
)
|
||||
else:
|
||||
query = Server.select(Server.ip).where(Server.metrics == 1)
|
||||
query = Server.select(Server.ip).where(
|
||||
(Server.metrics == 1)
|
||||
| (Server.nginx_metrics == 1)
|
||||
| (Server.apache_metrics == 1)
|
||||
)
|
||||
|
||||
try:
|
||||
query_res = query.execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
else:
|
||||
return query_res
|
||||
|
||||
|
||||
def select_haproxy_servers_metrics_for_master():
|
||||
query = Server.select(Server.ip).where(Server.metrics == 1)
|
||||
try:
|
||||
query_res = query.execute()
|
||||
except Exception as e:
|
||||
|
@ -1646,6 +1718,16 @@ def select_nginx_servers_metrics_for_master():
|
|||
return query_res
|
||||
|
||||
|
||||
def select_apache_servers_metrics_for_master():
|
||||
query = Server.select(Server.ip).where(Server.apache_metrics == 1)
|
||||
try:
|
||||
query_res = query.execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
else:
|
||||
return query_res
|
||||
|
||||
|
||||
def select_servers_metrics():
|
||||
group_id = funct.get_user_group(id=1)
|
||||
if funct.check_user_group():
|
||||
|
|
|
@ -55,3 +55,8 @@
|
|||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if users|length > 3 %}
|
||||
<script>
|
||||
$('#show_all_users').show();
|
||||
</script>
|
||||
{% endif %}
|
||||
|
|
|
@ -103,7 +103,9 @@
|
|||
<ul class="v_menu">
|
||||
<li><a href="/app/hapservers.py?service=apache" title="Overview Apache servers" class="overview-link head-submenu">Overview</a></li>
|
||||
<li><a href="/app/config.py?service=apache" title="Working with Apache configs" class="edit head-submenu">Configs</a></li>
|
||||
<li><a href="/app/viewsttats.py?service=apache" title="Apache statistics" class="stats head-submenu">Stats</a></li>
|
||||
<li><a href="/app/logs.py?service=apache" title="Apache logs " class="logs head-submenu">Logs</a></li>
|
||||
<li><a href="/app/metrics.py?service=apache" title="Apache's metrics" class="metrics head-submenu">Metrics</a></li>
|
||||
{% if role <= 3 %}
|
||||
<li><a href="/app/versions.py?service=apache" title="Working with versions Apache configs" class="version head-submenu">Versions</a></li>
|
||||
<li><a href="/app/add.py?service=apache#ssl" title="Add proxy: Upload SSL certificates - Roxy-WI" class="cert head-submenu" id="add3">SSL</a></li>
|
||||
|
|
|
@ -71,6 +71,8 @@
|
|||
{% if service == 'nginx' %}
|
||||
showNginxConnections(server_ip)
|
||||
getNginxChartData(server_ip)
|
||||
{% elif service == 'apache' %}
|
||||
getApacheChartData(server_ip)
|
||||
{% elif service == 'haproxy' %}
|
||||
showBytes(server_ip)
|
||||
{% endif %}
|
||||
|
@ -82,13 +84,15 @@
|
|||
let metrics = new Promise(
|
||||
(resolve, reject) => {
|
||||
{% for s in servers %}
|
||||
{% if service == 'haproxy' %}
|
||||
getChartData(server_ip)
|
||||
getHttpChartData(server_ip)
|
||||
getWafChartData(server_ip)
|
||||
{% elif service == 'nginx' %}
|
||||
getNginxChartData(server_ip)
|
||||
{% endif %}
|
||||
{% if service == 'haproxy' %}
|
||||
getChartData(server_ip)
|
||||
getHttpChartData(server_ip)
|
||||
getWafChartData(server_ip)
|
||||
{% elif service == 'nginx' %}
|
||||
getNginxChartData(server_ip)
|
||||
{% elif service == 'apache' %}
|
||||
getApacheChartData(server_ip)
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
});
|
||||
metrics.then();
|
||||
|
@ -248,7 +252,7 @@
|
|||
{{ checkbox(id, title=checker_desc, value='1', desc='Checker') }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if role <= 2 and service != 'keepalived' and service != 'apache' %}
|
||||
{% if role <= 2 and service != 'keepalived' %}
|
||||
{% set id = 'metrics-' + s.8.0.0|string() %}
|
||||
{% if is_metrics_enabled == 1 %}
|
||||
{{ checkbox(id, title='Collecting metrics is enabled', value='1', desc='Metrics', checked='checked') }}
|
||||
|
@ -303,7 +307,7 @@
|
|||
{% endfor %}
|
||||
</div>
|
||||
{% if serv %}
|
||||
{% if service == 'haproxy' or service == 'nginx' %}
|
||||
{% if service in ('haproxy', 'nginx', 'apache') %}
|
||||
<div style="clear: both; width: 97%;">
|
||||
<div style="padding-left: 25px;float: left;margin-top: -15px;">
|
||||
<b>Time range:</b>
|
||||
|
@ -331,10 +335,15 @@
|
|||
<div id="waf_metrics_div" class="chart-container_overview">
|
||||
<canvas id="s_{{s.2}}" role="img"></canvas>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% elif service == 'nginx' %}
|
||||
<div id="nginx_metrics_div" class="chart-container" style="display: block; width: 90%; height: 300px;">
|
||||
<canvas id="nginx_{{s.2}}" role="img"></canvas>
|
||||
</div>
|
||||
{% elif service == 'apache' %}
|
||||
<div id="apache_metrics_div" class="chart-container" style="display: block; width: 90%; height: 300px;">
|
||||
<canvas id="apache_{{s.2}}" role="img"></canvas>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<div id="dialog-confirm" style="display: none;">
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
{% if servers|length == 0 %}
|
||||
{% include 'include/getstarted.html' %}
|
||||
{% else %}
|
||||
{% if service != 'nginx' %}
|
||||
{% if service == 'haproxy' %}
|
||||
<table style="min-width: 40%;">
|
||||
<tr class="overviewHead">
|
||||
<th colspan=13 style="background-color: #d1ecf1">
|
||||
|
@ -51,7 +51,7 @@
|
|||
<option value="720">12 hours</option>
|
||||
</select>
|
||||
</div>
|
||||
{% if service != 'nginx' %}
|
||||
{% if service == 'haproxy' %}
|
||||
<div style="margin-top: 6px;">
|
||||
{{ checkbox('hide_http_metrics', desc='Hide HTTP metrics', title='Hide HTTP metrics') }}
|
||||
</div>
|
||||
|
@ -60,13 +60,17 @@
|
|||
<span class="refresh"></span>
|
||||
</div>
|
||||
{% for s in servers %}
|
||||
{% if service != 'nginx' %}
|
||||
{% if service == 'haproxy' %}
|
||||
<div class="chart-container">
|
||||
<canvas id="{{s.ip}}" role="img"></canvas>
|
||||
</div>
|
||||
<div class="chart-container http_metrics_div" style="display: none">
|
||||
<canvas id="http_{{s.ip}}" role="img"></canvas>
|
||||
</div>
|
||||
{% elif service == 'apache' %}
|
||||
<div class="chart-container">
|
||||
<canvas id="apache_{{s.ip}}" role="img"></canvas>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="chart-container">
|
||||
<canvas id="nginx_{{s.ip}}" role="img"></canvas>
|
||||
|
@ -79,14 +83,16 @@
|
|||
(resolve, reject) => {
|
||||
removeData();
|
||||
{% for s in servers %}
|
||||
{% if service != 'nginx' %}
|
||||
getChartData('{{s.ip}}')
|
||||
getHttpChartData('{{s.ip}}')
|
||||
{% if service == 'haproxy' %}
|
||||
getChartData('{{s.ip}}')
|
||||
getHttpChartData('{{s.ip}}')
|
||||
{% elif service == 'apache' %}
|
||||
getApacheChartData('{{s.ip}}')
|
||||
{% else %}
|
||||
getNginxChartData('{{s.ip}}')
|
||||
getNginxChartData('{{s.ip}}')
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if service != 'nginx' %}
|
||||
{% if service == 'haproxy' %}
|
||||
if (localStorage.getItem('table_metrics') == 0 || localStorage.getItem('table_metrics') === null) {
|
||||
$('#dis_table_metric').css('display', 'none');
|
||||
} else {
|
||||
|
@ -104,12 +110,14 @@
|
|||
let metrics = new Promise(
|
||||
(resolve, reject) => {
|
||||
{% for s in servers %}
|
||||
{% if service != 'nginx' %}
|
||||
getChartData('{{s.ip}}')
|
||||
getHttpChartData('{{s.ip}}')
|
||||
{% else %}
|
||||
getNginxChartData('{{s.ip}}')
|
||||
{% endif %}
|
||||
{% if service == 'haproxy' %}
|
||||
getChartData('{{s.ip}}')
|
||||
getHttpChartData('{{s.ip}}')
|
||||
{% elif service == 'apache' %}
|
||||
getApacheChartData('{{s.ip}}')
|
||||
{% else %}
|
||||
getNginxChartData('{{s.ip}}')
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
});
|
||||
metrics.then();
|
||||
|
|
|
@ -320,7 +320,7 @@
|
|||
<td class="second-collumn">Groups</td>
|
||||
<td>Role</td>
|
||||
<td>
|
||||
<span class="add-button-wi">
|
||||
<span class="add-button-wi" id="show_all_users" style="display: none;">
|
||||
<span title="Show all users" id="show-all-users" style="color: #fff">
|
||||
Show all
|
||||
</span>
|
||||
|
@ -344,11 +344,13 @@
|
|||
</td>
|
||||
<td class="second-collumn" style="width: 40%">Description</td>
|
||||
<td>
|
||||
{% if groups|length > 3 %}
|
||||
<span class="add-button-wi">
|
||||
<span title="Show all groups" id="show-all-groups" style="color: #fff">
|
||||
Show all
|
||||
</span>
|
||||
</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% set counter = 0 -%}
|
||||
|
@ -404,11 +406,13 @@
|
|||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{% if haproxy_wi_log|length > 3 %}
|
||||
<span class="add-button-wi">
|
||||
<span title="Show more log" id="show-all-haproxy-wi-log" style="color: #fff">
|
||||
Show more log
|
||||
</span>
|
||||
</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -418,13 +422,13 @@
|
|||
{% if counter <= 2 %}
|
||||
<tr class="{{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn-wi" style="font-size: 12.5px;" colspan="2">
|
||||
{{log }}
|
||||
{{ log }}
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr style="display: none;" class="show-haproxy-wi-log" class="{{ loop.cycle('odd', 'even') }}">
|
||||
<tr style="display: none;" class="show-haproxy-wi-log {{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn-wi" style="font-size: 12.5px" colspan="2">
|
||||
{{log }}
|
||||
{{ log }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
@ -448,5 +452,4 @@
|
|||
<script>
|
||||
showOverview(ip, hostnamea)
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -355,6 +355,82 @@ function renderNginxChart(data, labels, server) {
|
|||
});
|
||||
charts.push(myChart);
|
||||
}
|
||||
function getApacheChartData(server) {
|
||||
$.ajax({
|
||||
url: "options.py",
|
||||
data: {
|
||||
new_apache_metrics: '1',
|
||||
server: server,
|
||||
time_range: $( "#time-range option:selected" ).val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function (result) {
|
||||
var data = [];
|
||||
data.push(result.chartData.curr_con);
|
||||
data.push(result.chartData.server);
|
||||
var labels = result.chartData.labels;
|
||||
renderApacheChart(data, labels, server);
|
||||
}
|
||||
});
|
||||
}
|
||||
function renderApacheChart(data, labels, server) {
|
||||
var ctx = 'apache_'+server
|
||||
var myChart = new Chart(ctx, {
|
||||
type: 'line',
|
||||
data: {
|
||||
labels: labels.split(','),
|
||||
datasets: [
|
||||
{
|
||||
parsing: false,
|
||||
normalized: true,
|
||||
label: 'Connections',
|
||||
data: data[0].split(','),
|
||||
borderColor: 'rgba(75, 192, 192, 1)',
|
||||
backgroundColor: 'rgba(75, 192, 192, 0.2)',
|
||||
}
|
||||
]
|
||||
},
|
||||
options: {
|
||||
animation: false,
|
||||
maintainAspectRatio: false,
|
||||
title: {
|
||||
display: true,
|
||||
text: data[1],
|
||||
fontSize: 20,
|
||||
padding: 0,
|
||||
},
|
||||
scales: {
|
||||
yAxes: [{
|
||||
ticks: {
|
||||
beginAtZero: true,
|
||||
}
|
||||
}],
|
||||
xAxes: [{
|
||||
ticks: {
|
||||
major: {
|
||||
enabled: true,
|
||||
fontStyle: 'bold'
|
||||
},
|
||||
source: 'data',
|
||||
autoSkip: true,
|
||||
autoSkipPadding: 45,
|
||||
maxRotation: 0
|
||||
}
|
||||
}]
|
||||
},
|
||||
legend: {
|
||||
display: true,
|
||||
labels: {
|
||||
fontColor: 'rgb(255, 99, 132)',
|
||||
defaultFontSize: '10',
|
||||
defaultFontFamily: 'BlinkMacSystemFont'
|
||||
},
|
||||
}
|
||||
}
|
||||
});
|
||||
charts.push(myChart);
|
||||
}
|
||||
$("#secIntervals").css("display", "none");
|
||||
|
||||
function loadMetrics() {
|
||||
|
|
|
@ -54,6 +54,8 @@ $( function() {
|
|||
show_current_page($(this))
|
||||
} else if(cur_url[0] == 'viewsttats.py' && cur_url[1].split('&')[0] == 'service=nginx' && link2 == 'viewsttats.py?service=nginx'){
|
||||
show_current_page($(this))
|
||||
} else if(cur_url[0] == 'viewsttats.py' && cur_url[1].split('&')[0] == 'service=apache' && link2 == 'viewsttats.py?service=apache'){
|
||||
show_current_page($(this))
|
||||
} else if(cur_url[0] == 'smon.py' && cur_url[1].split('&')[0] == 'action=view' && link2 == 'smon.py?action=view'){
|
||||
show_current_page($(this))
|
||||
} else if(cur_url[0] == 'smon.py' && cur_url[1].split('&')[0] == 'action=add' && link2 == 'smon.py?action=add'){
|
||||
|
@ -68,6 +70,8 @@ $( function() {
|
|||
show_current_page($(this))
|
||||
} else if(cur_url[0] == 'metrics.py' && cur_url[1].split('&')[0] == 'service=nginx' && link2 == 'metrics.py?service=nginx'){
|
||||
show_current_page($(this))
|
||||
} else if(cur_url[0] == 'metrics.py' && cur_url[1].split('&')[0] == 'service=apache' && link2 == 'metrics.py?service=apache'){
|
||||
show_current_page($(this))
|
||||
} else if(cur_url[0] == 'hapservers.py' && cur_url[1].split('&')[0] == 'service=apache' && link2 == 'hapservers.py?service=apache'){
|
||||
show_current_page($(this))
|
||||
} else if(cur_url[0] == 'versions.py' && cur_url[1].split('&')[0] == 'service=apache' && link2 == 'versions.py?service=apache'){
|
||||
|
|
Loading…
Reference in New Issue