-
Notifications
You must be signed in to change notification settings - Fork 3
/
NetScaler-AppliancePerformance.ps1
93 lines (74 loc) · 3.17 KB
/
NetScaler-AppliancePerformance.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Param(
[string]$Nsip,
[string]$Username,
[string]$Password
)
$SecurePassword = ConvertTo-SecureString $Password -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($Username, $SecurePassword)
$Session = Connect-Netscaler -Hostname $Nsip -Credential $Credential -PassThru
$CertResults = Get-NSSSLCertificate -session $Session | Where-Object {$_.certificatetype -eq "CLIENTANDSERVER_CERT"}
$ResultSSL = Get-NSStat -session $Session -Type 'ssl'
$ResultSystem = Get-NSStat -session $Session -Type 'system'
$ResultInterface = Get-NSStat -session $Session -Type 'interface'
Write-Host "<prtg>"
Write-Host "<result>"
Write-Host ("<channel>CPU Usage</channel>")
Write-Host ("<value>" + [math]::Round($ResultSystem.cpuusagepcnt) + "</value>")
Write-Host "<unit>Percent</unit>"
Write-Host "</result>"
Write-Host "<result>"
Write-Host ("<channel>Packet CPU Usage</channel>")
Write-Host ("<value>" + [math]::Round($ResultSystem.pktcpuusagepcnt) + "</value>")
Write-Host "<unit>Percent</unit>"
Write-Host "</result>"
Write-Host "<result>"
Write-Host ("<channel>Management CPU Usage</channel>")
Write-Host ("<value>" + [math]::Round($ResultSystem.mgmtcpuusagepcnt) + "</value>")
Write-Host "<unit>Percent</unit>"
Write-Host "</result>"
Write-Host "<result>"
Write-Host ("<channel>Memory Usage</channel>")
Write-Host ("<value>" + [math]::Round($ResultSystem.memusagepcnt) + "</value>")
Write-Host "<unit>Percent</unit>"
Write-Host "</result>"
Write-Host "<result>"
Write-Host ("<channel>Memory MB Usage</channel>")
Write-Host ("<value>" + (([int]$ResultSystem.memuseinmb)*1024)*1024 + "</value>")
Write-Host "<unit>BytesMemory</unit>"
Write-Host "</result>"
Write-Host "<result>"
Write-Host ("<channel>Disk 0 Usage</channel>")
Write-Host ("<value>" + [math]::truncate(($ResultSystem.disk0used/$ResultSystem.disk0size)*100) + "</value>")
Write-Host "<unit>Percent</unit>"
Write-Host "</result>"
Write-Host "<result>"
Write-Host ("<channel>Disk 1 Usage</channel>")
Write-Host ("<value>" + [math]::truncate(($ResultSystem.disk1used/$ResultSystem.disk1size)*100) + "</value>")
Write-Host "<unit>Percent</unit>"
Write-Host "</result>"
Write-Host "<result>"
Write-Host ("<channel>SSL Transactions/sec</channel>")
Write-Host ("<value>" + $ResultSSL.ssltransactionsrate + "</value>")
Write-Host "<unit>Custom</unit>"
Write-Host "<CustomUnit>Transactions</CustomUnit>"
Write-Host "</result>"
$rxbytesratetotal = 0
$txbytesratetotal = 0
foreach ($Result in $ResultInterface) {
$rxbytesratetotal = $rxbytesratetotal + $Result.rxbytesrate
$txbytesratetotal = $txbytesratetotal + $Result.txbytesrate
}
Write-Host "<result>"
Write-Host ("<channel>RX Bandwidth</channel>")
Write-Host ("<value>" + $rxbytesratetotal + "</value>")
Write-Host "<unit>BytesBandwidth</unit>"
Write-Host "<SpeedSize>KiloBits</SpeedSize>"
Write-Host "</result>"
Write-Host "<result>"
Write-Host ("<channel>TX Bandwidth</channel>")
Write-Host ("<value>" + $txbytesratetotal + "</value>")
Write-Host "<unit>BytesBandwidth</unit>"
Write-Host "<SpeedSize>KiloBits</SpeedSize>"
Write-Host "</result>"
Write-Host "</prtg>"
Disconnect-Netscaler