What can this be?
My setup:
CentOS x64 vm I've downloaded the vm from your website)
Nagios XI 2012 v2.7
Windows 2K8 R2
NSClient v0.4.1.90 (runs under local system)
My Script
My Script polls for the amount of desktops that are available in Xendesktop, log that number to a logfile and exit with a code based on the amount of desktops.
It's uses a Powershell Snapin from Citrix (Citrix.Broker.Admin.v1)
Code: Select all
# Parameters toevoegen
param
(
$Desktopgroep
)
# Laden Citrix Broker PSSnapin
Add-PSSnapin "Citrix.Broker.Admin.V1"
# Variable zetten
$logfileloc = "C:\Program Files\NSClient++\scripts\VDI"
# Verwijderen eerdere resultaten
$bestaatlog = Test-Path $logfileloc\Werkplekken$DesktopGroep.log
If ($bestaatlog -eq $True)
{
remove-item $logfileloc\Werkplekken$DesktopGroep.log
}
# Haal aantal beschikbare desktops op van Desktop Groep
Get-BrokerDesktopGroup -Name $DesktopGroep | select DesktopsAvailable | ft -HideTableHeaders > $logfileloc\wp$DesktopGroep.log | Out-Null
# Waardes verwerken in log-file
gc $logfileloc\wp$DesktopGroep.log | where-object { $_ } > $logfileloc\wp2$DesktopGroep.log
gc $logfileloc\wp2$DesktopGroep.log | foreach-object { $_ -replace ' ' } > $logfileloc\wp3$DesktopGroep.log
rename-item $logfileloc\wp3$DesktopGroep.log $logfileloc\Werkplekken$DesktopGroep.log
remove-item $logfileloc\wp*$DesktopGroep.log
# Waarde ophalen uit log-file
$aantalbeschikbarewerkplekken = gc $logfileloc\Werkplekken$DesktopGroep.log -totalcount 1
if ($aantalbeschikbarewerkplekken -lt 10)
{
Write-Host "Critical - Nog $aantalbeschikbarewerkplekken beschikbaar | BeschikbareWerkplekken=$aantalbeschikbarewerkplekken"
$host.SetShouldExit(2)
exit
}
if ($aantalbeschikbarewerkplekken -lt 20)
{
Write-Host "Warning - Nog $aantalbeschikbarewerkplekken beschikbaar | BeschikbareWerkplekken=$aantalbeschikbarewerkplekken"
exit 1
}
else
{
Write-Host "OK - Nog $aantalbeschikbarewerkplekken beschikbaar | BeschikbareWerkplekken=$aantalbeschikbarewerkplekken"
exit 0
}Code: Select all
# If you want to fill this file with all avalible options run the following command:
# nscp settings --generate --add-defaults --load-all
# If you want to activate a module and bring in all its options use:
# nscp settings --activate-module <MODULE NAME> --add-defaults
# For details run: nscp settings --help
; Undocumented section
[/modules]
; CheckDisk - CheckDisk can check various file and disk related things. The current version has commands to check Size of hard drives and directories.
CheckDisk = 1
; Event log Checker. - Check for errors and warnings in the event log. This is only supported through NRPE so if you plan to use only NSClient this wont help you at all.
CheckEventLog = 1
; Check External Scripts - A simple wrapper to run external scripts and batch files.
CheckExternalScripts = 1
; Helper function - Various helper function to extend other checks. This is also only supported through NRPE.
CheckHelpers = 1
; Event log Checker. - Check for errors and warnings in the event log. This is only supported through NRPE so if you plan to use only NSClient this wont help you at all.
CheckLogFile = 0
; Check NSCP - Checkes the state of the agent
CheckNSCP = 1
; CheckSystem - Various system related checks, such as CPU load, process state, service state memory usage and PDH counters.
CheckSystem = 1
; CheckTaskSched - CheckTaskSched can check various file and disk related things. The current version has commands to check Size of hard drives and directories.
CheckTaskSched = 0
; CheckTaskSched2 - CheckTaskSched2 can check various file and disk related things. The current version has commands to check Size of hard drives and directories.
CheckTaskSched2 = 0
; CheckWMI - CheckWMI can check various file and disk related things. The current version has commands to check Size of hard drives and directories.
CheckWMI = 1
; GraphiteClient - Graphite client
GraphiteClient = 0
; LUAScript - LUAScript...
LUAScript = 0
; NRDPClient - Passive check support over NRDP
NRDPClient = 0
; NRPE client - NRPE client
NRPEClient = 0
; NRPE server - A simple server that listens for incoming NRPE connection and handles them.
NRPEServer = 1
; SMTPClient - Passive check support via SMTP
SMTPClient = 0
; SimpleCache module - Caches results for later checking.
SimpleCache = 0
; SimpleFileWriter module - FileWriters results for later checking.
SimpleFileWriter = 0
; SyslogClient - Passive check support via Syslog
SyslogClient = 0
; Undocumented section
[/settings/default]
; ALLOWED CIPHERS - A better value is: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
allowed ciphers = ADH
; ALLOWED HOSTS - A comaseparated list of allowed hosts. You can use netmasks (/ syntax) or * to create ranges.
allowed hosts = 145.32.229.222, 145.32.229.235, 145.32.229.231
; CACHE ALLOWED HOSTS - If hostnames should be cached, improves speed and security somewhat but wont allow you to have dynamic IPs for your nagios server.
cache allowed hosts = true
; SSL CERTIFICATE -
certificate =
; TIMEOUT - Timeout when reading packets on incoming sockets. If the data has not arrived within this time we will bail out.
timeout = 30
; ENABLE SSL ENCRYPTION - This option controls if SSL should be enabled.
use ssl = true
; VERIFY MODE -
verify mode = none
; A list of aliases available. An alias is an internal command that has been "wrapped" (to add arguments). Be careful so you don't create loops (ie check_loop=check_a, check_a=check_loop)
[/settings/external scripts/alias]
; alias_cpu - Alias for alias_cpu. To configure this item add a section called: /settings/external scripts/alias/alias_cpu
alias_cpu = checkCPU warn=80 crit=90 time=5m time=1m time=30s
; alias_cpu_ex - Alias for alias_cpu_ex. To configure this item add a section called: /settings/external scripts/alias/alias_cpu_ex
alias_cpu_ex = checkCPU warn=$ARG1$ crit=$ARG2$ time=5m time=1m time=30s
; alias_disk - Alias for alias_disk. To configure this item add a section called: /settings/external scripts/alias/alias_disk
alias_disk = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED
; alias_disk_loose - Alias for alias_disk_loose. To configure this item add a section called: /settings/external scripts/alias/alias_disk_loose
alias_disk_loose = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED ignore-unreadable
; alias_event_log - Alias for alias_event_log. To configure this item add a section called: /settings/external scripts/alias/alias_event_log
alias_event_log = CheckEventLog file=application file=system MaxWarn=1 MaxCrit=1 "filter=generated gt -2d AND severity NOT IN ('success', 'informational') AND source != 'SideBySide'" truncate=800 unique descriptions "syntax=%severity%: %source%: %message% (%count%)"
; alias_file_age - Alias for alias_file_age. To configure this item add a section called: /settings/external scripts/alias/alias_file_age
alias_file_age = checkFile2 filter=out "file=$ARG1$" filter-written=>1d MaxWarn=1 MaxCrit=1 "syntax=%filename% %write%"
; alias_file_size - Alias for alias_file_size. To configure this item add a section called: /settings/external scripts/alias/alias_file_size
alias_file_size = CheckFiles "filter=size > $ARG2$" "path=$ARG1$" MaxWarn=1 MaxCrit=1 "syntax=%filename% %size%" max-dir-depth=10
; alias_mem - Alias for alias_mem. To configure this item add a section called: /settings/external scripts/alias/alias_mem
alias_mem = checkMem MaxWarn=80% MaxCrit=90% ShowAll=long type=physical type=virtual type=paged type=page
; alias_process - Alias for alias_process. To configure this item add a section called: /settings/external scripts/alias/alias_process
alias_process = checkProcState "$ARG1$=started"
; alias_process_count - Alias for alias_process_count. To configure this item add a section called: /settings/external scripts/alias/alias_process_count
alias_process_count = checkProcState MaxWarnCount=$ARG2$ MaxCritCount=$ARG3$ "$ARG1$=started"
; alias_process_hung - Alias for alias_process_hung. To configure this item add a section called: /settings/external scripts/alias/alias_process_hung
alias_process_hung = checkProcState MaxWarnCount=1 MaxCritCount=1 "$ARG1$=hung"
; alias_process_stopped - Alias for alias_process_stopped. To configure this item add a section called: /settings/external scripts/alias/alias_process_stopped
alias_process_stopped = checkProcState "$ARG1$=stopped"
; alias_sched_all - Alias for alias_sched_all. To configure this item add a section called: /settings/external scripts/alias/alias_sched_all
alias_sched_all = CheckTaskSched "filter=exit_code ne 0" "syntax=%title%: %exit_code%" warn=>0
; alias_sched_long - Alias for alias_sched_long. To configure this item add a section called: /settings/external scripts/alias/alias_sched_long
alias_sched_long = CheckTaskSched "filter=status = 'running' AND most_recent_run_time < -$ARG1$" "syntax=%title% (%most_recent_run_time%)" warn=>0
; alias_sched_task - Alias for alias_sched_task. To configure this item add a section called: /settings/external scripts/alias/alias_sched_task
alias_sched_task = CheckTaskSched "filter=title eq '$ARG1$' AND exit_code ne 0" "syntax=%title% (%most_recent_run_time%)" warn=>0
; alias_service - Alias for alias_service. To configure this item add a section called: /settings/external scripts/alias/alias_service
alias_service = checkServiceState CheckAll
; alias_service_ex - Alias for alias_service_ex. To configure this item add a section called: /settings/external scripts/alias/alias_service_ex
alias_service_ex = checkServiceState CheckAll "exclude=Net Driver HPZ12" "exclude=Pml Driver HPZ12" exclude=stisvc
; alias_up - Alias for alias_up. To configure this item add a section called: /settings/external scripts/alias/alias_up
alias_up = checkUpTime MinWarn=1d MinWarn=1h
; alias_updates - Alias for alias_updates. To configure this item add a section called: /settings/external scripts/alias/alias_updates
alias_updates = check_updates -warning 0 -critical 0
; alias_volumes - Alias for alias_volumes. To configure this item add a section called: /settings/external scripts/alias/alias_volumes
alias_volumes = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll=volumes FilterType=FIXED
; alias_volumes_loose - Alias for alias_volumes_loose. To configure this item add a section called: /settings/external scripts/alias/alias_volumes_loose
alias_volumes_loose = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll=volumes FilterType=FIXED ignore-unreadable
; default - Alias for default. To configure this item add a section called: /settings/external scripts/alias/default
default =
; Section for SMTP passive check module.
[/settings/NRDP/client]
; CHANNEL - The channel to listen to.
channel = NRDP
; HOSTNAME - The host name of this host if set to blank (default) the windows name of the computer will be used.
hostname = auto
; Target definition for: default
[/settings/NRDP/client/targets/default]
; TARGET ADDRESS - Target host address
address =
; RECIPIENT - Recipient of email message
recipient = nscp@localhost
; SENDER - Sender of email message
sender = nscp@localhost
; TEMPLATE - Template for message data
template = Hello, this is %source% reporting %message%!
; TIMEOUT - Timeout when reading/writing packets to/from sockets.
timeout = 30
; Section for NRPE active/passive check module.
[/settings/NRPE/client]
; CHANNEL - The channel to listen to.
channel = NRPE
; Target definition for: default
[/settings/NRPE/client/targets/default]
; TARGET ADDRESS - Target host address
address =
; ALLOWED CIPHERS - A better value is: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
allowed ciphers = ADH
; SSL CERTIFICATE -
certificate =
; PAYLOAD LENGTH - Length of payload to/from the NRPE agent. This is a hard specific value so you have to "configure" (read recompile) your NRPE agent to use the same value for it to work.
payload length = 1024
; TIMEOUT - Timeout when reading/writing packets to/from sockets.
timeout = 30
; ENABLE SSL ENCRYPTION - This option controls if SSL should be enabled.
use ssl = true
; VERIFY MODE -
verify mode = none
; Section for NRPE (NRPEServer.dll) (check_nrpe) protocol options.
[/settings/NRPE/server]
; COMMAND ARGUMENT PROCESSING - This option determines whether or not the we will allow clients to specify arguments to commands that are executed.
allow arguments = true
; COMMAND ALLOW NASTY META CHARS - This option determines whether or not the we will allow clients to specify nasty (as in |`&><'"\[]{}) characters in arguments.
allow nasty characters = true
; PORT NUMBER - Port to use for NRPE.
port = 5666
; Section for SMTP passive check module.
[/settings/SMTP/client]
; CHANNEL - The channel to listen to.
channel = SMTP
; Target definition for: default
[/settings/SMTP/client/targets/default]
; TARGET ADDRESS - Target host address
address =
; RECIPIENT - Recipient of email message
recipient = nscp@localhost
; SENDER - Sender of email message
sender = nscp@localhost
; TEMPLATE - Template for message data
template = Hello, this is %source% reporting %message%!
; TIMEOUT - Timeout when reading/writing packets to/from sockets.
timeout = 30
; Section for simple cache module (SimpleCache.dll).
[/settings/cache]
; CHANNEL - The channel to listen to.
channel = CACHE
; PRIMARY CACHE INDEX - Set this to the value you want to use as unique key for the cache (host, command, result,...).
primary index = ${alias-or-command}
; Section for system checks and system settings
[/settings/check/task schedule]
; SYNTAX - Set this to use a specific syntax string for all commands (that don't specify one)
default buffer length = %title% last run: %most-recent-run-time% (%exit-code%)
; Configure crash handling properties.
[/settings/crash]
; ARCHIVE CRASHREPORTS - Archive crash reports in the archive folder
archive = true
; folder - The archive folder for crash dunpes.
archive folder = ${shared-path}/crash-dumps
; RESTART - Submit crash reports to nsclient.org (or your configured submission server)
restart = true
; RESTART SERVICE NAME - The url to submit crash reports to
restart target = NSClientpp
; SUBMIT CRASHREPORTS - Submit crash reports to nsclient.org (or your configured submission server)
submit = false
; SUBMISSION URL - The url to submit crash reports to
submit url = http://crash.nsclient.org/submit
; Section for the EventLog Checker (CheckEventLog.dll).
[/settings/eventlog]
; BUFFER_SIZE - The size of the buffer to use when getting messages this affects the speed and maximum size of messages you can recieve.
buffer size = 131072
; DEBUG - Log more information when filtering (usefull to detect issues with filters) not usefull in production as it is a bit of a resource hog.
debug = false
; LOOKUP NAMES - Lookup the names of eventlog files
lookup names = true
; SYNTAX - Set this to use a specific syntax string for all commands (that don't specify one).
syntax =
; A set of options to configure the real time checks
[/settings/eventlog/real-time]
; DEBUG - Log missed records (usefull to detect issues with filters) not usefull in production as it is a bit of a resource hog.
debug = false
; REAL TIME CHECKING - Spawns a backgrounnd thread which detects issues and reports them back instantly.
enabled = false
; LOGS TO CHECK - Comma separated list of logs to check
log = application,system
; STARTUP AGE - The initial age to scan when starting NSClient++
startup age = 30m
; A set of filters to use in real-time mode
[/settings/eventlog/real-time/filters]
; Section for external scripts configuration options (CheckExternalScripts).
[/settings/external scripts]
; COMMAND ARGUMENT PROCESSING - This option determines whether or not the we will allow clients to specify arguments to commands that are executed.
allow arguments = true
; COMMAND ALLOW NASTY META CHARS - This option determines whether or not the we will allow clients to specify nasty (as in |`&><'"\[]{}) characters in arguments.
allow nasty characters = false
; SCRIPT DIRECTORY - Load all scripts in a directory and use them as commands. Probably dangerous but useful if you have loads of scripts :)
script path =
; COMMAND TIMEOUT - The maximum time in seconds that a command can execute. (if more then this execution will be aborted). NOTICE this only affects external commands not internal ones.
timeout = 60
; A list of scripts available to run from the CheckExternalScripts module. Syntax is: <command>=<script> <arguments>
[/settings/external scripts/scripts]
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;Alle custom scripts van de
;Gemeente Delft hieronder
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
check_epoav14793=cscript.exe //T:30 //NoLogo scripts\check_epoav.vbs -f "C://PROGRA~2/McAfee/EPOLIC~1/DB/Software/Current/VSCAND~1/DAT/0000/avvdat.ini" -w 3 -c 4
check_epoav08422=cscript.exe //T:30 //NoLogo scripts\check_epoav.vbs -f "C://PROGRA~1/McAfee/EPOLIC~1/DB/Software/Current/VSCAND~1/DAT/0000/avvdat.ini" -w 3 -c 4
check_epoav1471614278=cscript.exe //T:30 //NoLogo scripts\check_epoav.vbs -f "D://PROGRA~1/McAfee/EPOLIC~1/DB/Software/Current/VSCAND~1/DAT/0000/avvdat.ini" -w 3 -c 4
check_vault=cmd /c echo scripts\Vaultcontrole.ps1 | powershell.exe -noprofile -nologo -command -
check_evapplog=cmd /c echo scripts\WinEventLogApp.ps1 | powershell.exe -noprofile -nologo -command -
check_evsyslog=cmd /c echo scripts\WinEventLogSys.ps1 | powershell.exe -noprofile -nologo -command -
check_dpbackup=cmd /c echo scripts\dataprotector.ps1 | powershell.exe -noprofile -nologo -command -
check_sqlserver_spc=cmd /c echo scripts\check_sqlserver_spc.ps1 | powershell.exe -noprofile -nologo -command -
check_sqlserver_con=cmd /c echo scripts\check_sqlserver_con.ps1 | powershell.exe -noprofile -nologo -command -
check_sqlserver_bu=cmd /c echo scripts\check_sqlserver_bu.ps1 | powershell.exe -noprofile -nologo -command -
check_eva=cmd /c echo scripts\check_eva.ps1 | powershell.exe -noprofile -nologo -command -
check_vdibeschikbaar=cmd /c echo scripts\Werkplekken_Beschikbaar.ps1 "$ARG1$"; exit($lastexitcode) | powershell.exe -noprofile -nologo -command -
check_vdiingebruik=cmd /c echo scripts\Werkplekken_InUse.ps1 "$ARG1$"; exit($lastexitcode) | powershell.exe -noprofile -nologo -command -
check_vdidisconnected=cmd /c echo scripts\Werkplekken_Disconnected.ps1 "$ARG1$"; exit($lastexitcode) | powershell.exe -noprofile -nologo -command -
; A list of wrappped scripts (ie. using the template mechanism)
[/settings/external scripts/wrapped scripts]
; A list of templates for wrapped scripts
[/settings/external scripts/wrappings]
; BATCH FILE WRAPPING -
bat = scripts\\%SCRIPT% %ARGS%
; POWERSHELL WRAPPING -
ps1 = cmd /c echo scripts\\%SCRIPT% %ARGS%; exit($lastexitcode) | powershell.exe -command -
; VISUAL BASIC WRAPPING -
vbs = cscript.exe //T:30 //NoLogo scripts\\lib\\wrapper.vbs %SCRIPT% %ARGS%
; Section for graphite passive check module.
[/settings/graphite/client]
; CHANNEL - The channel to listen to.
channel = GRAPHITE
; HOSTNAME - The host name of this host if set to blank (default) the windows name of the computer will be used.
hostname = auto
; Target definition for: default
[/settings/graphite/client/targets/default]
; TARGET ADDRESS - Target host address
address =
; PATH FOR VALUES -
path = system.${hostname}.${check_alias}.${perf_alias}
; Configure log properties.
[/settings/log]
; DATEMASK - The size of the buffer to use when getting messages this affects the speed and maximum size of messages you can recieve.
date format = %d-%m-%Y %H:%M:%S
; FILENAME - The file to write log data to. Set this to none to disable log to file.
file name = ${exe-path}/nsclient.log
; LOG LEVEL - Log level to use. Avalible levels are error,warning,info,debug,trace
level = warning
; Configure log file properties.
[/settings/log/file]
; MAXIMUM FILE SIZE - When file size reaches this it will be truncated to 50% if set to 0 (default) truncation will be disabled
max size = 0
; Section for log file checker
[/settings/logfile]
; DEBUG - Log more information to help diagnose errors and configuration problems.
debug = false
; SYNTAX - Set the default syntax to use
syntax =
; A set of options to configure the real time checks
[/settings/logfile/real-time]
; REAL TIME CHECKING - Spawns a backgrounnd thread which waits for file changes.
enabled = false
; A set of filters to use in real-time mode
[/settings/logfile/real-time/checks]
; Section for the LUAScripts module.
[/settings/lua]
; A list of scripts available to run from the LuaSCript module.
[/settings/lua/scripts]
; Section for configuring the shared session.
[/settings/shared session]
; LOG LEVEL - Log level to use
enabled = false
; Section for SYSLOG passive check module.
[/settings/syslog/client]
; CHANNEL - The channel to listen to.
channel = syslog
; HOSTNAME - The host name of this host if set to blank (default) the windows name of the computer will be used.
hostname =
; Target definition for: default
[/settings/syslog/client/targets/default]
; TARGET ADDRESS - Target host address
address =
; TODO -
critical severity = critical
; TODO -
facility = kernel
; TODO -
message_syntax = %message%
; TODO -
ok severity = informational
; TODO -
severity = error
; TODO -
tag_syntax = NSCA
; TODO -
unknown severity = emergency
; TODO -
warning severity = warning
; Section for system checks and system settings
[/settings/system/windows]
; DEFAULT LENGTH - Used to define the default intervall for range buffer checks (ie. CPU).
default buffer length = 1h
; Confiure which services has to be in which state
[/settings/system/windows/service mapping]
; A list of avalible remote target systems
[/settings/targets]
; Section for simple file writer module (SimpleFileWriter.dll).
[/settings/writers/file]
; CHANNEL - The channel to listen to.
channel = FILE
; FILE TO WRITE TO - The filename to write output to.
file = output.txt
; PRIMARY CACHE INDEX - Set this to the value you want to use as unique key for the cache (host, command, result,...).
syntax = ${alias-or-command} ${result} ${message}
Code: Select all
02-05-2014 15:15:26: e:D:\source\nscp\trunk\include\socket/connection.hpp:146: Failed to send data: The file handle supplied is not valid