List Server Load and Send Alert by Email

Added by Ping Zhang , last edited by Ping Zhang on Apr 03, 2008  (view change)
Tags: 

This VBScript is to query ServerLoad of all servers and send alert by email to administrator if serverload is higher than 9000. In a farm of multiple zones, you need to have "Share zone load information" ticked for the script to get ServerLoad across zones.

Description

Citrix administrators may be entangled in multiple Load Evaluators created by different administrators. When Server Load reaches 10000, user will get "resource not available" warning, but not explicitly mention Server Load. This script is to help Citrix admins to locate the issue quickly.

 Apr 03, 2008: Borrowed a piece of code to ping the server before retrieving the Server Load. This prevents the Data Store to give wrong server load when the server is not responsive. Also added a brief readme.txt within the zip package.

Download

QueryServerLoad.zip

Code Snippet

Please any code snippet which might be useful for the user to better understand the script.

User Rating?

Disclaimer

These software applications are provided to you as is with no representations, warranties or conditions of any kind. You may use and distribute it at your own risk. CITRIX DISCLAIMS ALL WARRANTIES WHATSOEVER, EXPRESS, IMPLIED, WRITTEN, ORAL OR STATUTORY, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NONINFRINGEMENT. Without limiting the generality of the foregoing, you acknowledge and agree that (a) the software application may exhibit errors, design flaws or other problems, possibly resulting in loss of data or damage to property; (b) it may not be possible to make the software application fully functional; and (c) Citrix may, without notice or liability to you, cease to make available the current version and/or any future versions of the software application. In no event should the code be used to support of ultra-hazardous activities, including but not limited to life support or blasting activities. NEITHER CITRIX NOR ITS AFFILIATES OR AGENTS WILL BE LIABLE, UNDER BREACH OF CONTRACT OR ANY OTHER THEORY OF LIABILITY, FOR ANY DAMAGES WHATSOEVER ARISING FROM USE OF THE SOFTWARE APPLICATION, INCLUDING WITHOUT LIMITATION DIRECT, SPECIAL, INCIDENTAL, PUNITIVE, CONSEQUENTIAL OR OTHER DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You agree to indemnify and defend Citrix against any and all claims arising from your use, modification or distribution of the code.

great script. I will test it out today. Thanks for your contribution Ping Zhang
Vishal

just tried the script. It works like a charm.
Thanks

Thanks. Just added "ping" function to preventing retrieving Server Load from unresponsive servers. Each "ping" will try twice. This will make the script run longer, but more accurate.

thanks ping..Good work    

Posted by Anonymous at Apr 03, 2008 14:26 | Reply To This

Hi!

Nice script, why not use the onlineservers attribute instead of ping?

Example...

set objZone = CreateObject("MetaFrameCOM.MetaFrameZone")

objZone.Initialize strZone

for each aserver in objZone.OnlineServers

Posted by Anonymous at May 07, 2008 11:05 | Reply To This

Thanks for update, I have adopted this, much better coding.

Set theFarm = CreateObject("MetaFrameCOM.MetaFrameFarm")
theFarm.Initialize MetaFrameWinFarmObject
for each objZone in theFarm.zones
 strZoneName = objZone.ZoneName
 
 set objZone = CreateObject("MetaFrameCOM.MetaFrameZone")
 objZone.Initialize strZoneName
 for each objServer in objZone.OnlineServers
  set objWinServer = objServer.WinServerObject5
  strServerName = objServer.ServerName
  intServerLoad = objWinServer.ServerLoad
   
  wscript.echo strServerName & "-" & intServerLoad
 next
 set objZone = nothing
next
set theFarm = nothing
  • Add to Bookmarks