mirror of
https://github.com/valitydev/wazuh-kibana-app.git
synced 2024-11-07 18:28:55 +00:00
198 lines
12 KiB
HTML
198 lines
12 KiB
HTML
<md-content layout="column" ng-if="tab === 'syscollector'" ng-show="!load" class="">
|
|
|
|
<div layout="row" class="layout-padding" ng-if="agent && agent.status !== 'Active'">
|
|
<md-card flex class="wz-md-card" flex>
|
|
<md-card-content class="wz-text-center">
|
|
<i class="fa fa-fw fa-info-circle" aria-hidden="true"></i> <span class="wz-headline-title">Agent is not
|
|
connected.</span>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
|
|
<div layout="row" class="layout-padding" ng-if="agent && agent.status === 'Active' && !hasSize(syscollector)">
|
|
<md-card flex class="wz-md-card" flex>
|
|
<md-card-content class="wz-text-center">
|
|
<i class="fa fa-fw fa-info-circle" aria-hidden="true"></i> <span class="wz-headline-title">Could not
|
|
fetch inventory for this agent.</span>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
|
|
<div layout="row" class="layout-padding wz-padding-bottom-0"
|
|
ng-if="agent && agent.status === 'Active' && hasSize(syscollector) && (!hasSize(syscollector.hardware) || !hasSize(syscollector.os))">
|
|
<md-card flex class="wz-md-card" flex>
|
|
<md-card-content class="wz-text-center">
|
|
<i class="fa fa-fw fa-info-circle" aria-hidden="true"></i> <span class="wz-headline-title">Not enough
|
|
hardware or operating system information</span>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
|
|
<div layout="row" class="inventory-metrics"
|
|
ng-if="agent && agent.status === 'Active' && hasSize(syscollector) && hasSize(syscollector.hardware) && hasSize(syscollector.os)">
|
|
<md-card flex class="wz-metric-color wz-md-card">
|
|
<md-card-content layout="row" class="wz-padding-metric">
|
|
<div flex="10">Cores: <span class="wz-text-bold">{{ syscollector.hardware.cpu.cores }}</span></div>
|
|
<div flex="15">Memory: <span class="wz-text-bold">{{ (syscollector.hardware.ram.total / 1024) | number:
|
|
2 }} MB</span></div>
|
|
<div flex="10">Arch: <span class="wz-text-bold">{{ syscollector.os.architecture }}</span></div>
|
|
<div flex>OS: <span class="wz-text-bold">{{ syscollector.os.os.name }}
|
|
{{ syscollector.os.os.version }}</span></div>
|
|
<div flex>CPU: <span class="wz-text-bold">{{ syscollector.hardware.cpu.name }}</span></div>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
|
|
<div layout="row" class="layout-padding"
|
|
ng-if="agent && agent.status === 'Active' && hasSize(syscollector)">
|
|
<md-card flex class="wz-md-card">
|
|
<md-card-content class="wz-text-center"
|
|
ng-if="!syscollector.netiface || !syscollector.netiface.items || !syscollector.netiface.items.length">
|
|
<i class="fa fa-fw fa-info-circle" aria-hidden="true"></i> <span class="wz-headline-title">No
|
|
interfaces scan available</span>
|
|
</md-card-content>
|
|
<md-card-content ng-if="syscollector.netiface && syscollector.netiface.items.length">
|
|
<span class="wz-headline-title"><i class="fa fa-fw fa-sitemap"></i> Network interfaces</span>
|
|
<span class="color-grey pull-right">Last scan: {{syscollector.netiface.items[0].scan.time}}</span>
|
|
<md-divider class="wz-margin-top-10"></md-divider>
|
|
|
|
<table class="table table-striped table-condensed table-layout-fixed">
|
|
<thead class="wz-text-bold">
|
|
<th class="wz-text-left">Name</th>
|
|
<th class="wz-text-left">Mac</th>
|
|
<th class="wz-text-left">State</th>
|
|
<th class="wz-text-left">MTU</th>
|
|
<th class="wz-text-left">Type</th>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="wz-word-wrap" ng-repeat="interface in syscollector.netiface.items">
|
|
<td>{{interface.name}}</td>
|
|
<td>{{interface.mac}}</td>
|
|
<td>
|
|
<svg ng-if="interface.state !== 'up'" class="euiIcon euiIcon--medium euiIcon--warning"
|
|
focusable="false" xmlns="http://www.w3.org/2000/svg"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"
|
|
viewBox="0 0 16 16">
|
|
<defs>
|
|
<circle id="dot-a" cx="8" cy="8" r="4"></circle>
|
|
</defs>
|
|
<use xlink:href="#dot-a"></use>
|
|
</svg>
|
|
<svg ng-if="interface.state === 'up'" class="euiIcon euiIcon--medium euiIcon--success"
|
|
focusable="false" xmlns="http://www.w3.org/2000/svg"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"
|
|
viewBox="0 0 16 16">
|
|
<defs>
|
|
<circle id="dot-a" cx="8" cy="8" r="4"></circle>
|
|
</defs>
|
|
<use xlink:href="#dot-a"></use>
|
|
</svg>
|
|
{{interface.state}}
|
|
</td>
|
|
<td>{{interface.mtu}}</td>
|
|
<td>{{interface.type}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</md-card-content>
|
|
</md-card>
|
|
<md-card flex class="wz-md-card">
|
|
<md-card-content class="wz-text-center"
|
|
ng-if="syscollector.ports && !syscollector.ports.items.length">
|
|
<i class="fa fa-fw fa-info-circle" aria-hidden="true"></i> <span class="wz-headline-title">No ports
|
|
scan available</span>
|
|
</md-card-content>
|
|
<md-card-content
|
|
ng-if="syscollector.ports && syscollector.ports.items.length">
|
|
<span class="wz-headline-title"><i class="fa fa-fw fa-exchange"></i> Network ports</span>
|
|
<span class="color-grey pull-right">Last scan: {{syscollector.ports.items[0].scan.time}}</span>
|
|
<md-divider class="wz-margin-top-10"></md-divider>
|
|
<wz-table flex ng-if="agent && agent.os && agent.os.platform === 'windows'"
|
|
path="'/syscollector/' + agent.id + '/ports'" row-sizes="[6]"
|
|
keys="[{value:'process',nosortable:true},{value:'local.ip',nosortable:true}, {value:'local.port',nosortable:true},'state','protocol']">
|
|
</wz-table>
|
|
<wz-table flex ng-if="agent && agent.os && agent.os.platform !== 'windows'"
|
|
path="'/syscollector/' + agent.id + '/ports'" row-sizes="[6]"
|
|
keys="[{value:'local.ip',nosortable:true}, {value:'local.port',nosortable:true},'state','protocol']">
|
|
</wz-table>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
|
|
<div layout="row" class="layout-padding"
|
|
ng-if="agent && agent.status === 'Active' && hasSize(syscollector)">
|
|
<md-card flex class="wz-md-card">
|
|
<md-card-content class="wz-text-center"
|
|
ng-if="!syscollector.netaddr || !syscollector.netaddr.items || !syscollector.netaddr.items.length">
|
|
<i class="fa fa-fw fa-info-circle" aria-hidden="true"></i> <span class="wz-headline-title">No network
|
|
addresses scan available</span>
|
|
</md-card-content>
|
|
<md-card-content ng-if="syscollector.netaddr && syscollector.netaddr.items.length">
|
|
<span class="wz-headline-title"><i class="fa fa-fw fa-exchange"></i> Network settings</span>
|
|
<md-divider class="wz-margin-top-10"></md-divider>
|
|
<wz-table flex path="'/syscollector/' + agent.id + '/netaddr'" row-sizes="[4]"
|
|
keys="['iface', 'address', 'netmask', 'proto', 'broadcast']">
|
|
</wz-table>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
|
|
<div layout="row" class="layout-padding"
|
|
ng-if="agent && agent.status === 'Active' && hasSize(syscollector)">
|
|
<md-card flex class="wz-md-card">
|
|
<md-card-content>
|
|
<span class="wz-headline-title"><i class="fa fa-fw fa-cubes"></i> Packages</span>
|
|
<span class="color-grey pull-right">Last scan: {{syscollector.packagesDate}}</span>
|
|
<md-divider class="wz-margin-top-10"></md-divider>
|
|
<div layout="row" class="wz-margin-top-10">
|
|
<input placeholder="Filter packages..." ng-model="packageSearch" type="text"
|
|
class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid height-30"
|
|
aria-invalid="false" wz-enter="search(packageSearch,'packages')">
|
|
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-30"
|
|
ng-click="search(packageSearch,'packages')">
|
|
<span class="fa fa-search" aria-hidden="true"></span>
|
|
</button>
|
|
</div>
|
|
|
|
<div layout="row" ng-if="agent && syscollector && !load"
|
|
class="wz-margin-top-10">
|
|
<wz-table flex ng-if="agent && agent.os && agent.os.platform !== 'windows'"
|
|
path="'/syscollector/' + agent.id + '/packages'" row-sizes="[10,8,6]" extra-limit="100"
|
|
keys="[{value:'name',size:2},'architecture','version',{value:'vendor',size:2},{value:'description',size:3}]" />
|
|
<wz-table flex ng-if="agent && agent.os && agent.os.platform === 'windows'"
|
|
path="'/syscollector/' + agent.id + '/packages'" row-sizes="[10,8,6]" extra-limit="100"
|
|
keys="[{value:'name',size:3},'architecture','version',{value:'vendor',size:2}]" />
|
|
</div>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
|
|
<div layout="row" class="layout-padding wz-padding-top-0"
|
|
ng-if="agent && agent.status === 'Active' && hasSize(syscollector)">
|
|
<md-card flex class="wz-md-card">
|
|
<md-card-content>
|
|
<span class="wz-headline-title"><i class="fa fa-fw fa-terminal"></i> Processes</span>
|
|
<span class="color-grey pull-right">Last scan: {{syscollector.processesDate}}</span>
|
|
<md-divider class="wz-margin-top-10"></md-divider>
|
|
<div layout="row" class="wz-margin-top-10">
|
|
<input placeholder="Filter processes..." ng-model="processSearch" type="text"
|
|
class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid height-30"
|
|
aria-invalid="false" wz-enter="search(processSearch,'processes')">
|
|
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-30"
|
|
ng-click="search(processSearch,'processes')">
|
|
<span class="fa fa-search" aria-hidden="true"></span>
|
|
</button>
|
|
</div>
|
|
<div layout="row" ng-if="agent && syscollector && !load"
|
|
class="wz-margin-top-10">
|
|
<wz-table flex ng-if="agent && agent.os && agent.os.platform === 'windows'"
|
|
path="'/syscollector/' + agent.id + '/processes'" row-sizes="[10,8,6]" extra-limit="100"
|
|
keys="['name','cmd','priority','nlwp']" />
|
|
<wz-table flex ng-if="agent && agent.os && agent.os.platform !== 'windows'"
|
|
path="'/syscollector/' + agent.id + '/processes'" row-sizes="[10,8,6]" extra-limit="100"
|
|
keys="['name','euser','nice','state']" />
|
|
</div>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
</md-content> |