diff --git a/internal/web/actions/default/servers/logs/index.go b/internal/web/actions/default/servers/logs/index.go index 9d7fbded..2b5ab2a1 100644 --- a/internal/web/actions/default/servers/logs/index.go +++ b/internal/web/actions/default/servers/logs/index.go @@ -7,6 +7,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/maps" timeutil "github.com/iwind/TeaGo/utils/time" "regexp" "strings" @@ -59,8 +60,9 @@ func (this *IndexAction) RunGet(params struct { this.Data["slowQueryCost"] = "" this.Data["partition"] = params.Partition - day := params.Day - ipList := []string{} + var day = params.Day + var ipList = []string{} + var wafMaps = []maps.Map{} if len(day) > 0 && regexp.MustCompile(`\d{4}-\d{2}-\d{2}`).MatchString(day) { day = strings.ReplaceAll(day, "-", "") @@ -104,11 +106,31 @@ func (this *IndexAction) RunGet(params struct { } else { this.Data["accessLogs"] = resp.HttpAccessLogs for _, accessLog := range resp.HttpAccessLogs { + // IP信息集合 if len(accessLog.RemoteAddr) > 0 { if !lists.ContainsString(ipList, accessLog.RemoteAddr) { ipList = append(ipList, accessLog.RemoteAddr) } } + + // WAF信息集合 + if accessLog.FirewallPolicyId > 0 && accessLog.FirewallRuleGroupId > 0 && accessLog.FirewallRuleSetId > 0 { + // 检查Set是否已经存在 + var existSet = false + for _, wafMap := range wafMaps { + if wafMap.GetInt64("setId") == accessLog.FirewallRuleSetId { + existSet = true + break + } + } + if !existSet { + wafMaps = append(wafMaps, maps.Map{ + "policyId": accessLog.FirewallPolicyId, + "groupId": accessLog.FirewallRuleGroupId, + "setId": accessLog.FirewallRuleSetId, + }) + } + } } } this.Data["hasMore"] = resp.HasMore @@ -147,7 +169,7 @@ func (this *IndexAction) RunGet(params struct { } // 根据IP查询区域 - regionMap := map[string]string{} // ip => region + var regionMap = map[string]string{} // ip => region if len(ipList) > 0 { resp, err := this.RPC().IPLibraryRPC().LookupIPRegions(this.AdminContext(), &pb.LookupIPRegionsRequest{IpList: ipList}) if err != nil { @@ -162,5 +184,79 @@ func (this *IndexAction) RunGet(params struct { } this.Data["regions"] = regionMap + // WAF相关 + var wafInfos = map[int64]maps.Map{} // set id => WAF Map + var wafPolicyCacheMap = map[int64]*pb.HTTPFirewallPolicy{} // id => *pb.HTTPFirewallPolicy + var wafGroupCacheMap = map[int64]*pb.HTTPFirewallRuleGroup{} // id => *pb.HTTPFirewallRuleGroup + var wafSetCacheMap = map[int64]*pb.HTTPFirewallRuleSet{} // id => *pb.HTTPFirewallRuleSet + for _, wafMap := range wafMaps { + var policyId = wafMap.GetInt64("policyId") + var groupId = wafMap.GetInt64("groupId") + var setId = wafMap.GetInt64("setId") + if policyId > 0 { + pbPolicy, ok := wafPolicyCacheMap[policyId] + if !ok { + policyResp, err := this.RPC().HTTPFirewallPolicyRPC().FindEnabledHTTPFirewallPolicy(this.AdminContext(), &pb.FindEnabledHTTPFirewallPolicyRequest{HttpFirewallPolicyId: policyId}) + if err != nil { + this.ErrorPage(err) + return + } + pbPolicy = policyResp.HttpFirewallPolicy + wafPolicyCacheMap[policyId] = pbPolicy + } + if pbPolicy != nil { + wafMap = maps.Map{ + "policy": maps.Map{ + "id": pbPolicy.Id, + "name": pbPolicy.Name, + "serverId": pbPolicy.ServerId, + }, + } + if groupId > 0 { + pbGroup, ok := wafGroupCacheMap[groupId] + if !ok { + groupResp, err := this.RPC().HTTPFirewallRuleGroupRPC().FindEnabledHTTPFirewallRuleGroup(this.AdminContext(), &pb.FindEnabledHTTPFirewallRuleGroupRequest{FirewallRuleGroupId: groupId}) + if err != nil { + this.ErrorPage(err) + return + } + pbGroup = groupResp.FirewallRuleGroup + wafGroupCacheMap[groupId] = pbGroup + } + + if pbGroup != nil { + wafMap["group"] = maps.Map{ + "id": pbGroup.Id, + "name": pbGroup.Name, + } + + if setId > 0 { + pbSet, ok := wafSetCacheMap[setId] + if !ok { + setResp, err := this.RPC().HTTPFirewallRuleSetRPC().FindEnabledHTTPFirewallRuleSet(this.AdminContext(), &pb.FindEnabledHTTPFirewallRuleSetRequest{FirewallRuleSetId: setId}) + if err != nil { + this.ErrorPage(err) + return + } + pbSet = setResp.FirewallRuleSet + wafSetCacheMap[setId] = pbSet + } + + if pbSet != nil { + wafMap["set"] = maps.Map{ + "id": pbSet.Id, + "name": pbSet.Name, + } + } + } + } + } + } + } + + wafInfos[setId] = wafMap + } + this.Data["wafInfos"] = wafInfos + this.Show() } diff --git a/internal/web/actions/default/servers/server/log/history.go b/internal/web/actions/default/servers/server/log/history.go index 2b56f4d8..bd1187ef 100644 --- a/internal/web/actions/default/servers/server/log/history.go +++ b/internal/web/actions/default/servers/server/log/history.go @@ -4,6 +4,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/maps" timeutil "github.com/iwind/TeaGo/utils/time" "regexp" "strings" @@ -55,8 +56,9 @@ func (this *HistoryAction) RunGet(params struct { this.Data["nodeId"] = params.NodeId this.Data["partition"] = params.Partition - day := params.Day - ipList := []string{} + var day = params.Day + var ipList = []string{} + var wafMaps = []maps.Map{} if len(day) > 0 && regexp.MustCompile(`\d{4}-\d{2}-\d{2}`).MatchString(day) { day = strings.ReplaceAll(day, "-", "") @@ -93,11 +95,31 @@ func (this *HistoryAction) RunGet(params struct { } else { this.Data["accessLogs"] = resp.HttpAccessLogs for _, accessLog := range resp.HttpAccessLogs { + // IP if len(accessLog.RemoteAddr) > 0 { if !lists.ContainsString(ipList, accessLog.RemoteAddr) { ipList = append(ipList, accessLog.RemoteAddr) } } + + // WAF信息集合 + if accessLog.FirewallPolicyId > 0 && accessLog.FirewallRuleGroupId > 0 && accessLog.FirewallRuleSetId > 0 { + // 检查Set是否已经存在 + var existSet = false + for _, wafMap := range wafMaps { + if wafMap.GetInt64("setId") == accessLog.FirewallRuleSetId { + existSet = true + break + } + } + if !existSet { + wafMaps = append(wafMaps, maps.Map{ + "policyId": accessLog.FirewallPolicyId, + "groupId": accessLog.FirewallRuleGroupId, + "setId": accessLog.FirewallRuleSetId, + }) + } + } } } this.Data["hasMore"] = resp.HasMore @@ -134,7 +156,7 @@ func (this *HistoryAction) RunGet(params struct { } // 根据IP查询区域 - regionMap := map[string]string{} // ip => region + var regionMap = map[string]string{} // ip => region if len(ipList) > 0 { resp, err := this.RPC().IPLibraryRPC().LookupIPRegions(this.AdminContext(), &pb.LookupIPRegionsRequest{IpList: ipList}) if err != nil { @@ -149,5 +171,79 @@ func (this *HistoryAction) RunGet(params struct { } this.Data["regions"] = regionMap + // WAF相关 + var wafInfos = map[int64]maps.Map{} // set id => WAF Map + var wafPolicyCacheMap = map[int64]*pb.HTTPFirewallPolicy{} // id => *pb.HTTPFirewallPolicy + var wafGroupCacheMap = map[int64]*pb.HTTPFirewallRuleGroup{} // id => *pb.HTTPFirewallRuleGroup + var wafSetCacheMap = map[int64]*pb.HTTPFirewallRuleSet{} // id => *pb.HTTPFirewallRuleSet + for _, wafMap := range wafMaps { + var policyId = wafMap.GetInt64("policyId") + var groupId = wafMap.GetInt64("groupId") + var setId = wafMap.GetInt64("setId") + if policyId > 0 { + pbPolicy, ok := wafPolicyCacheMap[policyId] + if !ok { + policyResp, err := this.RPC().HTTPFirewallPolicyRPC().FindEnabledHTTPFirewallPolicy(this.AdminContext(), &pb.FindEnabledHTTPFirewallPolicyRequest{HttpFirewallPolicyId: policyId}) + if err != nil { + this.ErrorPage(err) + return + } + pbPolicy = policyResp.HttpFirewallPolicy + wafPolicyCacheMap[policyId] = pbPolicy + } + if pbPolicy != nil { + wafMap = maps.Map{ + "policy": maps.Map{ + "id": pbPolicy.Id, + "name": pbPolicy.Name, + "serverId": pbPolicy.ServerId, + }, + } + if groupId > 0 { + pbGroup, ok := wafGroupCacheMap[groupId] + if !ok { + groupResp, err := this.RPC().HTTPFirewallRuleGroupRPC().FindEnabledHTTPFirewallRuleGroup(this.AdminContext(), &pb.FindEnabledHTTPFirewallRuleGroupRequest{FirewallRuleGroupId: groupId}) + if err != nil { + this.ErrorPage(err) + return + } + pbGroup = groupResp.FirewallRuleGroup + wafGroupCacheMap[groupId] = pbGroup + } + + if pbGroup != nil { + wafMap["group"] = maps.Map{ + "id": pbGroup.Id, + "name": pbGroup.Name, + } + + if setId > 0 { + pbSet, ok := wafSetCacheMap[setId] + if !ok { + setResp, err := this.RPC().HTTPFirewallRuleSetRPC().FindEnabledHTTPFirewallRuleSet(this.AdminContext(), &pb.FindEnabledHTTPFirewallRuleSetRequest{FirewallRuleSetId: setId}) + if err != nil { + this.ErrorPage(err) + return + } + pbSet = setResp.FirewallRuleSet + wafSetCacheMap[setId] = pbSet + } + + if pbSet != nil { + wafMap["set"] = maps.Map{ + "id": pbSet.Id, + "name": pbSet.Name, + } + } + } + } + } + } + } + + wafInfos[setId] = wafMap + } + this.Data["wafInfos"] = wafInfos + this.Show() } diff --git a/internal/web/actions/default/servers/server/log/index.go b/internal/web/actions/default/servers/server/log/index.go index c5c09056..cba2d644 100644 --- a/internal/web/actions/default/servers/server/log/index.go +++ b/internal/web/actions/default/servers/server/log/index.go @@ -5,6 +5,7 @@ import ( "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/maps" timeutil "github.com/iwind/TeaGo/utils/time" ) @@ -61,7 +62,7 @@ func (this *IndexAction) RunPost(params struct { Must *actions.Must }) { - isReverse := len(params.RequestId) > 0 + var isReverse = len(params.RequestId) > 0 accessLogsResp, err := this.RPC().HTTPAccessLogRPC().ListHTTPAccessLogs(this.AdminContext(), &pb.ListHTTPAccessLogsRequest{ Partition: params.Partition, ServerId: params.ServerId, @@ -80,17 +81,39 @@ func (this *IndexAction) RunPost(params struct { return } - ipList := []string{} - accessLogs := accessLogsResp.HttpAccessLogs + var ipList = []string{} + var wafMaps = []maps.Map{} + + var accessLogs = accessLogsResp.HttpAccessLogs if len(accessLogs) == 0 { accessLogs = []*pb.HTTPAccessLog{} } else { for _, accessLog := range accessLogs { + // IP if len(accessLog.RemoteAddr) > 0 { if !lists.ContainsString(ipList, accessLog.RemoteAddr) { ipList = append(ipList, accessLog.RemoteAddr) } } + + // WAF信息集合 + if accessLog.FirewallPolicyId > 0 && accessLog.FirewallRuleGroupId > 0 && accessLog.FirewallRuleSetId > 0 { + // 检查Set是否已经存在 + var existSet = false + for _, wafMap := range wafMaps { + if wafMap.GetInt64("setId") == accessLog.FirewallRuleSetId { + existSet = true + break + } + } + if !existSet { + wafMaps = append(wafMaps, maps.Map{ + "policyId": accessLog.FirewallPolicyId, + "groupId": accessLog.FirewallRuleGroupId, + "setId": accessLog.FirewallRuleSetId, + }) + } + } } } this.Data["accessLogs"] = accessLogs @@ -102,7 +125,7 @@ func (this *IndexAction) RunPost(params struct { this.Data["hasMore"] = accessLogsResp.HasMore // 根据IP查询区域 - regionMap := map[string]string{} // ip => region + var regionMap = map[string]string{} // ip => region if len(ipList) > 0 { resp, err := this.RPC().IPLibraryRPC().LookupIPRegions(this.AdminContext(), &pb.LookupIPRegionsRequest{IpList: ipList}) if err != nil { @@ -117,5 +140,79 @@ func (this *IndexAction) RunPost(params struct { } this.Data["regions"] = regionMap + // WAF相关 + var wafInfos = map[int64]maps.Map{} // set id => WAF Map + var wafPolicyCacheMap = map[int64]*pb.HTTPFirewallPolicy{} // id => *pb.HTTPFirewallPolicy + var wafGroupCacheMap = map[int64]*pb.HTTPFirewallRuleGroup{} // id => *pb.HTTPFirewallRuleGroup + var wafSetCacheMap = map[int64]*pb.HTTPFirewallRuleSet{} // id => *pb.HTTPFirewallRuleSet + for _, wafMap := range wafMaps { + var policyId = wafMap.GetInt64("policyId") + var groupId = wafMap.GetInt64("groupId") + var setId = wafMap.GetInt64("setId") + if policyId > 0 { + pbPolicy, ok := wafPolicyCacheMap[policyId] + if !ok { + policyResp, err := this.RPC().HTTPFirewallPolicyRPC().FindEnabledHTTPFirewallPolicy(this.AdminContext(), &pb.FindEnabledHTTPFirewallPolicyRequest{HttpFirewallPolicyId: policyId}) + if err != nil { + this.ErrorPage(err) + return + } + pbPolicy = policyResp.HttpFirewallPolicy + wafPolicyCacheMap[policyId] = pbPolicy + } + if pbPolicy != nil { + wafMap = maps.Map{ + "policy": maps.Map{ + "id": pbPolicy.Id, + "name": pbPolicy.Name, + "serverId": pbPolicy.ServerId, + }, + } + if groupId > 0 { + pbGroup, ok := wafGroupCacheMap[groupId] + if !ok { + groupResp, err := this.RPC().HTTPFirewallRuleGroupRPC().FindEnabledHTTPFirewallRuleGroup(this.AdminContext(), &pb.FindEnabledHTTPFirewallRuleGroupRequest{FirewallRuleGroupId: groupId}) + if err != nil { + this.ErrorPage(err) + return + } + pbGroup = groupResp.FirewallRuleGroup + wafGroupCacheMap[groupId] = pbGroup + } + + if pbGroup != nil { + wafMap["group"] = maps.Map{ + "id": pbGroup.Id, + "name": pbGroup.Name, + } + + if setId > 0 { + pbSet, ok := wafSetCacheMap[setId] + if !ok { + setResp, err := this.RPC().HTTPFirewallRuleSetRPC().FindEnabledHTTPFirewallRuleSet(this.AdminContext(), &pb.FindEnabledHTTPFirewallRuleSetRequest{FirewallRuleSetId: setId}) + if err != nil { + this.ErrorPage(err) + return + } + pbSet = setResp.FirewallRuleSet + wafSetCacheMap[setId] = pbSet + } + + if pbSet != nil { + wafMap["set"] = maps.Map{ + "id": pbSet.Id, + "name": pbSet.Name, + } + } + } + } + } + } + } + + wafInfos[setId] = wafMap + } + this.Data["wafInfos"] = wafInfos + this.Success() } diff --git a/internal/web/actions/default/servers/server/log/today.go b/internal/web/actions/default/servers/server/log/today.go index 97a5698b..7e5a64b6 100644 --- a/internal/web/actions/default/servers/server/log/today.go +++ b/internal/web/actions/default/servers/server/log/today.go @@ -4,6 +4,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/lists" + "github.com/iwind/TeaGo/maps" timeutil "github.com/iwind/TeaGo/utils/time" ) @@ -33,7 +34,7 @@ func (this *TodayAction) RunGet(params struct { }) { this.Data["pageSize"] = params.PageSize - size := int64(params.PageSize) + var size = int64(params.PageSize) if size < 1 { size = 20 } @@ -68,17 +69,39 @@ func (this *TodayAction) RunGet(params struct { return } - ipList := []string{} + var ipList = []string{} + var wafMaps = []maps.Map{} + if len(resp.HttpAccessLogs) == 0 { this.Data["accessLogs"] = []interface{}{} } else { this.Data["accessLogs"] = resp.HttpAccessLogs for _, accessLog := range resp.HttpAccessLogs { + // IP if len(accessLog.RemoteAddr) > 0 { if !lists.ContainsString(ipList, accessLog.RemoteAddr) { ipList = append(ipList, accessLog.RemoteAddr) } } + + // WAF信息集合 + if accessLog.FirewallPolicyId > 0 && accessLog.FirewallRuleGroupId > 0 && accessLog.FirewallRuleSetId > 0 { + // 检查Set是否已经存在 + var existSet = false + for _, wafMap := range wafMaps { + if wafMap.GetInt64("setId") == accessLog.FirewallRuleSetId { + existSet = true + break + } + } + if !existSet { + wafMaps = append(wafMaps, maps.Map{ + "policyId": accessLog.FirewallPolicyId, + "groupId": accessLog.FirewallRuleGroupId, + "setId": accessLog.FirewallRuleSetId, + }) + } + } } } this.Data["hasMore"] = resp.HasMore @@ -114,7 +137,7 @@ func (this *TodayAction) RunGet(params struct { } // 根据IP查询区域 - regionMap := map[string]string{} // ip => region + var regionMap = map[string]string{} // ip => region if len(ipList) > 0 { resp, err := this.RPC().IPLibraryRPC().LookupIPRegions(this.AdminContext(), &pb.LookupIPRegionsRequest{IpList: ipList}) if err != nil { @@ -129,5 +152,79 @@ func (this *TodayAction) RunGet(params struct { } this.Data["regions"] = regionMap + // WAF相关 + var wafInfos = map[int64]maps.Map{} // set id => WAF Map + var wafPolicyCacheMap = map[int64]*pb.HTTPFirewallPolicy{} // id => *pb.HTTPFirewallPolicy + var wafGroupCacheMap = map[int64]*pb.HTTPFirewallRuleGroup{} // id => *pb.HTTPFirewallRuleGroup + var wafSetCacheMap = map[int64]*pb.HTTPFirewallRuleSet{} // id => *pb.HTTPFirewallRuleSet + for _, wafMap := range wafMaps { + var policyId = wafMap.GetInt64("policyId") + var groupId = wafMap.GetInt64("groupId") + var setId = wafMap.GetInt64("setId") + if policyId > 0 { + pbPolicy, ok := wafPolicyCacheMap[policyId] + if !ok { + policyResp, err := this.RPC().HTTPFirewallPolicyRPC().FindEnabledHTTPFirewallPolicy(this.AdminContext(), &pb.FindEnabledHTTPFirewallPolicyRequest{HttpFirewallPolicyId: policyId}) + if err != nil { + this.ErrorPage(err) + return + } + pbPolicy = policyResp.HttpFirewallPolicy + wafPolicyCacheMap[policyId] = pbPolicy + } + if pbPolicy != nil { + wafMap = maps.Map{ + "policy": maps.Map{ + "id": pbPolicy.Id, + "name": pbPolicy.Name, + "serverId": pbPolicy.ServerId, + }, + } + if groupId > 0 { + pbGroup, ok := wafGroupCacheMap[groupId] + if !ok { + groupResp, err := this.RPC().HTTPFirewallRuleGroupRPC().FindEnabledHTTPFirewallRuleGroup(this.AdminContext(), &pb.FindEnabledHTTPFirewallRuleGroupRequest{FirewallRuleGroupId: groupId}) + if err != nil { + this.ErrorPage(err) + return + } + pbGroup = groupResp.FirewallRuleGroup + wafGroupCacheMap[groupId] = pbGroup + } + + if pbGroup != nil { + wafMap["group"] = maps.Map{ + "id": pbGroup.Id, + "name": pbGroup.Name, + } + + if setId > 0 { + pbSet, ok := wafSetCacheMap[setId] + if !ok { + setResp, err := this.RPC().HTTPFirewallRuleSetRPC().FindEnabledHTTPFirewallRuleSet(this.AdminContext(), &pb.FindEnabledHTTPFirewallRuleSetRequest{FirewallRuleSetId: setId}) + if err != nil { + this.ErrorPage(err) + return + } + pbSet = setResp.FirewallRuleSet + wafSetCacheMap[setId] = pbSet + } + + if pbSet != nil { + wafMap["set"] = maps.Map{ + "id": pbSet.Id, + "name": pbSet.Name, + } + } + } + } + } + } + } + + wafInfos[setId] = wafMap + } + this.Data["wafInfos"] = wafInfos + this.Show() } diff --git a/web/public/js/components/common/labels.js b/web/public/js/components/common/labels.js index c50a8e77..297a50bf 100644 --- a/web/public/js/components/common/labels.js +++ b/web/public/js/components/common/labels.js @@ -14,6 +14,11 @@ Vue.component("code-label", { template: `` }) +Vue.component("code-label-plain", { + template: `` +}) + + // tiny标签 Vue.component("tiny-label", { template: `` diff --git a/web/public/js/components/server/http-access-log-box.js b/web/public/js/components/server/http-access-log-box.js index 7f87631a..3032bf21 100644 --- a/web/public/js/components/server/http-access-log-box.js +++ b/web/public/js/components/server/http-access-log-box.js @@ -52,9 +52,25 @@ Vue.component("http-access-log-box", { } }, template: `
- [{{accessLog.node.name}}节点] - [服务] - [{{accessLog.region}}] {{accessLog.remoteAddr}} [{{accessLog.timeLocal}}] "{{accessLog.requestMethod}} {{accessLog.scheme}}://{{accessLog.host}}{{accessLog.requestURI}} {{accessLog.proto}}" {{accessLog.status}} cache {{accessLog.attrs['cache.status'].toLowerCase()}} waf {{accessLog.firewallActions}} - {{tag}} - 耗时:{{formatCost(accessLog.requestTime)}} ms   ({{accessLog.humanTime}}) -   +
+ [{{accessLog.node.name}}节点] + [服务] + [{{accessLog.region}}] {{accessLog.remoteAddr}} [{{accessLog.timeLocal}}] "{{accessLog.requestMethod}} {{accessLog.scheme}}://{{accessLog.host}}{{accessLog.requestURI}} {{accessLog.proto}}" {{accessLog.status}} cache {{accessLog.attrs['cache.status'].toLowerCase()}} waf {{accessLog.firewallActions}} - {{tag}} + + + + + + WAF -- + {{accessLog.wafInfo.group.name}} -- + {{accessLog.wafInfo.set.name}} + + + + + + - 耗时:{{formatCost(accessLog.requestTime)}} ms   ({{accessLog.humanTime}}) +   +
` }) \ No newline at end of file diff --git a/web/public/js/components/server/http-access-log-config-box.js b/web/public/js/components/server/http-access-log-config-box.js index 80cfdbcc..d0fce2e4 100644 --- a/web/public/js/components/server/http-access-log-config-box.js +++ b/web/public/js/components/server/http-access-log-config-box.js @@ -54,13 +54,12 @@ Vue.component("http-access-log-config-box", { - 是否开启访问日志存储 + 开启访问日志
-

关闭访问日志,并不影响统计的运行。

@@ -123,7 +122,7 @@ Vue.component("http-access-log-config-box", {

WAF相关

- +
是否只记录WAF相关日志只记录WAF相关日志

选中后只记录WAF相关的日志。通过此选项可有效减少访问日志数量,降低网络带宽和存储压力。

diff --git a/web/views/@default/servers/logs/index.js b/web/views/@default/servers/logs/index.js index e0493fd8..f462f8a5 100644 --- a/web/views/@default/servers/logs/index.js +++ b/web/views/@default/servers/logs/index.js @@ -1,17 +1,22 @@ Tea.context(function () { - this.$delay(function () { - let that = this - teaweb.datepicker("day-input", function (day) { - that.day = day - }) - }) + this.$delay(function () { + let that = this + teaweb.datepicker("day-input", function (day) { + that.day = day + }) + }) - let that = this - this.accessLogs.forEach(function (accessLog) { - if (typeof (that.regions[accessLog.remoteAddr]) == "string") { - accessLog.region = that.regions[accessLog.remoteAddr] - } else { - accessLog.region = "" - } - }) + let that = this + this.accessLogs.forEach(function (accessLog) { + if (typeof (that.regions[accessLog.remoteAddr]) == "string") { + accessLog.region = that.regions[accessLog.remoteAddr] + } else { + accessLog.region = "" + } + if (accessLog.firewallRuleSetId > 0 && typeof (that.wafInfos[accessLog.firewallRuleSetId]) == "object") { + accessLog.wafInfo = that.wafInfos[accessLog.firewallRuleSetId] + } else { + accessLog.wafInfo = null + } + }) }) \ No newline at end of file diff --git a/web/views/@default/servers/server/log/history.js b/web/views/@default/servers/server/log/history.js index e0493fd8..b24aa0d2 100644 --- a/web/views/@default/servers/server/log/history.js +++ b/web/views/@default/servers/server/log/history.js @@ -13,5 +13,10 @@ Tea.context(function () { } else { accessLog.region = "" } + if (accessLog.firewallRuleSetId > 0 && typeof (that.wafInfos[accessLog.firewallRuleSetId]) == "object") { + accessLog.wafInfo = that.wafInfos[accessLog.firewallRuleSetId] + } else { + accessLog.wafInfo = null + } }) }) \ No newline at end of file diff --git a/web/views/@default/servers/server/log/index.js b/web/views/@default/servers/server/log/index.js index 8251be5f..3d234214 100644 --- a/web/views/@default/servers/server/log/index.js +++ b/web/views/@default/servers/server/log/index.js @@ -30,6 +30,11 @@ Tea.context(function () { } else { accessLog.region = "" } + if (accessLog.firewallRuleSetId > 0 && typeof (resp.data.wafInfos[accessLog.firewallRuleSetId]) == "object") { + accessLog.wafInfo = resp.data.wafInfos[accessLog.firewallRuleSetId] + } else { + accessLog.wafInfo = null + } }) let max = 100 diff --git a/web/views/@default/servers/server/log/today.js b/web/views/@default/servers/server/log/today.js index 3aa4d72f..37bd321a 100644 --- a/web/views/@default/servers/server/log/today.js +++ b/web/views/@default/servers/server/log/today.js @@ -6,5 +6,10 @@ Tea.context(function () { } else { accessLog.region = "" } + if (accessLog.firewallRuleSetId > 0 && typeof (that.wafInfos[accessLog.firewallRuleSetId]) == "object") { + accessLog.wafInfo = that.wafInfos[accessLog.firewallRuleSetId] + } else { + accessLog.wafInfo = null + } }) }) \ No newline at end of file