Page 2 of 2

Re: Illegal arguments detected

Posted: Mon Sep 14, 2015 12:59 pm
by JohnFLi

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

; 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

; 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

; NRPE server - A simple server that listens for incoming NRPE connection and handles them.
NRPEServer = 1

; NSClient server - A simple server that listens for incoming NSClient (check_nt) connection and handles them. Although NRPE is the preferred method NSClient is fully supported and can be used for simplicity or for compatibility.
NSClientServer = 1

NSCAClient = 1
NSClientServer = 1

[/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

; Undocumented section
[/settings/default]

; ALLOWED HOSTS - A comaseparated list of allowed hosts. You can use netmasks (/ syntax) or * to create ranges.
allowed hosts = g1vpnag01,g1vpnag03,10.100.3.133


; 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 = 
[/settings/external scripts/scripts]
windows_updates=cmd /c echo C:\scripts\check_win_updates.ps1; exit $LastExitCode | powershell.exe -command -
check_top20memory=cmd /c echo C:\scripts\top20memoryprocess.ps1; exit $LastExitCode | powershell.exe -command -
check_netstat=cmd /c echo C:\scripts\check_ms_netstat.ps1; exit $LastExitCode | powershell.exe -command -
check_ms_netstat=cmd /c echo scripts/powershell/check_ms_netstat.ps1 $ARG1$; exit $LastExitCode | powershell.exe -command -

Re: Illegal arguments detected

Posted: Mon Sep 14, 2015 1:12 pm
by tgriep
Try adding this section to your nsclient.ini file.

Code: Select all

[/settings/external scripts]
allow arguments = true
allow nasty characters = true
This should enable arguments for the external scripts and the check should function for you.

Re: Illegal arguments detected

Posted: Mon Sep 14, 2015 1:16 pm
by JohnFLi

Code: Select all

[/settings/external scripts/scripts]
allow arguments = true
allow nasty characters = true
windows_updates=cmd /c echo C:\scripts\check_win_updates.ps1; exit $LastExitCode | powershell.exe -command -
check_top20memory=cmd /c echo C:\scripts\top20memoryprocess.ps1; exit $LastExitCode | powershell.exe -command -
check_netstat=cmd /c echo C:\scripts\check_ms_netstat.ps1; exit $LastExitCode | powershell.exe -command -
check_ms_netstat=cmd /c echo scripts/powershell/check_ms_netstat.ps1 $ARG1$; exit $LastExitCode | powershell.exe -command -

Code: Select all

[root@G1VPNAG03 libexec]# ./check_nrpe -H g1vpdocave01 -t 120 -c check_ms_netstat -a '-H localhost'
Arguments not allowed
[root@G1VPNAG03 libexec]#

Re: Illegal arguments detected

Posted: Mon Sep 14, 2015 1:18 pm
by WillemDH
You need to put it like this:

Code: Select all

[/settings/external scripts]
allow arguments = true
allow nasty characters = true
NOT:

Code: Select all

[/settings/external scripts/scripts]
allow arguments = true
allow nasty characters = true
I already posted this earlier
Do you have:

CODE: SELECT ALL
[/settings/NRPE/server]
allow arguments=true

[/settings/external scripts]
allow arguments=true


Restart nscp service if you make any changes to nsclient.ini.
but it had an error in it (false). Please try the above.

Re: Illegal arguments detected

Posted: Mon Sep 14, 2015 1:32 pm
by JohnFLi
with '[/settings/external scripts]'
I get

Code: Select all

[root@G1VPNAG03 libexec]# ./check_nrpe -H g1vpdocave01 -t 120 -c check_ms_netstat -a '-H localhost'
No handler for command: check_ms_netstat
[root@G1VPNAG03 libexec]#
And the other items I had there in the external script section give the same response now as well.

when I make it read "[/settings/external scripts/scripts]" again, my other items work again.


and yes

Code: Select all

[/settings/NRPE/server]
allow arguments = true


also, a test that I did is that I took the $ARG1$ out of the ini file, and ran it without sending an argument

Code: Select all

check_ms_netstat=cmd /c echo C:\scripts\check_ms_netstat.ps1; exit $LastExitCode | powershell.exe -command -

[root@G1VPNAG03 libexec]# ./check_nrpe -H g1vpdocave01 -t 120 -c check_ms_netstat
OK: {TCP: (Total: 00058)(Established: 25)(Listening: 24)(Time_Wait: 5)(Close_Wait: 4)(Other: 0)}{UDP: (Total: 16)}  |'TCP Total'=58 'UDP Total'=16 'TCP Established'=25 'TCP Listening'=24 'TCP Time Wait'=5 'TCP Close Wait'=4 'TCP Other'=0
[root@G1VPNAG03 libexec]# 

So, that proves that it is able to touch the script file. It just doesn't want to argue..



I put the $ARG1$ back in the line, and the output is as it was before:

Code: Select all

[root@G1VPNAG03 libexec]# ./check_nrpe -H g1vpdocave01 -t 120 -c check_ms_netstat
UNKNOWN: Illegal arguments detected: $
[root@G1VPNAG03 libexec]# ./check_nrpe -H g1vpdocave01 -t 120 -c check_ms_netstat -a '-H localhost'
Arguments not allowed
[root@G1VPNAG03 libexec]# 

Re: Illegal arguments detected

Posted: Mon Sep 14, 2015 1:40 pm
by tgriep
Sorry for the confusion. Leave this section alone.

Code: Select all

[/settings/external scripts/scripts]
Add a new section in the nsclient.ini like below. That should take care of it for you.

Code: Select all

[/settings/external scripts]
allow arguments = true
allow nasty characters = true
Both of those sections are needed in the ini file so make sure they are in there.

Re: Illegal arguments detected

Posted: Mon Sep 14, 2015 1:46 pm
by JohnFLi
yeeee haaaaaa!

That did it.

Code: Select all

[/settings/external scripts]
allow arguments = true
allow nasty characters = true

[/settings/external scripts/scripts]
windows_updates=cmd /c echo C:\scripts\check_win_updates.ps1; exit $LastExitCode | powershell.exe -command -
check_top20memory=cmd /c echo C:\scripts\top20memoryprocess.ps1; exit $LastExitCode | powershell.exe -command -
check_ms_netstat=cmd /c echo C:\scripts\check_ms_netstat.ps1 $ARG1$; exit $LastExitCode | powershell.exe -command -

Thank you for all your help

Re: Illegal arguments detected

Posted: Mon Sep 14, 2015 2:04 pm
by tmcdonald
Glad to hear it!

I'll be closing this thread now, but feel free to open another if you need anything in the future!