Compare commits

..

No commits in common. 'eb6db892d9f27615ad7fd534f4528a61eda2464d' and '759e71b00d7f4cf8158b778a4d2ea7d2b3ade71b' have entirely different histories.

  1. 4
      src/app/routes/config/layout/manage/manage.component.html
  2. 194
      src/app/routes/config/layout/manage/manage.component.ts
  3. 30
      src/app/routes/config/layout/manage/path/path.component.ts
  4. 9
      src/app/routes/config/service/https/notice.service.ts

@ -22,7 +22,7 @@
</div> </div>
<div class="table-container" style="margin-top: 50px;height:100vh;"> <div class="table-container" style="margin-top: 50px;height:100vh;">
<div style="display: flex;justify-content: right;"><button nz-button [hidden]="exportIsVisable" (click)="exportExcel()">导出</button></div> <div style="display: flex;justify-content: right;"><button nz-button (click)="exportExcel()">导出</button></div>
<nz-table *ngIf="tableisShow === '1'" #basicTable [nzData]="listOfData"> <nz-table *ngIf="tableisShow === '1'" #basicTable [nzData]="listOfData">
<thead> <thead>
@ -131,7 +131,7 @@
"frequency_rate": 0.263449367088608, "frequency_rate": 0.263449367088608,
"frequency_avg": 111, "frequency_avg": 111,
"trend": 0.09 --> "trend": 0.09 -->
<td><a (click)="showModel({type: 4, key: data.menu_name})">{{ data.menu_name }}</a></td> <td><a (click)="showModel({type: 3, key: data.menu_name})">{{ data.menu_name }}</a></td>
<td>{{ data.req_frequency }}</td> <td>{{ data.req_frequency }}</td>
<td>{{ data.frequency_rate| percent: '1.1-2' }}</td> <td>{{ data.frequency_rate| percent: '1.1-2' }}</td>
<td>{{ data.frequency_avg| number: '1.2-2'}}</td> <td>{{ data.frequency_avg| number: '1.2-2'}}</td>

@ -71,7 +71,7 @@ export class ManageComponent implements OnInit {
isVisible = false isVisible = false
detail_data : any; detail_data : any;
destroySubscriptions: Subscription[] = []; destroySubscriptions: Subscription[] = [];
exportIsVisable = true;
constructor( constructor(
private noticeService: NoticeService, private noticeService: NoticeService,
public message: NzMessageService, public message: NzMessageService,
@ -83,91 +83,99 @@ export class ManageComponent implements OnInit {
const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] }; const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
this.saveAsExcelFile(excelBuffer, excelFileName); this.saveAsExcelFile(excelBuffer, excelFileName);
} }
private saveAsExcelFile(buffer: any, fileName: string): void { private saveAsExcelFile(buffer: any, fileName: string): void {
const data: Blob = new Blob([buffer], { const data: Blob = new Blob([buffer], {
type: EXCEL_TYPE type: EXCEL_TYPE
}); });
saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION); saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);
} }
private getAnalysisResult(startDate,endDate,queryDates){ // 获取es的查询最大日期范围
this.noticeService.getQueryRange().subscribe(resp => {
console.log("resp.retcode"+resp.retcode);
if (resp.retcode === 200) {
console.log(resp.data.query_range);
if (queryDates >resp.data.query_range ){
alert('查询范围不能超过'+resp.data.query_range+'天');
return;
}else{
this.submitLoading = true;
this.noticeService.getUebaResult({"type":this.dimension,"startDate":startDate,"endDate":endDate}).subscribe(resp => {
if (resp.code === 200) {
this.summary_detal_data = resp
switch(this.dimension.toString()){
case "1":
this.listOfData = resp.data.summary.ip;
break;
case "2":
this.listOfData = resp.data.summary.account;
break;
case "3":
this.listOfData = resp.data.summary.interface;
break;
case "4":
this.listOfData = resp.data.summary.menu;
break;
}
}
this.tableisShow = this.dimension;
this.submitLoading = false;
if(this.tableisShow!=undefined){
this.exportIsVisable = false;
}
},
error => {
this.message.error('服务器错误');
this.submitLoading = false;
})
// this.tableisShow = this.dimension;
//this.submitLoading = false;
}
}else{
return undefined;
}
},
error => {
this.message.error('服务器错误');
})
}
private querySubmit(){ onSubmit(){
var startDate :any; // 日期校验
var endDate :any; this.submitLoading = true;
this.tableisShow = this.dimension;
if (this.dateRange.length === 2) { if (this.dateRange.length === 2) {
startDate = this.dateRange[0]; const startDate = this.dateRange[0];
endDate = this.dateRange[1]; const endDate = this.dateRange[1];
console.log(startDate);
//alert(`Selected Date Range: ${startDate.toLocaleDateString()} - ${endDate.toLocaleDateString()}`);
} else { } else {
alert('请选择查询范围'); alert('Please select a date range.');
return;
} }
// 获取es的查询最大日期范围
// this.noticeService.getQueryRange().subscribe(resp => {
// if (resp.status === 200) {
// console.log(resp.data);
// } else {
// this.message.error(resp.msg);
// }
// },
// error => {
// this.message.error('服务器错误');
// })
let timeDiff = Math.abs(endDate.getTime() - startDate.getTime()); // 获取es数据 暂时mock数据
let diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); this.summary_detal_data = this.mockData
this.listOfData=[]
this.getAnalysisResult(startDate,endDate,diffDays) if (this.summary_detal_data.code === 0) {
} switch(this.dimension.toString()){
onSubmit(){ case "1":
this.querySubmit(); this.listOfData = this.summary_detal_data.data.summary.ip;
console.log("1"+this.dimension.toString())
break;
case "2":
this.listOfData = this.summary_detal_data.data.summary.account;
console.log("2"+this.dimension.toString())
break;
case "3":
this.listOfData = this.summary_detal_data.data.summary.interface;
console.log("3"+this.dimension.toString())
break;
case "4":
this.listOfData = this.summary_detal_data.data.summary.menu;
console.log("4"+this.dimension.toString())
break;
}
} else {
this.message.error("error");
}
// this.listOfData = resp.data.summary.ip;
// this.noticeService.getUebaResult({"type":eventVal}).subscribe(resp => {
// if (resp.code === 200) {
// switch(this.dimension.toString()){
// case "1":
// this.listOfData = resp.summary.ip;
// case "2":
// this.listOfData = resp.summary.account;
// case "3":
// this.listOfData = resp.summary.interface;
// case "4":
// this.listOfData = resp.summary.menu;
// }
// } else {
// this.message.error(resp.msg);
// }
// },
// error => {
// this.message.error('服务器错误');
// })
} }
ngOnInit() { ngOnInit() {
const now = new Date(); const now = new Date();
const oneWeekAgo = new Date(); const oneWeekAgo = new Date();
oneWeekAgo.setDate(now.getDate() - 7); oneWeekAgo.setDate(now.getDate() - 7);
this.dateRange = [oneWeekAgo, now]; this.dateRange = [oneWeekAgo, now];
//this.onSubmit()
this.onSubmit()
}
getMenuItem(e) {
console.log(e.el.dataset.id);
// this.key = e.el.dataset.id;
} }
exportExcel(){ exportExcel(){
@ -198,32 +206,28 @@ export class ManageComponent implements OnInit {
showModel(data){ showModel(data){
var tmpdata :any; var tmpdata :any;
if(this.summary_detal_data != undefined){ switch(data.type){
switch(data.type){ case 1:
case 1: tmpdata=this.summary_detal_data.data.detail.ip[data.key];
tmpdata=this.summary_detal_data.data.detail.ip[data.key]; break;
break; case 2 :
case 2 : tmpdata=this.summary_detal_data.data.detail.account[data.key];
tmpdata=this.summary_detal_data.data.detail.account[data.key]; break;
break; case 3 :
case 3 : tmpdata=this.summary_detal_data.data.detail.interface[data.key];
tmpdata=this.summary_detal_data.data.detail.interface[data.key]; break;
break; case 4 :
case 4 : tmpdata=this.summary_detal_data.data.detail.menu[data.key];
tmpdata=this.summary_detal_data.data.detail.menu[data.key]; break;
break; }
} var diagData = {
var diagData = { "type": data.type,
"type": data.type, [data.key]: tmpdata
"startTime": Math.floor(this.dateRange[0].getTime() / 1000),
"endTime": Math.floor(this.dateRange[1].getTime() / 1000),
[data.key]: tmpdata
}
this.detail_data =diagData;
console.log(JSON.stringify(this.detail_data));
this.isVisible=true;
} }
this.detail_data =diagData;
console.log(JSON.stringify(this.detail_data));
this.isVisible=true;
} }
cancelSearch(): void { cancelSearch(): void {
this.submitLoading = false; this.submitLoading = false;

@ -14,14 +14,12 @@ export class PathComponent implements OnInit, OnChanges {
whiteListParam = {}; whiteListParam = {};
greyListParam = {}; greyListParam = {};
rules; rules;
queryLogUrl = "/WebApi/isoc/static/base/#/route/threat-state/log/action?"
// /WebApi/isoc/static/base/#/route/threat-state/log/action?startTime=1717396269&endTime=1717403469&sip=zhang3
startTime; startTime;
endTime; endTime;
constructor( constructor(
private noticeService: NoticeService, private noticeService: NoticeService,
public message: NzMessageService, public message: NzMessageService,
) {} ) {}
ngOnInit() { ngOnInit() {
@ -30,10 +28,10 @@ export class PathComponent implements OnInit, OnChanges {
// this.detail_data = JSON.parse(jsonStr); // this.detail_data = JSON.parse(jsonStr);
// } // }
this.parseData(); this.parseData();
if (this.rules === undefined) { if (this.rules == null) {
this.noticeService.getDefaultRule().subscribe( this.noticeService.getDefaultRule().subscribe(
resp => { resp => {
if (resp.code === 200) { if (resp.status === 200) {
this.rules = resp.data; this.rules = resp.data;
} else { } else {
this.message.error(resp.msg); this.message.error(resp.msg);
@ -56,7 +54,6 @@ export class PathComponent implements OnInit, OnChanges {
parseData() { parseData() {
for (const dataKey in this.detail_data) { for (const dataKey in this.detail_data) {
if (this.detail_data.hasOwnProperty(dataKey)) { if (this.detail_data.hasOwnProperty(dataKey)) {
switch (dataKey) { switch (dataKey) {
case 'type': case 'type':
this.viewType = this.detail_data[dataKey]; this.viewType = this.detail_data[dataKey];
@ -146,7 +143,6 @@ export class PathComponent implements OnInit, OnChanges {
case 4: case 4:
break; break;
} }
this.greyListParam["type"]=0;
this.noticeService.addGreyList(this.greyListParam).subscribe( this.noticeService.addGreyList(this.greyListParam).subscribe(
resp => { resp => {
if (resp.status === 200) { if (resp.status === 200) {
@ -163,25 +159,7 @@ export class PathComponent implements OnInit, OnChanges {
} }
clickFrequency(data) { clickFrequency(data) {
if(this.detail_data!=undefined){ alert("点击超链接");
var params = "startTime="+this.detail_data.startTime+"&endTime="+this.detail_data.endTime;
switch(this.detail_data.type) {
case 1:
params += "&sip="+data.req_ip;
break;
case 2:
params += "&sip="+data.req_account;
break;
case 3:
params += "&sip="+data.interface_addr;
break;
case 4:
params += "&sip="+data.menu_name;
break;
}
window.open(this.queryLogUrl+params, '_blank');
}
} }
// 在组件类中 // 在组件类中

@ -25,19 +25,18 @@ export class NoticeService {
} }
swicthBtn(params: any) { swicthBtn(params: any) {
const url = '/notice/inner/v1/plugin/plugin_update_status/'; const url = '/notice/inner/v1/plugin/plugin_update_status';
return this.httpService.put(url, {}, params); return this.httpService.put(url, {}, params);
} }
getQueryRange() { getQueryRange() {
//{"msg": "\u67e5\u8be2\u6210\u529f", "data": {"query_range": 50, "queryable_day": {"incident": 14, "log": 7}}, "retcode": 200}
const url = '/isoc/api/v1/isoc_sys_config/get_query_range'; const url = '/isoc/api/v1/isoc_sys_config/get_query_range';
return this.httpService.get(url,{}); return this.httpService.get(url,{});
} }
getUebaResult(params:any) { getUebaResult(params:any) {
const url = '/uebaMetricsAnalysis/ueba_metrics/get_summary_data_list/'; const url = '/uebaMetricsAnalysis/ueba_metrics/get_summary_data_list';
return this.httpService.get(url, params); return this.httpService.get(url, params,30000);
} }
// 引擎接口 // 引擎接口
@ -247,7 +246,7 @@ export class NoticeService {
// "code": 200, // "code": 200,
// "data": null // "data": null
// } // }
const url = '/ditingEngine/ueba/engine_name_list/add/'; const url = '/ditingEngine/diting/global/whitelist_add';
return this.httpService.post(url,{}, params); return this.httpService.post(url,{}, params);
} }

Loading…
Cancel
Save