mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 05:00:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
syntax = "proto3";
 | 
						|
option go_package = "./pb";
 | 
						|
 | 
						|
package pb;
 | 
						|
 | 
						|
import "models/rpc_messages.proto";
 | 
						|
import "models/model_http_firewall_rule_group.proto";
 | 
						|
 | 
						|
// 防火墙全局服务
 | 
						|
service FirewallService {
 | 
						|
	// 组合看板数据
 | 
						|
	rpc composeFirewallGlobalBoard (ComposeFirewallGlobalBoardRequest) returns (ComposeFirewallGlobalBoardResponse);
 | 
						|
 | 
						|
	// 发送告警(notify)消息
 | 
						|
	rpc notifyHTTPFirewallEvent (NotifyHTTPFirewallEventRequest) returns (RPCSuccess);
 | 
						|
 | 
						|
	// 读取当前Block动作次数
 | 
						|
	rpc countFirewallDailyBlocks(CountFirewallDailyBlocksRequest) returns (CountFirewallDailyBlocksResponse);
 | 
						|
}
 | 
						|
 | 
						|
// 组合看板数据
 | 
						|
message ComposeFirewallGlobalBoardRequest {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
message ComposeFirewallGlobalBoardResponse {
 | 
						|
	int64 countDailyLogs = 1;
 | 
						|
	int64 countDailyBlocks = 2;
 | 
						|
	int64 countDailyCaptcha = 3;
 | 
						|
	int64 countWeeklyBlocks = 4;
 | 
						|
 | 
						|
	repeated HTTPFirewallRuleGroupStat httpFirewallRuleGroups = 30;
 | 
						|
	repeated DailyStat dailyStats = 31;
 | 
						|
	repeated HourlyStat hourlyStats = 32;
 | 
						|
	repeated NodeStat topNodeStats = 33;
 | 
						|
	repeated DomainStat topDomainStats = 34;
 | 
						|
	repeated CountryStat topCountryStats = 35;
 | 
						|
 | 
						|
	message HTTPFirewallRuleGroupStat {
 | 
						|
		HTTPFirewallRuleGroup httpFirewallRuleGroup = 1;
 | 
						|
		int64 count = 2;
 | 
						|
	}
 | 
						|
 | 
						|
	message HourlyStat {
 | 
						|
		string hour = 1;
 | 
						|
		int64 countLogs = 2;
 | 
						|
		int64 countCaptcha = 3;
 | 
						|
		int64 countBlocks = 4;
 | 
						|
	}
 | 
						|
 | 
						|
	message DailyStat {
 | 
						|
		string day = 1;
 | 
						|
		int64 countLogs = 2;
 | 
						|
		int64 countCaptcha = 3;
 | 
						|
		int64 countBlocks = 4;
 | 
						|
	}
 | 
						|
 | 
						|
	message NodeStat {
 | 
						|
		int64 nodeId = 1;
 | 
						|
		string nodeName = 2;
 | 
						|
		int64 countRequests = 3;
 | 
						|
		int64 bytes = 4;
 | 
						|
		int64 countAttackRequests = 6;
 | 
						|
		int64 attackBytes = 7;
 | 
						|
	}
 | 
						|
 | 
						|
	message DomainStat {
 | 
						|
		int64 serverId = 1;
 | 
						|
		string domain = 2;
 | 
						|
		int64 countRequests = 3;
 | 
						|
		int64 bytes = 4;
 | 
						|
		int64 countAttackRequests = 6;
 | 
						|
		int64 attackBytes = 7;
 | 
						|
	}
 | 
						|
 | 
						|
	message CountryStat {
 | 
						|
		string countryName = 1;
 | 
						|
		int64 bytes = 2;
 | 
						|
		int64 countRequests = 3;
 | 
						|
		float percent = 4; // 流量占比
 | 
						|
		int64 countAttackRequests = 6;
 | 
						|
		int64 attackBytes = 7;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// 发送告警(notify)消息
 | 
						|
message NotifyHTTPFirewallEventRequest {
 | 
						|
	int64 serverId = 1;
 | 
						|
	int64 httpFirewallPolicyId = 2;
 | 
						|
	int64 httpFirewallRuleGroupId = 3;
 | 
						|
	int64 httpFirewallRuleSetId = 4;
 | 
						|
	int64 createdAt = 5;
 | 
						|
}
 | 
						|
 | 
						|
// 读取当前Block动作次数
 | 
						|
message CountFirewallDailyBlocksRequest {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
message CountFirewallDailyBlocksResponse {
 | 
						|
	int64 countBlocks = 1;
 | 
						|
} |