mirror of https://github.com/Aidaho12/haproxy-wi
parent
f5856ad73b
commit
f3e43892fa
|
@ -7,7 +7,7 @@ import os
|
|||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
|
||||
template = env.get_template('ovw.html')
|
||||
|
||||
|
||||
print('Content-type: text/html\n')
|
||||
if create_db.check_db():
|
||||
if create_db.create_table():
|
||||
|
@ -23,22 +23,23 @@ try:
|
|||
if (role == 2 or role == 3) and int(user_group) != 1:
|
||||
users = sql.select_users(group=user_group)
|
||||
servers_for_grep = ''
|
||||
i = 0
|
||||
i = 1
|
||||
servers_len = len(servers)
|
||||
|
||||
for s in servers:
|
||||
i += 1
|
||||
if i != servers_len:
|
||||
servers_for_grep += s[2]+'\|'
|
||||
else:
|
||||
servers_for_grep += s[2]
|
||||
|
||||
cmd = "ps ax |grep -e 'metrics_worker\|metrics_waf_worker.py'|grep -E %s|grep -v grep |wc -l" % servers_for_grep
|
||||
i += 1
|
||||
|
||||
cmd = "ps ax |grep 'metrics_worker\|metrics_waf_worker.py'|grep -v grep|grep '%s' |wc -l" % servers_for_grep
|
||||
metrics_worker, stderr = funct.subprocess_execute(cmd)
|
||||
cmd = "ps ax |grep checker_worker|grep -E %s |grep -v grep |wc -l" % servers_for_grep
|
||||
cmd = "ps ax |grep 'checker_worker\|checker_nginx'|grep -v grep |grep '%s' |wc -l" % servers_for_grep
|
||||
checker_worker, stderr = funct.subprocess_execute(cmd)
|
||||
i = 0
|
||||
for s in sql.select_alert(group=user_group):
|
||||
for s in sql.select_all_alerts(group=user_group):
|
||||
i += 1
|
||||
is_checker_worker = i
|
||||
is_metrics_workers = sql.select_servers_metrics_for_master(group=user_group)
|
||||
|
@ -51,12 +52,12 @@ try:
|
|||
host = ''
|
||||
else:
|
||||
users = sql.select_users()
|
||||
cmd = "ps ax |grep -e 'metrics_worker\|metrics_waf_worker.py' |grep -v grep |wc -l"
|
||||
cmd = "ps ax |grep 'metrics_worker\|metrics_waf_worker.py' |grep -v grep |wc -l"
|
||||
metrics_worker, stderr = funct.subprocess_execute(cmd)
|
||||
cmd = "ps ax |grep checker_worker |grep -v grep |wc -l"
|
||||
cmd = "ps ax |grep 'checker_worker\|checker_nginx' |grep -v grep |wc -l"
|
||||
checker_worker, stderr = funct.subprocess_execute(cmd)
|
||||
i = 0
|
||||
for s in sql.select_alert():
|
||||
for s in sql.select_all_alerts():
|
||||
i += 1
|
||||
is_checker_worker = i
|
||||
is_metrics_workers = sql.select_servers_metrics_for_master()
|
||||
|
@ -74,7 +75,7 @@ try:
|
|||
metrics_master, stderr = funct.subprocess_execute(cmd)
|
||||
cmd = "systemctl status checker_haproxy |grep Act |awk '{print $2}'"
|
||||
checker_master, stderr = funct.subprocess_execute(cmd)
|
||||
cmd = "ps ax |grep -e 'keep_alive.py' |grep -v grep |wc -l"
|
||||
cmd = "systemctl status keep_alive |grep Act |awk '{print $2}'"
|
||||
keep_alive, stderr = funct.subprocess_execute(cmd)
|
||||
cmd = "systemctl status smon |grep Act |awk '{print $2}'"
|
||||
smon, stderr = funct.subprocess_execute(cmd)
|
||||
|
|
30
app/sql.py
30
app/sql.py
|
@ -1266,6 +1266,19 @@ def select_all_waf_servers():
|
|||
con.close()
|
||||
|
||||
|
||||
def select_waf_servers_metrics_for_master():
|
||||
con, cur = get_cur()
|
||||
sql = """ select servers.ip from servers left join waf as waf on waf.server_id = servers.id where servers.enable = 1 and waf.metrics = '1' """
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_waf_servers_metrics(uuid, **kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """ select * from user where username = '%s' """ % get_user_name_by_uuid(uuid)
|
||||
|
@ -1859,7 +1872,7 @@ def select_roles(**kwargs):
|
|||
|
||||
def select_alert(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """select ip from servers where alert = 1 """
|
||||
sql = """select ip from servers where alert = 1 """
|
||||
if kwargs.get("group") is not None:
|
||||
sql = """select ip from servers where alert = 1 and `groups` = '%s' """ % kwargs.get("group")
|
||||
try:
|
||||
|
@ -1872,6 +1885,21 @@ def select_alert(**kwargs):
|
|||
con.close()
|
||||
|
||||
|
||||
def select_all_alerts(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """select ip from servers where alert = 1 or nginx_alert = 1 """
|
||||
if kwargs.get("group") is not None:
|
||||
sql = """select ip from servers where (alert = 1 or nginx_alert = 1) and `groups` = '%s' """ % kwargs.get("group")
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
funct.out_error(e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def select_nginx_alert(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """select ip from servers where nginx_alert = 1 """
|
||||
|
|
|
@ -88,22 +88,26 @@
|
|||
<tr>
|
||||
<td class="padding10 first-collumn-wi">
|
||||
{% if metrics_master == 'active' %}
|
||||
<span title="running {{ metrics_master }} master processes"><span class="serverUp server-status"></span></span>
|
||||
<span class="serverUp server-status" title="running {{ metrics_master }} master processes"></span>
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/viewlogs.py?viewlogs={{metrics_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View metrics master's logs" class="logs_link">
|
||||
<span>Metrics master</span>
|
||||
</a>
|
||||
<a href="/app/viewlogs.py?viewlogs={{metrics_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View metrics master's logs" class="logs_link">
|
||||
Metrics master
|
||||
</a>
|
||||
{% else %}
|
||||
<span>Metrics master</span>
|
||||
Metrics master
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if metrics_master == 'inactive' or metrics_master == 'failed' %}
|
||||
<span title="Metrics is stopped"><span class="serverDown server-status"></span></span>
|
||||
<span class="serverDown server-status" title="Metrics is stopped"></span>
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/users.py#services" title="Start Metrics - HAProxy-WI service" class="logs_link">
|
||||
Metrics master
|
||||
</a>
|
||||
{% else %}
|
||||
<span title="Metrics is not installed"><span class="serverNone server-status"></span></span>
|
||||
Metrics master
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span class="serverNone server-status" title="Metrics is not installed"></span>
|
||||
<a href="https://haproxy-wi.org/services.py?service=metrics#installation" title="Metrics installation" target="_blank" class="logs_link">
|
||||
Metrics master
|
||||
</a>
|
||||
|
@ -112,22 +116,26 @@
|
|||
</td>
|
||||
<td class="third-collumn-wi">
|
||||
{% if checker_master == 'active' %}
|
||||
<span title="running {{ checker_master }} master processes"><span class="serverUp server-status"></span></span>
|
||||
<span class="serverUp server-status" title="running {{ checker_master }} master processes"></span>
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/viewlogs.py?viewlogs={{checker_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View checker master's logs" class="logs_link">
|
||||
<span>Checker master</span>
|
||||
Checker master
|
||||
</a>
|
||||
{% else %}
|
||||
<span>Checker master</span>
|
||||
Checker master
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if checker_master == 'inactive' or checker_master == 'failed' %}
|
||||
<span title="Checker is stopped"><span class="serverDown server-status"></span></span>
|
||||
<a href="/app/users.py#services" title="Start Checker - HAProxy-WI service" class="logs_link">
|
||||
<span class="serverDown server-status" title="Checker is stopped"></span>
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/users.py#services" title="Start Checker - HAProxy-WI service" class="logs_link">
|
||||
Checker master
|
||||
</a>
|
||||
{% else %}
|
||||
Checker master
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span title="Backends checker is not installed"><span class="serverNone server-status"></span></span>
|
||||
<span class="serverNone server-status" title="Backends checker is not installed"></span>
|
||||
<a href="https://haproxy-wi.org/services.py?service=checker#installation" title="Backends checker installation" target="_blank" class="logs_link">
|
||||
Checker master
|
||||
</a>
|
||||
|
@ -135,74 +143,80 @@
|
|||
{% endif %}
|
||||
</td>
|
||||
<td class="third-collumn-wi">
|
||||
{% if keep_alive|int() >= 1 %}
|
||||
<span title="running {{ keep_alive }} processe"><span class="serverUp server-status"></span></span>
|
||||
{% if keep_alive == 'active' %}
|
||||
<span class="serverUp server-status" title="running {{ keep_alive }} processe"></span>
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/viewlogs.py?viewlogs={{keep_alive_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View keep alive logs" class="logs_link">
|
||||
<span>Auto start</span>
|
||||
</a>
|
||||
{% else %}
|
||||
<span>Auto star</span>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span class="serverDown server-status"></span>
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/users.py#services" title="Start Auto star - HAProxy-WI service" class="logs_link">
|
||||
<a href="/app/viewlogs.py?viewlogs={{keep_alive_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View Auto start logs" class="logs_link">
|
||||
Auto start
|
||||
</a>
|
||||
{% else %}
|
||||
<span>Auto star</span>
|
||||
Auto star
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if keep_alive == 'inactive' or keep_alive == 'failed' %}
|
||||
<span class="serverDown server-status" title="Auto start is stopped"></span>
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/users.py#services" title="Start Auto star - HAProxy-WI service" class="logs_link">
|
||||
Auto start
|
||||
</a>
|
||||
{% else %}
|
||||
Auto start
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span class="serverNone server-status" title="Auto start is not installed"></span>
|
||||
<a href="https://haproxy-wi.org/services.py?service=auto_start#installation" title="Auto start installation" target="_blank" class="logs_link">
|
||||
Auto start
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
{% if metrics_worker|int() >= 1 %}
|
||||
<span title="running {{metrics_worker}} worker processes"><span class="serverUp server-status"></span></span>
|
||||
<span class="serverUp server-status" title="running {{metrics_worker}} worker processes"></span>
|
||||
{% else %}
|
||||
{% if is_metrics_worker|int() == 0 %}
|
||||
<span title="There is not job for metrics"><span class="serverNone server-status"></span></span>
|
||||
<span class="serverNone server-status" title="There is not job for metrics"></span>
|
||||
{% else %}
|
||||
<span title="running {{is_checker_worker}} worker processes"><span class="serverDown server-status"></span></span>
|
||||
<span class="serverDown server-status" title="running {{is_checker_worker}} worker processes"></span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/viewlogs.py?viewlogs={{metrics_error_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View worker's logs" class="logs_link">
|
||||
<span>Metrics workers</span>
|
||||
Metrics workers
|
||||
</a>
|
||||
{% else %}
|
||||
<span>Metrics workers</span>
|
||||
Metrics workers
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if checker_worker|int() >= 1 %}
|
||||
<span title="running {{ checker_worker }} worker processes"><span class="serverUp server-status"></span></span>
|
||||
<span class="serverUp server-status" title="running {{ checker_worker }} worker processes"></span>
|
||||
{% else %}
|
||||
{% if is_checker_worker|int() == 0 %}
|
||||
<span title="There is not job for checker"><span class="serverNone server-status"></span> </span>
|
||||
<span class="serverNone server-status" title="There is not job for checker"></span>
|
||||
{% else %}
|
||||
<span title="running {{ checker_worker }} worker processes"><span class="serverDown server-status"></span> </span>
|
||||
<span class="serverDown server-status" title="running {{ checker_worker }} worker processes"></span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if role <= 1 %}
|
||||
<a href="/app/viewlogs.py?viewlogs={{checker_error_log_id}}&rows=10&grep=&hour=00&minut=00&hour1=24&minut1=00" title="View checker's logs" class="logs_link">
|
||||
<span>Checker workers</span>
|
||||
Checker workers
|
||||
</a>
|
||||
{% else %}
|
||||
<span>Checker workers</span>
|
||||
Checker workers
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if smon == 'active' %}
|
||||
<span title="SMON is started"><span class="serverUp server-status"></span></span>
|
||||
<span class="serverUp server-status" title="SMON is started"></span>
|
||||
<a href="/app/smon.py?action=view" title="SMON Dashboard" class="logs_link">
|
||||
SMON
|
||||
</a>
|
||||
{% else %}
|
||||
{% if smon == 'inactive' or smon== 'failed' %}
|
||||
<span title="SMON is stopped"><span class="serverDown server-status"></span></span>
|
||||
<span class="serverDown server-status" title="SMON is stopped"></span>
|
||||
<a href="/app/users.py#services" title="Start SMON - HAProxy-WI service" class="logs_link">
|
||||
SMON
|
||||
</a>
|
||||
|
@ -219,20 +233,20 @@
|
|||
{% if role == 1 %}
|
||||
<td class="padding10 first-collumn-wi">
|
||||
{% if grafana|int() >= 1 %}
|
||||
<span title="running {{grafana}} process"><span class="serverUp server-status"></span></span>
|
||||
<span class="serverUp server-status" title="running {{grafana}} process"></span>
|
||||
<a href="http://{{host}}:3000" target="_blank" title="Open Grafana" class="logs_link">Grafana</a>
|
||||
{% else %}
|
||||
<span title="The service does not started or does not installed"><span class="serverNone server-status"></span></span>
|
||||
<span class="serverNone server-status" title="The service does not started or does not installed"></span>
|
||||
<span>Grafana</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if prometheus|int() >= 1 %}
|
||||
<span title="running {{ prometheus }} process"><span class="serverUp server-status"></span></span>
|
||||
<span class="serverUp server-status" title="running {{ prometheus }} process"></span>
|
||||
{% else %}
|
||||
<span title="The service does not started or does not installed"><span class="serverNone server-status" title="The service does not started or does not installed"></span></span>
|
||||
<span class="serverNone server-status" title="The service does not started or does not installed"></span>
|
||||
{% endif %}
|
||||
<span>Prometheus</span>
|
||||
Prometheus
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
|
|
|
@ -273,4 +273,27 @@
|
|||
margin-bottom: -1px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.alert-info::before {
|
||||
display: none;
|
||||
font-family: "Font Awesome 5 Solid";
|
||||
content: "\f05a";
|
||||
}
|
||||
.alert-warning::before, .alert-danger::before {
|
||||
display: none;
|
||||
font-family: "Font Awesome 5 Solid";
|
||||
content: "\f06a";
|
||||
}
|
||||
.alert-info .fa-info-circle, .alert-warning .fa-exclamation-circle, .alert-danger .fa-exclamation-circle {
|
||||
padding-right: 10px;
|
||||
float: left;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 4px;
|
||||
font-size: 25px;
|
||||
}
|
||||
.alert-info .fa-info-circle {
|
||||
margin-top: -3px;
|
||||
}
|
||||
.alert-two-rows .fa-info-circle {
|
||||
margin-top: 5px;
|
||||
padding-left: 2px;
|
||||
}
|
Loading…
Reference in New Issue