mirror of https://github.com/Aidaho12/haproxy-wi
v3.7.4
parent
d3ad7171a4
commit
d9870d15a0
11
api/api.py
11
api/api.py
|
@ -70,7 +70,8 @@ def index():
|
|||
'server/<id,hostname,ip>/action/restart':'restart HAProxy service by id or hostname or ip',
|
||||
'server/<id,hostname,ip>/config/get':'get HAProxy config from the server by id or hostname or ip',
|
||||
'server/<id,hostname,ip>/config/send':'send HAProxy config to the server by id or hostname or ip. Has to have config header with config and action header for action after upload. Action header accepts next value: save, test, reload and restart. May be empty for just save',
|
||||
'server/<id,hostname,ip>/config/add':'add section to the HAProxy config by id or hostname or ip. Has to have config header with section and action header for action after upload. Action header accepts next value: save, test, reload and restart. May be empty for just save'
|
||||
'server/<id,hostname,ip>/config/add':'add section to the HAProxy config by id or hostname or ip. Has to have config header with section and action header for action after upload. Action header accepts next value: save, test, reload and restart. May be empty for just save',
|
||||
'server/<id,hostname,ip>/log':'show HAProxy log by id or hostname or ip. May to have config next headers: rows(format INT) default: 10 grep, waf(if needs WAF log) deault: 0, start_hour(format: 24) default: 00, start_minut, end_hour(format: 24) default: 24, end_minut'
|
||||
}
|
||||
return dict(help=data)
|
||||
|
||||
|
@ -170,3 +171,11 @@ def callback(id):
|
|||
return dict(error=_error_auth)
|
||||
return api_funct.add_to_config(id)
|
||||
|
||||
|
||||
@route('/server/<id>/log', method=['GET', 'POST'])
|
||||
@route('/server/<id:int>/log', method=['GET', 'POST'])
|
||||
def callback(id):
|
||||
if not check_login():
|
||||
return dict(error=_error_auth)
|
||||
return api_funct.show_log(id)
|
||||
|
|
@ -257,10 +257,48 @@ def add_to_config(id):
|
|||
|
||||
data = {id: return_mess}
|
||||
except:
|
||||
data = {}
|
||||
data[id] = {"error":"Cannot find the server"}
|
||||
return dict(error=data)
|
||||
|
||||
return dict(config=data)
|
||||
|
||||
|
||||
def show_log(id):
|
||||
data = {}
|
||||
rows = request.headers.get('rows')
|
||||
waf = request.headers.get('waf')
|
||||
grep = request.headers.get('grep')
|
||||
hour = request.headers.get('starthour')
|
||||
minut = request.headers.get('startminut')
|
||||
hour1 = request.headers.get('endhour')
|
||||
minut1 = request.headers.get('endminut')
|
||||
|
||||
if rows is None:
|
||||
rows = '10'
|
||||
if waf is None:
|
||||
waf = '0'
|
||||
if hour is None:
|
||||
hour = '00'
|
||||
if minut is None:
|
||||
minut = '00'
|
||||
if hour1 is None:
|
||||
hour1 = '24'
|
||||
if minut1 is None:
|
||||
minut1 = '00'
|
||||
|
||||
try:
|
||||
servers = check_permit_to_server(id)
|
||||
|
||||
for s in servers:
|
||||
ip = s[2]
|
||||
except:
|
||||
|
||||
data[id] = {"error":"Cannot find the server"}
|
||||
return dict(error=data)
|
||||
|
||||
out = funct.show_haproxy_log(ip, rows=rows, waf=str(waf), grep=grep, hour=str(hour), minut=str(minut), hour1=str(hour1), minut1=str(minut1), html=0)
|
||||
data = {id: out}
|
||||
|
||||
return dict(log=data)
|
||||
|
||||
|
|
@ -438,7 +438,7 @@ def update_db_v_3_5_3(**kwargs):
|
|||
|
||||
def update_ver(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """update version set version = '3.7.3.3'; """
|
||||
sql = """update version set version = '3.7.4'; """
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
|
|
45
app/funct.py
45
app/funct.py
|
@ -546,12 +546,51 @@ def check_haproxy_config(serv):
|
|||
ssh.close()
|
||||
|
||||
|
||||
def show_log(stdout):
|
||||
def show_log(stdout, **kwargs):
|
||||
i = 0
|
||||
out = ''
|
||||
for line in stdout:
|
||||
if kwargs.get("html") != 0:
|
||||
i = i + 1
|
||||
line_class = "line3" if i % 2 == 0 else "line"
|
||||
print('<div class="'+line_class+'">' + escape_html(line) + '</div>')
|
||||
out += '<div class="'+line_class+'">' + escape_html(line) + '</div>'
|
||||
else:
|
||||
out += line
|
||||
|
||||
return out
|
||||
|
||||
|
||||
def show_haproxy_log(serv, rows=10, waf='0', grep=None, hour='00', minut='00', hour1='24', minut1='00', **kwargs):
|
||||
import sql
|
||||
date = hour+':'+minut
|
||||
date1 = hour1+':'+minut1
|
||||
if grep is not None:
|
||||
grep_act = '|grep'
|
||||
else:
|
||||
grep_act = ''
|
||||
grep = ''
|
||||
|
||||
syslog_server_enable = sql.get_setting('syslog_server_enable')
|
||||
if syslog_server_enable is None or syslog_server_enable == "0":
|
||||
local_path_logs = sql.get_setting('local_path_logs')
|
||||
syslog_server = serv
|
||||
commands = [ "sudo cat %s| awk '$3>\"%s:00\" && $3<\"%s:00\"' |tail -%s %s %s" % (local_path_logs, date, date1, rows, grep_act, grep) ]
|
||||
else:
|
||||
commands = [ "sudo cat /var/log/%s/syslog.log | sed '/ %s:00/,/ %s:00/! d' |tail -%s %s %s" % (serv, date, date1, rows, grep_act, grep) ]
|
||||
syslog_server = sql.get_setting('syslog_server')
|
||||
|
||||
if waf == "1":
|
||||
local_path_logs = '/var/log/modsec_audit.log'
|
||||
commands = [ "sudo cat %s |tail -%s %s %s" % (local_path_logs, rows, grep_act, grep) ]
|
||||
|
||||
|
||||
if kwargs.get('html') == 0:
|
||||
a = ssh_command(syslog_server, commands)
|
||||
return show_log(a, html=0)
|
||||
else:
|
||||
return ssh_command(syslog_server, commands, show_log='1')
|
||||
|
||||
|
||||
|
||||
|
||||
def show_ip(stdout):
|
||||
|
@ -583,7 +622,7 @@ def ssh_command(serv, commands, **kwargs):
|
|||
if kwargs.get("ip") == "1":
|
||||
show_ip(stdout)
|
||||
elif kwargs.get("show_log") == "1":
|
||||
show_log(stdout)
|
||||
return show_log(stdout)
|
||||
elif kwargs.get("server_status") == "1":
|
||||
server_status(stdout)
|
||||
elif kwargs.get('print_out'):
|
||||
|
|
|
@ -337,29 +337,8 @@ if serv is not None and form.getvalue('rows') is not None:
|
|||
minut = form.getvalue('minut')
|
||||
hour1 = form.getvalue('hour1')
|
||||
minut1 = form.getvalue('minut1')
|
||||
date = hour+':'+minut
|
||||
date1 = hour1+':'+minut1
|
||||
|
||||
if grep is not None:
|
||||
grep_act = '|grep'
|
||||
else:
|
||||
grep_act = ''
|
||||
grep = ''
|
||||
|
||||
syslog_server_enable = sql.get_setting('syslog_server_enable')
|
||||
if syslog_server_enable is None or syslog_server_enable == "0":
|
||||
local_path_logs = sql.get_setting('local_path_logs')
|
||||
syslog_server = serv
|
||||
commands = [ "sudo cat %s| awk '$3>\"%s:00\" && $3<\"%s:00\"' |tail -%s %s %s" % (local_path_logs, date, date1, rows, grep_act, grep) ]
|
||||
else:
|
||||
commands = [ "sudo cat /var/log/%s/syslog.log | sed '/ %s:00/,/ %s:00/! d' |tail -%s %s %s" % (serv, date, date1, rows, grep_act, grep) ]
|
||||
syslog_server = sql.get_setting('syslog_server')
|
||||
|
||||
if waf == "1":
|
||||
local_path_logs = '/var/log/modsec_audit.log'
|
||||
commands = [ "sudo cat %s |tail -%s %s %s" % (local_path_logs, rows, grep_act, grep) ]
|
||||
|
||||
funct.ssh_command(syslog_server, commands, show_log="1")
|
||||
out = funct.show_haproxy_log(serv, rows=rows, waf=waf, grep=grep, hour=hour, minut=minut, hour1=hour1, minut1=minut1)
|
||||
print(out)
|
||||
|
||||
|
||||
if serv is not None and form.getvalue('rows1') is not None:
|
||||
|
@ -386,7 +365,7 @@ if serv is not None and form.getvalue('rows1') is not None:
|
|||
|
||||
output, stderr = funct.subprocess_execute(cmd)
|
||||
|
||||
funct.show_log(output)
|
||||
print(funct.show_log(output))
|
||||
print(stderr)
|
||||
|
||||
|
||||
|
@ -411,7 +390,7 @@ if form.getvalue('viewlogs') is not None:
|
|||
cmd="cat %s| awk '$3>\"%s:00\" && $3<\"%s:00\"' |tail -%s %s %s" % (log_path + viewlog, date, date1, rows, grep_act, grep)
|
||||
output, stderr = funct.subprocess_execute(cmd)
|
||||
|
||||
funct.show_log(output)
|
||||
print(funct.show_log(output))
|
||||
print(stderr)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue