mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 21:50:28 +08:00 
			
		
		
		
	支持使用小时筛选访问日志
This commit is contained in:
		@@ -25,6 +25,7 @@ func (this *IndexAction) RunGet(params struct {
 | 
			
		||||
	ClusterId int64
 | 
			
		||||
	NodeId    int64
 | 
			
		||||
	Day       string
 | 
			
		||||
	Hour      string
 | 
			
		||||
	Keyword   string
 | 
			
		||||
	Ip        string
 | 
			
		||||
	Domain    string
 | 
			
		||||
@@ -45,6 +46,7 @@ func (this *IndexAction) RunGet(params struct {
 | 
			
		||||
	this.Data["serverId"] = 0
 | 
			
		||||
	this.Data["path"] = this.Request.URL.Path
 | 
			
		||||
	this.Data["day"] = params.Day
 | 
			
		||||
	this.Data["hour"] = params.Hour
 | 
			
		||||
	this.Data["keyword"] = params.Keyword
 | 
			
		||||
	this.Data["ip"] = params.Ip
 | 
			
		||||
	this.Data["domain"] = params.Domain
 | 
			
		||||
@@ -76,6 +78,8 @@ func (this *IndexAction) RunGet(params struct {
 | 
			
		||||
			HasError:          params.HasError > 0,
 | 
			
		||||
			HasFirewallPolicy: params.HasWAF > 0,
 | 
			
		||||
			Day:               day,
 | 
			
		||||
			HourFrom:          params.Hour,
 | 
			
		||||
			HourTo:            params.Hour,
 | 
			
		||||
			Keyword:           params.Keyword,
 | 
			
		||||
			Ip:                params.Ip,
 | 
			
		||||
			Domain:            params.Domain,
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ func (this *HistoryAction) Init() {
 | 
			
		||||
func (this *HistoryAction) RunGet(params struct {
 | 
			
		||||
	ServerId int64
 | 
			
		||||
	Day      string
 | 
			
		||||
	Hour     string
 | 
			
		||||
	Keyword  string
 | 
			
		||||
	Ip       string
 | 
			
		||||
	Domain   string
 | 
			
		||||
@@ -40,6 +41,7 @@ func (this *HistoryAction) RunGet(params struct {
 | 
			
		||||
 | 
			
		||||
	this.Data["path"] = this.Request.URL.Path
 | 
			
		||||
	this.Data["day"] = params.Day
 | 
			
		||||
	this.Data["hour"] = params.Hour
 | 
			
		||||
	this.Data["keyword"] = params.Keyword
 | 
			
		||||
	this.Data["ip"] = params.Ip
 | 
			
		||||
	this.Data["domain"] = params.Domain
 | 
			
		||||
@@ -68,6 +70,8 @@ func (this *HistoryAction) RunGet(params struct {
 | 
			
		||||
			HasError:          params.HasError > 0,
 | 
			
		||||
			HasFirewallPolicy: params.HasWAF > 0,
 | 
			
		||||
			Day:               day,
 | 
			
		||||
			HourFrom:          params.Hour,
 | 
			
		||||
			HourTo:            params.Hour,
 | 
			
		||||
			Keyword:           params.Keyword,
 | 
			
		||||
			Ip:                params.Ip,
 | 
			
		||||
			Domain:            params.Domain,
 | 
			
		||||
 
 | 
			
		||||
@@ -78,11 +78,11 @@ Vue.component("http-access-log-search-box", {
 | 
			
		||||
		<div class="ui field">
 | 
			
		||||
			<div class="ui input left right labeled small">
 | 
			
		||||
				<span class="ui label basic" style="font-weight: normal">关键词</span>
 | 
			
		||||
				<input type="text" name="keyword" v-model="keyword" placeholder="路径、UserAgent等..." size="18"/>
 | 
			
		||||
				<input type="text" name="keyword" v-model="keyword" placeholder="路径、UserAgent等..." size="30"/>
 | 
			
		||||
				<a class="ui label basic" :class="{disabled: keyword.length == 0}" @click.prevent="cleanKeyword"><i class="icon remove small"></i></a>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
		<slot></slot>
 | 
			
		||||
		<div class="ui field"><tip-icon content="一些特殊的关键词:<br/>单个状态码:status:200<br/>状态码范围:status:500-504<br/>查询IP:ip:192.168.1.100"></tip-icon></div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="ui fields inline" style="margin-top: 0.5em">
 | 
			
		||||
		<div class="ui field">
 | 
			
		||||
@@ -91,6 +91,7 @@ Vue.component("http-access-log-search-box", {
 | 
			
		||||
		<div class="ui field" v-if="clusterId > 0">
 | 
			
		||||
			<node-combo-box :v-cluster-id="clusterId" :v-node-id="vNodeId"></node-combo-box>
 | 
			
		||||
		</div>
 | 
			
		||||
		<slot></slot>
 | 
			
		||||
		<div class="ui field">
 | 
			
		||||
			<button class="ui button small" type="submit">搜索日志</button>
 | 
			
		||||
		</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,9 +2,9 @@
 | 
			
		||||
{$template "/datepicker"}
 | 
			
		||||
 | 
			
		||||
<first-menu>
 | 
			
		||||
    <menu-item :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&day=' + day + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" :active="hasError == 0 && hasWAF == 0">所有日志</menu-item>
 | 
			
		||||
    <menu-item :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&day=' + day + '&hasError=1' + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" :active="hasError > 0">错误日志</menu-item>
 | 
			
		||||
    <menu-item :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&day=' + day + '&hasWAF=1' + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" :active="hasWAF > 0">WAF日志</menu-item>
 | 
			
		||||
    <menu-item :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&day=' + day + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" :active="hasError == 0 && hasWAF == 0">所有日志</menu-item>
 | 
			
		||||
    <menu-item :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&day=' + day + '&hasError=1' + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" :active="hasError > 0">错误日志</menu-item>
 | 
			
		||||
    <menu-item :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&day=' + day + '&hasWAF=1' + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" :active="hasWAF > 0">WAF日志</menu-item>
 | 
			
		||||
    <menu-item :href="'/servers/logs/settings'" code="settings">设置</menu-item>
 | 
			
		||||
</first-menu>
 | 
			
		||||
 | 
			
		||||
@@ -14,7 +14,16 @@
 | 
			
		||||
    <input type="hidden" name="hasWAF" :value="hasWAF"/>
 | 
			
		||||
    <http-access-log-search-box :v-cluster-id="clusterId" :v-node-id="nodeId" :v-ip="ip" :v-domain="domain" :v-keyword="keyword">
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <div class="ui right labeled input">
 | 
			
		||||
                <input type="text" name="day" maxlength="10" placeholder="选择日期" style="width:7.8em" id="day-input" v-model="day"/>
 | 
			
		||||
                <span class="ui label">日</span>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <div class="ui right labeled input">
 | 
			
		||||
                <input type="text" name="hour" maxlength="2" style="width: 3.5em" v-model="hour"/>
 | 
			
		||||
                <span class="ui label">时</span>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </http-access-log-search-box>
 | 
			
		||||
</form>
 | 
			
		||||
@@ -31,10 +40,10 @@
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<div v-if="accessLogs.length > 0">
 | 
			
		||||
    <a :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&requestId=' + lastRequestId + '&day=' + day + '&hasError=' + hasError + '&hasWAF=' + hasWAF + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" v-if="hasPrev">上一页</a>
 | 
			
		||||
    <a :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&requestId=' + lastRequestId + '&day=' + day + '&hasError=' + hasError + '&hasWAF=' + hasWAF + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" v-if="hasPrev">上一页</a>
 | 
			
		||||
    <span v-else class="disabled">上一页</span>
 | 
			
		||||
    <span class="disabled">  |  </span>
 | 
			
		||||
    <a :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&requestId=' + nextRequestId + '&day=' + day + '&hasError=' + hasError + '&hasWAF=' + hasWAF + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" v-if="hasMore">下一页</a>
 | 
			
		||||
    <a :href="path + '?clusterId=' + clusterId + '&nodeId=' + nodeId + '&serverId=' + serverId + '&requestId=' + nextRequestId + '&day=' + day + '&hasError=' + hasError + '&hasWAF=' + hasWAF + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" v-if="hasMore">下一页</a>
 | 
			
		||||
    <span v-else class="disabled">下一页</span>
 | 
			
		||||
 | 
			
		||||
    <page-size-selector></page-size-selector>
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,9 @@
 | 
			
		||||
 | 
			
		||||
<div class="right-box">
 | 
			
		||||
	<first-menu>
 | 
			
		||||
		<menu-item :href="path + '?serverId=' + serverId + '&day=' + day + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" :active="hasError == 0 && hasWAF == 0">所有日志</menu-item>
 | 
			
		||||
		<menu-item :href="path + '?serverId=' + serverId + '&day=' + day + '&hasError=1' + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" :active="hasError > 0">错误日志</menu-item>
 | 
			
		||||
        <menu-item :href="path + '?serverId=' + serverId + '&day=' + day + '&hasWAF=1' + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" :active="hasWAF > 0">WAF日志</menu-item>
 | 
			
		||||
		<menu-item :href="path + '?serverId=' + serverId + '&day=' + day + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" :active="hasError == 0 && hasWAF == 0">所有日志</menu-item>
 | 
			
		||||
		<menu-item :href="path + '?serverId=' + serverId + '&day=' + day + '&hasError=1' + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" :active="hasError > 0">错误日志</menu-item>
 | 
			
		||||
        <menu-item :href="path + '?serverId=' + serverId + '&day=' + day + '&hasWAF=1' + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" :active="hasWAF > 0">WAF日志</menu-item>
 | 
			
		||||
	</first-menu>
 | 
			
		||||
 | 
			
		||||
    <form method="get" class="ui form small" :action="path">
 | 
			
		||||
@@ -18,6 +18,12 @@
 | 
			
		||||
            <div class="ui field">
 | 
			
		||||
                <input type="text" name="day" maxlength="10" placeholder="选择日期" style="width:7.8em" id="day-input" v-model="day"/>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="ui field">
 | 
			
		||||
                <div class="ui right labeled input">
 | 
			
		||||
                    <input type="text" name="hour" maxlength="2" style="width: 3.5em" v-model="hour"/>
 | 
			
		||||
                    <span class="ui label">时</span>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </http-access-log-search-box>
 | 
			
		||||
    </form>
 | 
			
		||||
 | 
			
		||||
@@ -31,10 +37,10 @@
 | 
			
		||||
	</table>
 | 
			
		||||
 | 
			
		||||
	<div v-if="accessLogs.length > 0">
 | 
			
		||||
		<a :href="path + '?serverId=' + serverId + '&requestId=' + lastRequestId + '&day=' + day + '&hasError=' + hasError + '&hasWAF=' + hasWAF + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" v-if="hasPrev">上一页</a>
 | 
			
		||||
		<a :href="path + '?serverId=' + serverId + '&requestId=' + lastRequestId + '&day=' + day + '&hasError=' + hasError + '&hasWAF=' + hasWAF + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" v-if="hasPrev">上一页</a>
 | 
			
		||||
		<span v-else class="disabled">上一页</span>
 | 
			
		||||
		<span class="disabled">  |  </span>
 | 
			
		||||
		<a :href="path + '?serverId=' + serverId + '&requestId=' + nextRequestId + '&day=' + day + '&hasError=' + hasError + '&hasWAF=' + hasWAF + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&pageSize=' + pageSize" v-if="hasMore">下一页</a>
 | 
			
		||||
		<a :href="path + '?serverId=' + serverId + '&requestId=' + nextRequestId + '&day=' + day + '&hasError=' + hasError + '&hasWAF=' + hasWAF + '&keyword=' + keyword + '&ip=' + ip + '&domain=' + domain + '&hour=' + hour + '&pageSize=' + pageSize" v-if="hasMore">下一页</a>
 | 
			
		||||
		<span v-else class="disabled">下一页</span>
 | 
			
		||||
        <page-size-selector></page-size-selector>
 | 
			
		||||
	</div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user