wazuh-kibana-app/public/templates/agents/agents-syscollector.html
2019-03-23 18:18:22 +01:00

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>