XenApp_Check : Health check for XenApp farm

MAJ :03/12/2014
Version : 2.6 (XA6x)

Add check WorkerGroup in “Server in Application(s)” section

XenAppcheck_26

MAJ :02/07/2013
Version : 2.3 (XA5/XA6x)

Adding “Server(s) Load” section, this section contains all servers with higher load at 9998.
To disable this section modify $Check_Ctx_SrvLoad.  variable to FALSE in XenApp_CheckXAx.ps1 file.
All server with Load Evaluator “Maintenance” (set by $LoadEval_Check variable) is excluded on this section

 

 

 

MAJ : 29/04/2013
Version : 2.2 (XA5/XA6x)
Adding “Citrix HotFix missing” section, this section is enable by default. To disable this section modify $Check_Ctx_HotFix.  variable to FALSE in XenApp_CheckXAx.ps1 file.

If you want to change the HotFix Citrix version ( in the XenApp_CheckXAx.ps1 file):
– For  XenApp6.0/6.5 modify  $Ctx_HotFixXA60 variable  (for XenApp 6.0)  or $Ctx_HotFixXA65 variable (for XenApp 6.5)
– For XenApp 5 modify  $Ctx_HotFixXA5_32 variable (for 32bits) and/or $Ctx_HotFixXA5_64 variable (for 64 bits)

Next step, install the hotfix validated by you

If the message  LHC error or CtxHotFix not Installed appears in the Citrix HotFix column, the HotFix is not installed or the LHC is corrupt

MAJ :29/04/20133
Version : 2.0 (XA5/XA6x)
Adding “EdgeSight Agent” section, this section is disable by default. To enable this section modify $Check_EdgeSightAgentVer variable to TRUE in XenApp_CheckXAx.ps1 file.

MAJ : 22/12/2012
Version : 2.0 (XA5/XA6x)
Add “Split-Path -Parent $MyInvocation.MyCommand.Path” for Check directory script run
Modify path function file “. \\your share\XenApp_Check\Ctx_Functions.ps1” by “. $Path’Ctx_FunctionsXA6.ps1′ ”
Add create backup folder if not exist on $Path
Add check WMI error on Foreach ($Servers in $Servers) for reduce time execution XenApp_Check if WMI fail

MAJ : 25/11/2012
Add Domain in General Détail section
Add Licence server TS/RDS in General Détail section
Adding “Server(s) type” section (physical, vm, xen or hyperV
This update is just for XenApp_Check XA6x, Xa5 version will soon be updated


MAJ : 05/09/2012
Adding “Cmdlet Execution Time” section, this section is disable by default. To enable this section modify $Check_CmdletExecution Time variable to TRUE in XenApp_CheckXAx.ps1 file.

Adding “Uptime Servers” section, by default the uptime value is ≥ 30. Its possible to change this value in the function Uptime (Ctx_FunctionsXA6.ps1 file), modify “30” value by your value.

Table bug fix

MAJ : 03/08/2012
Compatibility on XenApp 6.5 farm  ok.
Adding Farm version in XenApp_CheckXA6 (testing on XA 6.5)

MAJ : 19/03/2012
XenApp_CheckXA6 ver 1.0
Adding a XenApp 6 version.
The code is functional but is not optimized yet ;) .
Operation remains identical to XenApp_check for XA5,  with the difference which should be configured the policy mode via rows 58 and 64 of the XenApp_CheckXA6.ps1 script.

MAJ : 21/10/2011
Version 1.2
Adding possibility not show some checks in the report:

Adding variable $AppNameExclude for exclude Application Name.

MAJ : 07/06/2011
Version 1.1
Adding counter for each section

MAJ : 13/05/2011
Version 1.02
Adding variable $AppFolderExclude and $ServFolderExclude for exclude Application folder and Server folder

MAJ : 07/05/2011
Version 1.01
Adding “Server(s) Off line” section

In order to know the XenApp farm, we implemented a powershell script (XenApp_Check.ps1) , this will provide information to get a precise idea of the current state.

XenApp_Check generated an HTML file, and send a report by mail (htlm), to be able to be informed  wherever you are.

XenApp_Check (same as XenApp_InfoFarm) is inspired from the graph part of vcheck from the Vmware community.

XenApp_Check will bring a serie of information to give  a summary fo the XenApp farm , along with a serie of check outputs (detailed below in this post), this provides an instant status of the XenApp farm (very convenient in the morning, when the ‘admins’ arrive for instance, or if you have to work on an XenApp farm that you have never monitored previously 🙂 ).

XenApp_Check was tested on windows 2003 server Fr sp2 and Xen App5 fr with R01,R03 and R06, XenApp_CheckXA6 ​​has been tested on servers 2008 R2 sp1 and XenApp 6 R01 Farms.

Information part :

  • Farm name
  • Datastore type
  • Datastore server
  • Licence server name and port
  • Number of servers
  • Number of applications
  • Number of zones
  • Number of load evaluator
  • Number of administrators

Check part :

  • Dschek
  • Disable policy
  • Test presence of the event 4033 on the members servers of the XenApp farm (in order to be able to visualise the elections of the ZDC
  • Test the principals servers XenApp (the service spooler as well) on the members servers of the farm XenApp
  • Test the disk space remaining on the servers member of the XenApp farm ( if the space disk is below 1.7 Go, we consider it as an alert to escalate)
  • Test if the open session on the members of the server is not disable
  • Test if the member servers of the farm XenApp belong to a specific Load evaluator ( in our case the Load evaluator is named “maintenance” and allow to exit a server from our production via  the scheduled task).
  • Test if one application has at least two servers to be pusblished
  • Test if one application is disable


Prerequire XenApp_Check :

  • Powershell V2
  • Citrix XenApp Command CTP3
  • Modify the row 24 in the file XenApp_Check.ps1  in order to indicate the place where the file Ctx_Functions.ps1 is located
  • Modify the rows 27,29 et 31 in the file XenApp_Check.ps1 for the part email send  Configure « # Set the SMTP Server address”  in XenApp_Check.ps1  file to send email
  • Modify the rows 41 et 43 in the file  XenApp_Check.ps1 to precise where the html and their back up will be save/archive.

The execution of XenApp_Check on a farm of  304 servers, 484 applications, 6 zones, 10 Load Evaluators and 10 Policies takes around 45 mn 30 mn.

Any suggestions and feedback will be welcome 😉 .

XenApp_Check (XenApp 5)

XenApp_CheckXA5.rar

 

 

XenApp_CheckXA6 (XenApp 6.x)

XenApp_CheckXA6.rar

Post to Twitter

5 thoughts on “XenApp_Check : Health check for XenApp farm”

  1. Hello, your script is great. But with XenApp6 it’s fail… Some Cmdlets do not exists like Get-XAFarmConfiguration

    You know something to change to make it work?

    Regards.
    Alberto.

  2. Love the script. I do get an error. Noted below. Let me know when it will support XenApp 6.0/6.5.

    Get-EventLog : The network path was not found.
    At C:\Admin\Audit\Ctx_Functions.ps1:185 char:27
    + $Event4003 = (Get-Eventlog <<<< system -computer $Servers -Newest 500 | where {$_.EventID -eq 4033}| Where-Object {
    ($_.TimeWritten).Date -eq (Get-Date).Date})
    + CategoryInfo : NotSpecified: (:) [Get-EventLog], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.GetEventLogCommand

  3. Hi,

    Can you help me!

    Environment: Windows 2008R2 + XenApp 6.5

    What requirement to running the script?

    A lot of error like:

    GET-XAFarm done
    Unexpected token ‘?[System.Management.ManagementDateTimeconverter]::ToDateTime’ in expression or statement.
    At C:\temp\Ctx_FunctionsXA6.ps1:478 char:86

    The term ‘GetElapsedTime’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the
    name, or if a path was included, verify that the path is correct and try again.
    At C:\temp\XenApp_CheckXA6.ps1:127 char:37

    GET-XAZone done
    The term ‘GetElapsedTime’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the
    name, or if a path was included, verify that the path is correct and try again.
    At C:\temp\XenApp_CheckXA6.ps1:134 char:40

    GET-XAWorkerGroup done
    The term ‘GetElapsedTime’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the
    name, or if a path was included, verify that the path is correct and try again.
    At C:\temp\XenApp_CheckXA6.ps1:141 char:35

    GET-XALoadEvaluator
    The term ‘GetElapsedTime’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the
    name, or if a path was included, verify that the path is correct and try again.
    At C:\temp\XenApp_CheckXA6.ps1:152 char:41

    Thanks

Leave a Reply to ctxblog Cancel reply

Your email address will not be published. Required fields are marked *

*