mirror of
https://github.com/valitydev/wazuh-kibana-app.git
synced 2024-11-06 09:55:18 +00:00
Cleaning controllers. Arranging files. Rename files
This commit is contained in:
parent
54e53c6ff6
commit
f012ff377a
@ -2,7 +2,7 @@
|
||||
"name": "wazuh",
|
||||
"version": "2.0.0-beta1",
|
||||
"kibana": {
|
||||
"version" : "5.1.1"
|
||||
"version" : "5.1.2"
|
||||
},
|
||||
"description": "Wazuh App",
|
||||
"main": "index.js",
|
||||
|
@ -35,15 +35,25 @@ require('plugins/wazuh/directives/kibanaDashboardDirective.js');
|
||||
require('plugins/wazuh/directives/kibanaSearchbarDirective.js');
|
||||
|
||||
// Require controllers
|
||||
// Global
|
||||
require('plugins/wazuh/controllers/general.js');
|
||||
|
||||
// Overview
|
||||
require('plugins/wazuh/controllers/overview.js');
|
||||
require('plugins/wazuh/controllers/agents.js');
|
||||
require('plugins/wazuh/controllers/settings.js');
|
||||
|
||||
// Manager
|
||||
require('plugins/wazuh/controllers/manager.js');
|
||||
require('plugins/wazuh/controllers/fim.js');
|
||||
require('plugins/wazuh/controllers/policy-monitoring.js');
|
||||
require('plugins/wazuh/controllers/ruleset.js');
|
||||
require('plugins/wazuh/controllers/osseclog.js');
|
||||
|
||||
// Agents
|
||||
require('plugins/wazuh/controllers/agentsOverview.js');
|
||||
require('plugins/wazuh/controllers/agentsPreview.js');
|
||||
require('plugins/wazuh/controllers/agentsFim.js');
|
||||
require('plugins/wazuh/controllers/agentsPm.js');
|
||||
|
||||
// Settings
|
||||
require('plugins/wazuh/controllers/settings.js');
|
||||
require('plugins/wazuh/controllers/testController.js');
|
||||
|
||||
//Bootstrap and font awesome
|
||||
|
@ -23,10 +23,6 @@ app.controller('fimController', function ($scope, $q, DataFactory, $mdToast, err
|
||||
};
|
||||
|
||||
//Functions
|
||||
|
||||
$scope.setTimer = function (time) {
|
||||
$scope.timerFilterValue = time;
|
||||
};
|
||||
|
||||
$scope.setSort = function (field) {
|
||||
if ($scope._sort === field) {
|
||||
@ -149,7 +145,6 @@ app.controller('fimController', function ($scope, $q, DataFactory, $mdToast, err
|
||||
//Load
|
||||
try {
|
||||
load();
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
} catch (e) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast> Unexpected exception loading controller </md-toast>',
|
||||
@ -159,13 +154,7 @@ app.controller('fimController', function ($scope, $q, DataFactory, $mdToast, err
|
||||
errlog.log('Unexpected exception loading controller', e);
|
||||
}
|
||||
|
||||
|
||||
// Timer filter watch
|
||||
var timerWatch = $scope.$watch(function () {
|
||||
return $scope.$parent.timeFilter;
|
||||
}, function () {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
});
|
||||
|
||||
|
||||
//Destroy
|
||||
$scope.$on("$destroy", function () {
|
||||
@ -174,7 +163,6 @@ app.controller('fimController', function ($scope, $q, DataFactory, $mdToast, err
|
||||
});
|
||||
$scope.files.length = 0;
|
||||
loadWatch();
|
||||
timerWatch();
|
||||
});
|
||||
|
||||
});
|
75
public/controllers/agentsOverview.js
Normal file
75
public/controllers/agentsOverview.js
Normal file
@ -0,0 +1,75 @@
|
||||
// Require config
|
||||
var app = require('ui/modules').get('app/wazuh', []);
|
||||
|
||||
app.controller('agentsController', function ($scope, DataFactory, $mdToast) {
|
||||
|
||||
//Initialisation
|
||||
$scope.load = true;
|
||||
$scope.agentInfo = [];
|
||||
|
||||
var objectsArray = [];
|
||||
var loadWatch;
|
||||
|
||||
//Print Error
|
||||
var printError = function (error) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast>' + error.html + '</md-toast>',
|
||||
position: 'bottom left',
|
||||
hideDelay: 5000,
|
||||
});
|
||||
if ($scope.blocked) {
|
||||
$scope.blocked = false;
|
||||
}
|
||||
};
|
||||
|
||||
//Functions
|
||||
|
||||
|
||||
$scope.fetchAgent = function (agent) {
|
||||
DataFactory.getAndClean('get', '/agents/' + agent.id, {})
|
||||
.then(function (data) {
|
||||
$scope.agentInfo = data.data;
|
||||
$scope.$parent._agent.status = data.data.status;
|
||||
if (agent.id != '000') {
|
||||
DataFactory.getAndClean('get', '/agents/' + agent.id + '/key', {})
|
||||
.then(function (data) {
|
||||
$scope.agentInfo.key = data.data;
|
||||
$scope.load = false;
|
||||
$scope.$parent.load = false;
|
||||
}, printError);
|
||||
}
|
||||
}, printError);
|
||||
$scope.fetchFim(agent);
|
||||
$scope.fetchRootcheck(agent);
|
||||
};
|
||||
|
||||
$scope.fetchFim = function (agent) {
|
||||
DataFactory.getAndClean('get', '/syscheck/' + agent.id, { 'offset': 0, 'limit': 5 })
|
||||
.then(function (data) {
|
||||
$scope.agentInfo.syscheckEvents = data.data.items;
|
||||
}, printError);
|
||||
};
|
||||
|
||||
$scope.fetchRootcheck = function (agent) {
|
||||
DataFactory.getAndClean('get', '/rootcheck/' + agent.id, { 'offset': 0, 'limit': 5 })
|
||||
.then(function (data) {
|
||||
$scope.agentInfo.rootcheckEvents = data.data.items;
|
||||
}, printError);
|
||||
};
|
||||
|
||||
//Load
|
||||
loadWatch = $scope.$watch(function () {
|
||||
return $scope.$parent._agent;
|
||||
}, function () {
|
||||
$scope.fetchAgent($scope.$parent._agent);
|
||||
});
|
||||
|
||||
//Destroy
|
||||
$scope.$on("$destroy", function () {
|
||||
angular.forEach(objectsArray, function (value) {
|
||||
DataFactory.clean(value)
|
||||
});
|
||||
//loadWatch();
|
||||
});
|
||||
|
||||
});
|
@ -1,155 +1,156 @@
|
||||
// Require config
|
||||
var app = require('ui/modules').get('app/wazuh', []);
|
||||
|
||||
app.controller('pmController', function ($scope, DataFactory, $mdToast, errlog, appState) {
//Initialisation
|
||||
$scope.load = true;
|
||||
var objectsArray = [];
|
||||
var loadWatch;
|
||||
$scope.defaultManagerName = appState.getDefaultManager().name;
|
||||
$scope.events = [];
|
||||
|
||||
//Print Error
|
||||
var printError = function (error) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast>' + error.html + '</md-toast>',
|
||||
position: 'bottom left',
|
||||
hideDelay: 5000,
|
||||
});
|
||||
if ($scope._eblocked) {
|
||||
$scope._eblocked = false;
|
||||
}
|
||||
}
|
||||
|
||||
//Functions
|
||||
|
||||
$scope.setTimer = function (time) {
|
||||
$scope.timerFilterValue = time;
|
||||
};
|
||||
|
||||
|
||||
$scope.setSort = function (field) {
|
||||
if ($scope._sort === field) {
|
||||
if ($scope._sortOrder) {
|
||||
$scope._sortOrder = false;
|
||||
$scope._sort = '';
|
||||
DataFactory.filters.unset(objectsArray['/rootcheck'], 'filter-sort');
|
||||
} else {
|
||||
$scope._sortOrder = true;
|
||||
DataFactory.filters.set(objectsArray['/rootcheck'], 'filter-sort', field);
|
||||
}
|
||||
} else {
|
||||
$scope._sortOrder = false;
|
||||
$scope._sort = field;
|
||||
DataFactory.filters.set(objectsArray['/rootcheck'], 'filter-sort', '-' + field);
|
||||
}
|
||||
}
|
||||
|
||||
$scope.eventSearchFilter = function (search) {
|
||||
if (search) {
|
||||
DataFactory.filters.set(objectsArray['/rootcheck'], 'search', search);
|
||||
} else {
|
||||
DataFactory.filters.unset(objectsArray['/rootcheck'], 'search');
|
||||
}
|
||||
};
|
||||
|
||||
$scope.eventsObj = {
|
||||
//Obj with methods for virtual scrolling
|
||||
getItemAtIndex: function (index) {
|
||||
if ($scope._eblocked) {
|
||||
return null;
|
||||
}
|
||||
var _pos = index - DataFactory.getOffset(objectsArray['/rootcheck']);
|
||||
if (DataFactory.filters.flag(objectsArray['/rootcheck'])) {
|
||||
$scope._eblocked = true;
|
||||
DataFactory.scrollTo(objectsArray['/rootcheck'], 200)
|
||||
.then(function (data) {
|
||||
$scope.events.length = 0;
|
||||
$scope.events = data.data.items;
|
||||
DataFactory.filters.unflag(objectsArray['/rootcheck']);
|
||||
$scope._eblocked = false;
|
||||
}, printError);
|
||||
} else if ((_pos > 150) || (_pos < 0)) {
|
||||
$scope._eblocked = true;
|
||||
DataFactory.scrollTo(objectsArray['/rootcheck'], index)
|
||||
.then(function (data) {
|
||||
$scope.events.length = 0;
|
||||
$scope.events = data.data.items;
|
||||
$scope._eblocked = false;
|
||||
}, printError);
|
||||
} else {
|
||||
return $scope.events[_pos];
|
||||
}
|
||||
},
|
||||
getLength: function () {
|
||||
return DataFactory.getTotalItems(objectsArray['/rootcheck']);
|
||||
},
|
||||
};
|
||||
|
||||
var createWatch = function () {
|
||||
loadWatch = $scope.$watch(function () {
|
||||
return $scope.$parent._agent;
|
||||
}, function () {
|
||||
DataFactory.initialize('get', '/rootcheck/' + $scope.$parent._agent.id, {}, 200, 0)
|
||||
.then(function (data) {
|
||||
DataFactory.clean(objectsArray['/rootcheck']);
|
||||
objectsArray['/rootcheck'] = data;
|
||||
DataFactory.get(objectsArray['/rootcheck'])
|
||||
.then(function (data) {
|
||||
$scope.events.length = 0;
|
||||
$scope.events = data.data.items;
|
||||
DataFactory.filters.register(objectsArray['/rootcheck'], 'search', 'string');
|
||||
DataFactory.filters.register(objectsArray['/rootcheck'], 'filter-sort', 'string');
|
||||
$scope._sort = '';
|
||||
$scope.eventSearchFilter($scope._eventSearch);
|
||||
}, printError);
|
||||
}, printError);
|
||||
});
|
||||
};
|
||||
|
||||
var load = function () {
|
||||
DataFactory.initialize('get', '/rootcheck/' + $scope.$parent._agent.id, {}, 200, 0)
|
||||
.then(function (data) {
|
||||
objectsArray['/rootcheck'] = data;
|
||||
DataFactory.get(objectsArray['/rootcheck'])
|
||||
.then(function (data) {
|
||||
$scope.events = data.data.items;
|
||||
$scope.totalEvents = data.data.totalItems;
|
||||
DataFactory.filters.register(objectsArray['/rootcheck'], 'search', 'string');
|
||||
DataFactory.filters.register(objectsArray['/rootcheck'], 'filter-sort', 'string');
|
||||
createWatch();
|
||||
$scope.load = false;
|
||||
}, printError);
|
||||
}, printError);
|
||||
};
|
||||
|
||||
//Load
|
||||
try {
|
||||
load();
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
} catch (e) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast> Unexpected exception loading controller </md-toast>',
|
||||
position: 'bottom left',
|
||||
hideDelay: 5000,
|
||||
});
|
||||
errlog.log('Unexpected exception loading controller', e);
|
||||
}
|
||||
|
||||
// Timer filter watch
|
||||
var timerWatch = $scope.$watch(function () {
|
||||
return $scope.$parent.timeFilter;
|
||||
}, function () {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
});
|
||||
|
||||
//Destroy
|
||||
$scope.$on("$destroy", function () {
|
||||
angular.forEach(objectsArray, function (value) {
|
||||
DataFactory.clean(value)
|
||||
});
|
||||
$scope.events.length = 0;
|
||||
loadWatch();
|
||||
timerWatch();
|
||||
});
|
||||
|
||||
})
|
||||
// Require config
|
||||
var app = require('ui/modules').get('app/wazuh', []);
|
||||
|
||||
app.controller('pmController', function ($scope, DataFactory, $mdToast, errlog, appState) {
|
||||
//Initialisation
|
||||
$scope.load = true;
|
||||
var objectsArray = [];
|
||||
var loadWatch;
|
||||
$scope.defaultManagerName = appState.getDefaultManager().name;
|
||||
$scope.events = [];
|
||||
|
||||
//Print Error
|
||||
var printError = function (error) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast>' + error.html + '</md-toast>',
|
||||
position: 'bottom left',
|
||||
hideDelay: 5000,
|
||||
});
|
||||
if ($scope._eblocked) {
|
||||
$scope._eblocked = false;
|
||||
}
|
||||
}
|
||||
|
||||
//Functions
|
||||
|
||||
$scope.setTimer = function (time) {
|
||||
$scope.timerFilterValue = time;
|
||||
};
|
||||
|
||||
|
||||
$scope.setSort = function (field) {
|
||||
if ($scope._sort === field) {
|
||||
if ($scope._sortOrder) {
|
||||
$scope._sortOrder = false;
|
||||
$scope._sort = '';
|
||||
DataFactory.filters.unset(objectsArray['/rootcheck'], 'filter-sort');
|
||||
} else {
|
||||
$scope._sortOrder = true;
|
||||
DataFactory.filters.set(objectsArray['/rootcheck'], 'filter-sort', field);
|
||||
}
|
||||
} else {
|
||||
$scope._sortOrder = false;
|
||||
$scope._sort = field;
|
||||
DataFactory.filters.set(objectsArray['/rootcheck'], 'filter-sort', '-' + field);
|
||||
}
|
||||
}
|
||||
|
||||
$scope.eventSearchFilter = function (search) {
|
||||
if (search) {
|
||||
DataFactory.filters.set(objectsArray['/rootcheck'], 'search', search);
|
||||
} else {
|
||||
DataFactory.filters.unset(objectsArray['/rootcheck'], 'search');
|
||||
}
|
||||
};
|
||||
|
||||
$scope.eventsObj = {
|
||||
//Obj with methods for virtual scrolling
|
||||
getItemAtIndex: function (index) {
|
||||
if ($scope._eblocked) {
|
||||
return null;
|
||||
}
|
||||
var _pos = index - DataFactory.getOffset(objectsArray['/rootcheck']);
|
||||
if (DataFactory.filters.flag(objectsArray['/rootcheck'])) {
|
||||
$scope._eblocked = true;
|
||||
DataFactory.scrollTo(objectsArray['/rootcheck'], 200)
|
||||
.then(function (data) {
|
||||
$scope.events.length = 0;
|
||||
$scope.events = data.data.items;
|
||||
DataFactory.filters.unflag(objectsArray['/rootcheck']);
|
||||
$scope._eblocked = false;
|
||||
}, printError);
|
||||
} else if ((_pos > 150) || (_pos < 0)) {
|
||||
$scope._eblocked = true;
|
||||
DataFactory.scrollTo(objectsArray['/rootcheck'], index)
|
||||
.then(function (data) {
|
||||
$scope.events.length = 0;
|
||||
$scope.events = data.data.items;
|
||||
$scope._eblocked = false;
|
||||
}, printError);
|
||||
} else {
|
||||
return $scope.events[_pos];
|
||||
}
|
||||
},
|
||||
getLength: function () {
|
||||
return DataFactory.getTotalItems(objectsArray['/rootcheck']);
|
||||
},
|
||||
};
|
||||
|
||||
var createWatch = function () {
|
||||
loadWatch = $scope.$watch(function () {
|
||||
return $scope.$parent._agent;
|
||||
}, function () {
|
||||
DataFactory.initialize('get', '/rootcheck/' + $scope.$parent._agent.id, {}, 200, 0)
|
||||
.then(function (data) {
|
||||
DataFactory.clean(objectsArray['/rootcheck']);
|
||||
objectsArray['/rootcheck'] = data;
|
||||
DataFactory.get(objectsArray['/rootcheck'])
|
||||
.then(function (data) {
|
||||
$scope.events.length = 0;
|
||||
$scope.events = data.data.items;
|
||||
DataFactory.filters.register(objectsArray['/rootcheck'], 'search', 'string');
|
||||
DataFactory.filters.register(objectsArray['/rootcheck'], 'filter-sort', 'string');
|
||||
$scope._sort = '';
|
||||
$scope.eventSearchFilter($scope._eventSearch);
|
||||
}, printError);
|
||||
}, printError);
|
||||
});
|
||||
};
|
||||
|
||||
var load = function () {
|
||||
DataFactory.initialize('get', '/rootcheck/' + $scope.$parent._agent.id, {}, 200, 0)
|
||||
.then(function (data) {
|
||||
objectsArray['/rootcheck'] = data;
|
||||
DataFactory.get(objectsArray['/rootcheck'])
|
||||
.then(function (data) {
|
||||
$scope.events = data.data.items;
|
||||
$scope.totalEvents = data.data.totalItems;
|
||||
DataFactory.filters.register(objectsArray['/rootcheck'], 'search', 'string');
|
||||
DataFactory.filters.register(objectsArray['/rootcheck'], 'filter-sort', 'string');
|
||||
createWatch();
|
||||
$scope.load = false;
|
||||
}, printError);
|
||||
}, printError);
|
||||
};
|
||||
|
||||
//Load
|
||||
try {
|
||||
load();
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
} catch (e) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast> Unexpected exception loading controller </md-toast>',
|
||||
position: 'bottom left',
|
||||
hideDelay: 5000,
|
||||
});
|
||||
errlog.log('Unexpected exception loading controller', e);
|
||||
}
|
||||
|
||||
// Timer filter watch
|
||||
var timerWatch = $scope.$watch(function () {
|
||||
return $scope.$parent.timeFilter;
|
||||
}, function () {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
});
|
||||
|
||||
//Destroy
|
||||
$scope.$on("$destroy", function () {
|
||||
angular.forEach(objectsArray, function (value) {
|
||||
DataFactory.clean(value)
|
||||
});
|
||||
$scope.events.length = 0;
|
||||
loadWatch();
|
||||
timerWatch();
|
||||
});
|
||||
|
||||
})
|
@ -2,79 +2,6 @@
|
||||
require('plugins/wazuh/utils/infinite_scroll/infinite-scroll.js');
|
||||
var app = require('ui/modules').get('app/wazuh', []);
|
||||
|
||||
app.controller('agentsController', function ($scope, DataFactory, $mdToast) {
|
||||
|
||||
//Initialisation
|
||||
$scope.load = true;
|
||||
$scope.agentInfo = [];
|
||||
|
||||
var objectsArray = [];
|
||||
var loadWatch;
|
||||
|
||||
//Print Error
|
||||
var printError = function (error) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast>' + error.html + '</md-toast>',
|
||||
position: 'bottom left',
|
||||
hideDelay: 5000,
|
||||
});
|
||||
if ($scope.blocked) {
|
||||
$scope.blocked = false;
|
||||
}
|
||||
};
|
||||
|
||||
//Functions
|
||||
|
||||
|
||||
$scope.fetchAgent = function (agent) {
|
||||
DataFactory.getAndClean('get', '/agents/' + agent.id, {})
|
||||
.then(function (data) {
|
||||
$scope.agentInfo = data.data;
|
||||
$scope.$parent._agent.status = data.data.status;
|
||||
if (agent.id != '000') {
|
||||
DataFactory.getAndClean('get', '/agents/' + agent.id + '/key', {})
|
||||
.then(function (data) {
|
||||
$scope.agentInfo.key = data.data;
|
||||
$scope.load = false;
|
||||
$scope.$parent.load = false;
|
||||
}, printError);
|
||||
}
|
||||
}, printError);
|
||||
$scope.fetchFim(agent);
|
||||
$scope.fetchRootcheck(agent);
|
||||
};
|
||||
|
||||
$scope.fetchFim = function (agent) {
|
||||
DataFactory.getAndClean('get', '/syscheck/' + agent.id, { 'offset': 0, 'limit': 5 })
|
||||
.then(function (data) {
|
||||
$scope.agentInfo.syscheckEvents = data.data.items;
|
||||
}, printError);
|
||||
};
|
||||
|
||||
$scope.fetchRootcheck = function (agent) {
|
||||
DataFactory.getAndClean('get', '/rootcheck/' + agent.id, { 'offset': 0, 'limit': 5 })
|
||||
.then(function (data) {
|
||||
$scope.agentInfo.rootcheckEvents = data.data.items;
|
||||
}, printError);
|
||||
};
|
||||
|
||||
//Load
|
||||
loadWatch = $scope.$watch(function () {
|
||||
return $scope.$parent._agent;
|
||||
}, function () {
|
||||
$scope.fetchAgent($scope.$parent._agent);
|
||||
});
|
||||
|
||||
//Destroy
|
||||
$scope.$on("$destroy", function () {
|
||||
angular.forEach(objectsArray, function (value) {
|
||||
DataFactory.clean(value)
|
||||
});
|
||||
//loadWatch();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
app.factory('Agents', function($http, DataFactory) {
|
||||
var Agents = function(objectsArray, items) {
|
||||
this.items = items;
|
||||
@ -232,4 +159,4 @@ app.controller('agentsPreviewController', function ($scope, DataFactory, $mdToas
|
||||
});
|
||||
$scope.agents.length = 0;
|
||||
});
|
||||
});
|
||||
});
|
@ -5,47 +5,7 @@ app.controller('overviewGeneralController', function ($scope, DataFactory, gener
|
||||
$scope.load = true;
|
||||
|
||||
$scope.defaultManager = $scope.$parent.state.getDefaultManager().name;
|
||||
$scope.stats = [];
|
||||
|
||||
//Print Error
|
||||
var printError = function (error) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast>' + error.html + '</md-toast>',
|
||||
position: 'bottom left',
|
||||
hideDelay: 5000,
|
||||
});
|
||||
};
|
||||
|
||||
//Functions
|
||||
$scope.setTimer = function (time) {
|
||||
$scope.timerFilterValue = time;
|
||||
};
|
||||
|
||||
//Load
|
||||
try {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
} catch (e) {
|
||||
$mdToast.show({
|
||||
template: '<md-toast> Unexpected exception loading controller </md-toast>',
|
||||
position: 'bottom left',
|
||||
hideDelay: 5000,
|
||||
});
|
||||
errlog.log('Unexpected exception loading controller', e);
|
||||
}
|
||||
|
||||
// Timer filter watch
|
||||
var loadWatch = $scope.$watch(function () {
|
||||
return $scope.$parent.timeFilter;
|
||||
}, function () {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
});
|
||||
|
||||
|
||||
//Destroy
|
||||
$scope.$on("$destroy", function () {
|
||||
$scope.stats.length = 0;
|
||||
loadWatch();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@ -53,9 +13,7 @@ app.controller('overviewGeneralController', function ($scope, DataFactory, gener
|
||||
app.controller('overviewFimController', function ($scope, DataFactory, genericReq, $mdToast, errlog) {
|
||||
//Initialisation
|
||||
$scope.load = true;
|
||||
$scope.$parent.state.setOverviewState('fim');
|
||||
$scope.defaultManager = $scope.$parent.state.getDefaultManager().name;
|
||||
$scope.stats = [];
|
||||
|
||||
//Print Error
|
||||
var printError = function (error) {
|
||||
@ -67,27 +25,8 @@ app.controller('overviewFimController', function ($scope, DataFactory, genericRe
|
||||
};
|
||||
|
||||
//Functions
|
||||
$scope.setTimer = function (time) {
|
||||
$scope.timerFilterValue = time;
|
||||
};
|
||||
|
||||
|
||||
var load_tops = function () {
|
||||
|
||||
var daysAgo = 1;
|
||||
if ($scope.timerFilterValue == "24h") {
|
||||
daysAgo = 1;
|
||||
} else if ($scope.timerFilterValue == "7d") {
|
||||
daysAgo = 7;
|
||||
} else if ($scope.timerFilterValue == "30d") {
|
||||
daysAgo = 30;
|
||||
} else {
|
||||
daysAgo = 1;
|
||||
}
|
||||
|
||||
var date = new Date();
|
||||
date.setDate(date.getDate() - daysAgo);
|
||||
var timeAgo = date.getTime();
|
||||
|
||||
// Last fields
|
||||
|
||||
@ -110,7 +49,6 @@ app.controller('overviewFimController', function ($scope, DataFactory, genericRe
|
||||
|
||||
//Load
|
||||
try {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
load_tops();
|
||||
} catch (e) {
|
||||
$mdToast.show({
|
||||
@ -121,20 +59,6 @@ app.controller('overviewFimController', function ($scope, DataFactory, genericRe
|
||||
errlog.log('Unexpected exception loading controller', e);
|
||||
}
|
||||
|
||||
// Timer filter watch
|
||||
var loadWatch = $scope.$watch(function () {
|
||||
return $scope.$parent.timeFilter;
|
||||
}, function () {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
load_tops();
|
||||
});
|
||||
|
||||
//Destroy
|
||||
$scope.$on("$destroy", function () {
|
||||
$scope.stats.length = 0;
|
||||
loadWatch();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
@ -143,7 +67,6 @@ app.controller('overviewPMController', function ($scope, DataFactory, genericReq
|
||||
$scope.load = true;
|
||||
$scope.$parent.state.setOverviewState('pm');
|
||||
$scope.defaultManager = $scope.$parent.state.getDefaultManager().name;
|
||||
$scope.stats = [];
|
||||
|
||||
//Print Error
|
||||
var printError = function (error) {
|
||||
@ -154,36 +77,9 @@ app.controller('overviewPMController', function ($scope, DataFactory, genericReq
|
||||
});
|
||||
};
|
||||
|
||||
//Functions
|
||||
$scope.setTimer = function (time) {
|
||||
$scope.timerFilterValue = time;
|
||||
};
|
||||
|
||||
|
||||
var load_tops = function () {
|
||||
|
||||
var daysAgo = 1;
|
||||
if ($scope.timerFilterValue == "24h") {
|
||||
daysAgo = 1;
|
||||
} else if ($scope.timerFilterValue == "7d") {
|
||||
daysAgo = 7;
|
||||
} else if ($scope.timerFilterValue == "30d") {
|
||||
daysAgo = 30;
|
||||
} else {
|
||||
daysAgo = 1;
|
||||
}
|
||||
|
||||
var date = new Date();
|
||||
date.setDate(date.getDate() - daysAgo);
|
||||
var timeAgo = date.getTime();
|
||||
|
||||
|
||||
// Top fields
|
||||
genericReq.request('GET', '/api/wazuh-elastic/top/'+$scope.defaultManager+'/AgentName/'+timeAgo)
|
||||
.then(function (data) {
|
||||
$scope.topagent = data.data;
|
||||
}, printError);
|
||||
|
||||
|
||||
// Last fields
|
||||
|
||||
@ -206,14 +102,11 @@ app.controller('overviewPMController', function ($scope, DataFactory, genericReq
|
||||
.then(function (data) {
|
||||
$scope.lastEventAgentIP = (data.data != "") ? data.data : "";
|
||||
}, printError);
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
//Load
|
||||
try {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
load_tops();
|
||||
} catch (e) {
|
||||
$mdToast.show({
|
||||
@ -224,18 +117,5 @@ app.controller('overviewPMController', function ($scope, DataFactory, genericReq
|
||||
errlog.log('Unexpected exception loading controller', e);
|
||||
}
|
||||
|
||||
// Timer filter watch
|
||||
var loadWatch = $scope.$watch(function () {
|
||||
return $scope.$parent.timeFilter;
|
||||
}, function () {
|
||||
$scope.setTimer($scope.$parent.timeFilter);
|
||||
load_tops();
|
||||
});
|
||||
|
||||
//Destroy
|
||||
$scope.$on("$destroy", function () {
|
||||
$scope.stats.length = 0;
|
||||
loadWatch();
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -103,7 +103,7 @@
|
||||
<md-card flex="100">
|
||||
<md-card-title>
|
||||
<md-card-title-text>
|
||||
<span class="md-headline">Last events</span>
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
</md-card-title-text>
|
||||
</md-card-title>
|
||||
<kbn-vis vis-height="600px" vis-type="table" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(customLabel:Agent,field:agent.name,order:desc,orderBy:'1',size:100),schema:bucket,type:terms),(enabled:!t,id:'4',params:(customLabel:File,field:syscheck.path,order:desc,orderBy:'1',size:500),schema:bucket,type:terms),(enabled:!t,id:'5',params:(customLabel:Event,field:syscheck.event,order:desc,orderBy:'1',size:10),schema:bucket,type:terms),(enabled:!t,id:'6',params:(customLabel:Description,field:rule.description,order:desc,orderBy:'1',size:10),schema:bucket,type:terms)),listeners:(),params:(perPage:10,showMeticsAtAllLevels:!f,showPartialRows:!f,showTotal:!f,sort:(columnIndex:!n,direction:!n),totalFunc:sum),title:'New%20Visualization',type:table))"
|
||||
|
@ -44,11 +44,11 @@
|
||||
<md-card flex="100">
|
||||
<md-card-title>
|
||||
<md-card-title-text>
|
||||
<span class="md-headline">Last events</span>
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
</md-card-title-text>
|
||||
</md-card-title>
|
||||
|
||||
<kbn-vis vis-height="600px" vis-type="table" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'location:%20rootcheck')),uiState:(vis:(params:(sort:(columnIndex:3,direction:desc)))),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(field:agent.name,order:desc,orderBy:'1',size:5000),schema:bucket,type:terms),(enabled:!t,id:'3',params:(field:rule.description,order:desc,orderBy:'1',size:1),schema:bucket,type:terms),(enabled:!t,id:'4',params:(field:title,order:desc,orderBy:'1',size:1),schema:bucket,type:terms)),listeners:(),params:(perPage:10,showMeticsAtAllLevels:!f,showPartialRows:!f,showTotal:!f,sort:(columnIndex:!n,direction:!n),totalFunc:sum),title:'New%20Visualization',type:table))"
|
||||
<kbn-vis vis-height="600px" vis-type="table" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(vis:(params:(sort:(columnIndex:3,direction:desc)))),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(customLabel:'Agent%20name',field:agent.name,order:desc,orderBy:'1',size:999999999),schema:bucket,type:terms),(enabled:!t,id:'3',params:(customLabel:'Rule%20description',field:rule.description,order:desc,orderBy:'1',size:999999999),schema:bucket,type:terms),(enabled:!t,id:'4',params:(customLabel:Control,field:title,order:desc,orderBy:'1',size:999999999),schema:bucket,type:terms)),listeners:(),params:(perPage:10,showMeticsAtAllLevels:!f,showPartialRows:!f,showTotal:!f,sort:(columnIndex:!n,direction:!n),totalFunc:sum),title:'New%20Visualization',type:table))"
|
||||
vis-filter="rule.groups: rootcheck AND {{'agent.name:'+_agent.name}}">
|
||||
</kbn-vis>
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
</md-card>
|
||||
<md-card>
|
||||
<md-card-content>
|
||||
<kbn-vis vis-height="72px" vis-type="metric" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'rule.groups:%22syscheck%22%20AND%20full_log:%22Integrity%20checksum%20changed%22%20NOT%20location:%20syscheck-registry')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(customLabel:'Changed'),schema:metric,type:count)),listeners:(),params:(fontSize:20,handleNoResults:!t),title:'New%20Visualization',type:metric))" vis-filter='(rule.id: 550 OR rule.id: 551 OR rule.id: 552 OR rule.id: 555)'>
|
||||
<kbn-vis vis-height="72px" vis-type="metric" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'rule.groups:%22syscheck%22%20AND%20full_log:%22Integrity%20checksum%20changed%22%20NOT%20location:%20syscheck-registry')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(customLabel:'Modified'),schema:metric,type:count)),listeners:(),params:(fontSize:20,handleNoResults:!t),title:'New%20Visualization',type:metric))" vis-filter='(rule.id: 550 OR rule.id: 551 OR rule.id: 552 OR rule.id: 555)'>
|
||||
</kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -60,7 +60,7 @@
|
||||
<kbn-vis-value vis-height="37px" vis-type="table" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),vis:(aggs:!((enabled:!t,id:'1',params:(field:'@timestamp'),schema:metric,type:max),(enabled:!t,id:'2',params:(field:syscheck.path,order:desc,orderBy:'1',size:1),schema:bucket,type:terms)),listeners:(),params:(perPage:1,showMeticsAtAllLevels:!f,showPartialRows:!f,showTotal:!f,sort:(columnIndex:!n,direction:!n),totalFunc:sum),title:'New%20Visualization',type:table))"
|
||||
vis-filter="syscheck.event: modified AND location: syscheck">
|
||||
</kbn-vis-value>
|
||||
<div class="ng-binding">Last file changed</div>
|
||||
<div class="ng-binding">Last file modified</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex layout="column">
|
||||
@ -86,7 +86,7 @@
|
||||
|
||||
<md-card flex="33">
|
||||
<md-card-content>
|
||||
<div class="md-headline">Top changed</div>
|
||||
<div class="md-headline">Top file changes</div>
|
||||
<kbn-vis vis-height="193px" vis-type="pie" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(field:syscheck.path,order:desc,orderBy:'1',size:8),schema:segment,type:terms)),listeners:(),params:(addLegend:!t,addTooltip:!t,isDonut:!f,shareYAxis:!t),title:'FIM%20Top%2010%20Changed',type:pie))"
|
||||
vis-filter='rule.groups:"syscheck" AND full_log:"Integrity checksum changed" NOT location: syscheck-registry'>
|
||||
</md-card-content>
|
||||
@ -94,7 +94,7 @@
|
||||
|
||||
<md-card flex="33">
|
||||
<md-card-content>
|
||||
<div class="md-headline">Top root related changes</div>
|
||||
<div class="md-headline">Root user file changes</div>
|
||||
<kbn-vis vis-height="193px" vis-type="pie" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(field:syscheck.path,order:desc,orderBy:'1',size:8),schema:segment,type:terms)),listeners:(),params:(addLegend:!t,addTooltip:!t,isDonut:!f,shareYAxis:!t),title:'FIM%20Top%2010%20Changed',type:pie))"
|
||||
vis-filter='rule.groups:"syscheck" AND full_log:"Integrity checksum changed" NOT location: syscheck-registry AND root'>
|
||||
</md-card-content>
|
||||
@ -102,7 +102,7 @@
|
||||
|
||||
<md-card flex="33">
|
||||
<md-card-content>
|
||||
<div class="md-headline">Top world writable</div>
|
||||
<div class="md-headline">World writable modified files</div>
|
||||
<kbn-vis vis-height="193px" vis-type="pie" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'rule.groups:%22syscheck%22%20AND%20_exists_:syscheck.perm_after%20AND%20%20(syscheck.perm_after:%2F%5B0-7%5D%7B5%7D(%5B2367%5D).*%2F)')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(field:syscheck.path,order:desc,orderBy:'1',size:8),schema:segment,type:terms)),listeners:(),params:(addLegend:!t,addTooltip:!t,isDonut:!f,shareYAxis:!t),title:'FIM%20Top%2010%20Files',type:pie))"
|
||||
vis-filter='rule.groups:"syscheck" AND _exists_:syscheck.perm_after AND (syscheck.perm_after:/[0-7]{5}([2367]).*/) '>
|
||||
</md-card-content>
|
||||
@ -133,7 +133,7 @@
|
||||
<md-card flex="40" layout="column">
|
||||
<md-card-content style="text-align: center;">
|
||||
<kbn-vis-value vis-height="37px" vis-type="table" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(field:syscheck.path,order:desc,orderBy:'1',size:1),schema:bucket,type:terms)),listeners:(),params:(perPage:1,showMeticsAtAllLevels:!f,showPartialRows:!f,showTotal:!f,sort:(columnIndex:!n,direction:!n),totalFunc:sum),title:'New%20Visualization',type:table))" vis-filter="location: syscheck"></kbn-vis-value>
|
||||
<div class="ng-binding">Most changed file</div>
|
||||
<div class="ng-binding">Most modified file</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
||||
|
@ -54,8 +54,8 @@
|
||||
<div layout="row" layout-align="center stretch">
|
||||
<md-card flex="65">
|
||||
<md-card-content>
|
||||
<span class="md-headline">Agents</span>
|
||||
<kbn-vis vis-height="193px" vis-type="area" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(customInterval:'2h',extended_bounds:(),field:'@timestamp',interval:auto,min_doc_count:1),schema:segment,type:date_histogram),(enabled:!t,id:'3',params:(field:agent.name,order:desc,orderBy:'1',size:8),schema:group,type:terms)),listeners:(),params:(addLegend:!t,addTimeMarker:!f,addTooltip:!t,defaultYExtents:!f,interpolate:linear,legendPosition:right,mode:overlap,scale:linear,setYExtents:!f,shareYAxis:!t,smoothLines:!t,times:!(),yAxis:()),title:'Agents',type:area))"
|
||||
<span class="md-headline">Alerts evolution - Top 10 agents</span>
|
||||
<kbn-vis vis-height="240px" vis-type="area" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(customInterval:'2h',extended_bounds:(),field:'@timestamp',interval:auto,min_doc_count:1),schema:segment,type:date_histogram),(enabled:!t,id:'3',params:(field:agent.name,order:desc,orderBy:'1',size:10),schema:group,type:terms)),listeners:(),params:(addLegend:!t,addTimeMarker:!f,addTooltip:!t,defaultYExtents:!f,interpolate:linear,legendPosition:right,mode:overlap,scale:linear,setYExtents:!f,shareYAxis:!t,smoothLines:!t,times:!(),yAxis:()),title:'Agents',type:area))"
|
||||
vis-filter="*"
|
||||
>
|
||||
</kbn-vis>
|
||||
@ -67,7 +67,7 @@
|
||||
<md-card layout="column" flex="45">
|
||||
<md-card-content>
|
||||
<span class="md-headline">Agents status</span>
|
||||
<kbn-vis vis-height="193px" vis-type="line" vis-index-pattern="wazuh-monitoring-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(),vis:(aggs:!((enabled:!t,id:'2',params:(customInterval:'2h',extended_bounds:(),field:'@timestamp',interval:'auto',min_doc_count:1),schema:segment,type:date_histogram),(enabled:!t,id:'3',params:(field:id),schema:metric,type:cardinality),(enabled:!t,id:'4',params:(field:status,order:asc,orderBy:'3',size:5),schema:group,type:terms)),listeners:(),params:(addLegend:!t,addTimeMarker:!f,addTooltip:!t,defaultYExtents:!f,drawLinesBetweenPoints:!t,interpolate:linear,radiusRatio:9,scale:linear,setYExtents:!f,shareYAxis:!t,showCircles:!t,smoothLines:!f,times:!(),yAxis:()),title:'Agents Status',type:line))"
|
||||
<kbn-vis vis-height="240px" vis-type="line" vis-index-pattern="wazuh-monitoring-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(),vis:(aggs:!((enabled:!t,id:'2',params:(customInterval:'2h',extended_bounds:(),field:'@timestamp',interval:'auto',min_doc_count:1),schema:segment,type:date_histogram),(enabled:!t,id:'3',params:(field:id),schema:metric,type:cardinality),(enabled:!t,id:'4',params:(field:status,order:asc,orderBy:'3',size:5),schema:group,type:terms)),listeners:(),params:(addLegend:!t,addTimeMarker:!f,addTooltip:!t,defaultYExtents:!f,drawLinesBetweenPoints:!t,interpolate:linear,radiusRatio:9,scale:linear,setYExtents:!f,shareYAxis:!t,showCircles:!t,smoothLines:!f,times:!(),yAxis:()),title:'Agents Status',type:line))"
|
||||
vis-filter="*">
|
||||
</kbn-vis>
|
||||
</md-card-content>
|
||||
|
@ -36,7 +36,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content>
|
||||
<span class="md-headline">Events per agent evolution</span>
|
||||
<kbn-vis vis-height="220px" vis-type="line" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'rule.groups:%22rootcheck%22')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(customInterval:'2h',extended_bounds:(),field:'@timestamp',interval:auto,min_doc_count:1),schema:segment,type:date_histogram),(enabled:!t,id:'3',params:(field:agent.name,order:desc,orderBy:'1',size:5),schema:group,type:terms)),listeners:(),params:(addLegend:!t,addTimeMarker:!f,addTooltip:!t,defaultYExtents:!f,drawLinesBetweenPoints:!t,interpolate:linear,radiusRatio:9,scale:linear,setYExtents:!f,shareYAxis:!t,showCircles:!t,smoothLines:!f,times:!(),yAxis:()),title:'New%20Visualization',type:line))"
|
||||
<kbn-vis vis-height="220px" vis-type="line" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(customInterval:'2h',extended_bounds:(),field:'@timestamp',interval:auto,min_doc_count:1),schema:segment,type:date_histogram),(enabled:!t,id:'3',params:(field:agent.name,order:desc,orderBy:'1',size:5),schema:group,type:terms)),listeners:(),params:(addLegend:!t,addTimeMarker:!f,addTooltip:!t,defaultYExtents:!f,drawLinesBetweenPoints:!t,interpolate:linear,radiusRatio:9,scale:linear,setYExtents:!f,shareYAxis:!t,showCircles:!t,smoothLines:!f,times:!(),yAxis:()),title:'New%20Visualization',type:line))"
|
||||
vis-filter='rule.groups:"rootcheck"'>
|
||||
</kbn-vis>
|
||||
</md-card-content>
|
||||
@ -52,8 +52,8 @@
|
||||
</md-card-title-text>
|
||||
</md-card-title>
|
||||
<md-card-content>
|
||||
<kbn-vis vis-height="460px" vis-type="table" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'location:%20rootcheck')),uiState:(vis:(params:(sort:(columnIndex:3,direction:desc)))),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(field:agent.name,order:desc,orderBy:'1',size:5000),schema:bucket,type:terms),(enabled:!t,id:'3',params:(field:rule.description,order:desc,orderBy:'1',size:1),schema:bucket,type:terms),(enabled:!t,id:'4',params:(field:title,order:desc,orderBy:'1',size:1),schema:bucket,type:terms)),listeners:(),params:(perPage:10,showMeticsAtAllLevels:!f,showPartialRows:!f,showTotal:!f,sort:(columnIndex:!n,direction:!n),totalFunc:sum),title:'New%20Visualization',type:table))"
|
||||
vis-filter='location: rootcheck'>
|
||||
<kbn-vis vis-height="460px" vis-type="table" vis-index-pattern="wazuh-alerts-*" vis-a="(filters:!(),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(vis:(params:(sort:(columnIndex:3,direction:desc)))),vis:(aggs:!((enabled:!t,id:'1',params:(),schema:metric,type:count),(enabled:!t,id:'2',params:(customLabel:'Agent%20name',field:agent.name,order:desc,orderBy:'1',size:999999999),schema:bucket,type:terms),(enabled:!t,id:'3',params:(customLabel:'Rule%20description',field:rule.description,order:desc,orderBy:'1',size:999999999),schema:bucket,type:terms),(enabled:!t,id:'4',params:(customLabel:Control,field:title,order:desc,orderBy:'1',size:999999999),schema:bucket,type:terms)),listeners:(),params:(perPage:10,showMeticsAtAllLevels:!f,showPartialRows:!f,showTotal:!f,sort:(columnIndex:!n,direction:!n),totalFunc:sum),title:'New%20Visualization',type:table))"
|
||||
vis-filter='rule.groups:"rootcheck"'>
|
||||
</kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user