Page 1 of 2

What is NRPE Check command Syntax

Posted: Thu Feb 07, 2013 9:35 am
by cfgriffith
I am trying to use NRPE with NSClient on Windows 2008 r2 boxes. Most of the documentation I can find seems to be outdated so I have kind of winged it. I feel like I may have configured something wrong here but I am not sure. Also, I do not know what the commands to use in Nagios XI for calling up these alias checks. I just use the "Windows Server" option in Nagios Monitoring Wizard but everything is showing up as connection refused. I also want SSL to be in place in this configuration. Any help would be appreciated.


Currently this is my config on the client(I am running 0.4.90), Is allowed_arguments and other such commands supposed to be set to true or 1, I've seen conflicting documentation.


# 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

; 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 = 1

; 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 = 1

; PORT NUMBER - Port to use for NRPE.
port = 5666

allowed hosts = 140.225.8.240

use SSL = 1


; Undocumented section
[/settings/default]

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


; 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 =

Re: What is NRPE Check command Syntax

Posted: Thu Feb 07, 2013 9:38 am
by cfgriffith
Also what is the difference between the nsclient.ini and nsclient-full.ini


My impression is one that just tells you all the available commands?

Re: What is NRPE Check command Syntax

Posted: Thu Feb 07, 2013 10:19 am
by slansing
I cannot speak as to what nsclient-full.ini is as we make a point to almost never use the latest NSClient++ version due to the ammount of bugs that come with them. Our documentation recommends that you use 0.3.x for your production environments. However if you use the newest version you will need to use the command listed at the top to reveal all of the ini file's options. If you do have ssl enabled, did you make sure that the NRPE client on the nagios side is sending the required information to NSclient++ so that it can allow it through?

Here is the Nsclient++ documentation on NRPE:

http://www.nsclient.org/nscp/wiki/doc/usage/nagios/nrpe

And ours:

http://assets.nagios.com/downloads/nagi ... g_NRPE.pdf

Our example in that document uses a linux agent but it is the same information. Also, are the checks on your XI machine check_nt? If so that does not allow for SSL.

Re: What is NRPE Check command Syntax

Posted: Thu Feb 07, 2013 10:38 am
by cfgriffith
I think the commands that the window server monitoring wizard option is installing is for check_nt, but it does not give me and option to choose NRPE alias commands. If you reccomend using the 0.3.x client, is there a particular release that you are in favor of?

Re: What is NRPE Check command Syntax

Posted: Thu Feb 07, 2013 10:41 am
by abrist
The version that can be downloaded through the windows server wizard in XI is the version I would suggest using.

Re: What is NRPE Check command Syntax

Posted: Thu Feb 07, 2013 10:52 am
by lmiltchev
This is the usage of nrpe in general:

Code: Select all

Usage: check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>]
For more info, run in terminal:

Code: Select all

/usr/local/nagios/libexec/check_nrpe -h
Is port 5666 open on your windows machine? Can you telnet into it from the nagios server?

Code: Select all

telnet <windows_IP> 5666
We usually recommend NSClient++ ver. 0.3.9, however before you downgrade, can you try running the following command from the command line on your nagios server:

Code: Select all

/usr/local/nagios/libexec/check_nrpe -H <client_IP> -c alias_mem
See if this command will work.

Re: What is NRPE Check command Syntax

Posted: Fri Feb 08, 2013 12:10 pm
by cfgriffith
I am pretty sure connectivity is fine, because I get from the Nagios server.:

[nagios@nagiosxi0 libexec]$ ./check_nrpe -H 140.225.8.228
I (0,4,1,90 2013-02-04) seem to be doing fine...
[nagios@nagiosxi0 libexec]$

The Nagios Support tech has set me up with aliases in my config file so I am testing them now. I will get back to you guys later today.

Re: What is NRPE Check command Syntax

Posted: Fri Feb 08, 2013 12:34 pm
by lmiltchev
It's good that at least you know you don't have connectivity issues... I asked to to run:

Code: Select all

/usr/local/nagios/libexec/check_nrpe -H <client_IP> -c alias_mem
because you actually have it defined in the "nsclient.ini" file.

Let us know if this actually worked for you.

Re: What is NRPE Check command Syntax

Posted: Fri Feb 08, 2013 1:51 pm
by cfgriffith
check_nrpe! -H 140.225.8.228! -c alias_mem works fine now in Nagios XI (Keep in mind I only have access to the Nagios XI front end, not the actual linux box presently.)

Gives me memory information, same with alias_cpu.

I am not sure how to specify what specific service for Nagios XI to check using alias_service though.

Re: What is NRPE Check command Syntax

Posted: Fri Feb 08, 2013 2:26 pm
by slansing
This would be the name of a service you wish to know is running or not. Do you have a list of similar commands you are trying to set up? They will all follow the same procedure as ludmil outlined.