diff --git a/app/overview.py b/app/overview.py index 94bfcffc..3503ef37 100644 --- a/app/overview.py +++ b/app/overview.py @@ -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) diff --git a/app/sql.py b/app/sql.py index dcec8e00..671a3e96 100644 --- a/app/sql.py +++ b/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 """ diff --git a/app/templates/ovw.html b/app/templates/ovw.html index c38dd5f2..f573fab3 100644 --- a/app/templates/ovw.html +++ b/app/templates/ovw.html @@ -88,22 +88,26 @@