Check_WinFile Nagios NRPE help please

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
abrist
Red Shirt
Posts: 8334
Joined: Thu Nov 15, 2012 1:20 pm

Re: Check_WinFile Nagios NRPE help please

Post by abrist »

That is the right place for your handlers (or aliases, etc).
Former Nagios employee
"It is turtles. All. The. Way. Down. . . .and maybe an elephant or two."
VI VI VI - The editor of the Beast!
Come to the Dark Side.
slansing
Posts: 7698
Joined: Mon Apr 23, 2012 4:28 pm
Location: Travelling through time and space...

Re: Check_WinFile Nagios NRPE help please

Post by slansing »

I will show you how I have mine defined, and that it works properly, then you can duplicate the configuration:

In the NSClient.ini file I have the following defined under External Scripts section, "this will be different since you are using the latest NSClient++ version and not the recommended 0.3.9.x version. Though it should still function in this respect:

Code: Select all

check_winfile= scripts\check_winfile.exe --target C:\PerfLogs\Admin\C --warn 1 --critical 3
I then call this from my Nagios server's terminal with the following:

Code: Select all

/usr/local/nagios/libexec/check_nrpe -H 192.168.5.63 -c check_winfile
And it output this:

Code: Select all

FILE OK - 1 files to consider|'selected files'=1;1;3; 'all files'=1 'deleted files'=0
Now, if this plugin can be assigned arguments I would recommend placing $ARG3$ and $ARG4$ instead of hard coded critical and warning values, if you plan to change these in the future, in that way, you can change them from your Nagios server and not have to log into the Windows workstation.
csward
Posts: 46
Joined: Fri Mar 08, 2013 4:37 pm

Re: Check_WinFile Nagios NRPE help please

Post by csward »

Thanks, I assume

/usr/local/nagios/libexec/check_nrpe -H 192.168.5.63 -c check_winfile

is a commands.cfg change?

And then the arguements would go into the windows.cfg config:


define service {

host_name CSXENCLUFS
service_description File Count
check_command check_nrpe!check_winfile $ARG1$ $ARG2$
use generic-service
notification_interval 0
}


Thanks, I have made the changes to the commands.cfg file and waiting for the refresh.
slansing
Posts: 7698
Joined: Mon Apr 23, 2012 4:28 pm
Location: Travelling through time and space...

Re: Check_WinFile Nagios NRPE help please

Post by slansing »

I meant you could run that command as a test from the nagios server's console, before you configure command and service definitions, that way, you know it works. That is not how the command definition should look. When you run the command, "filling in your windows server's IP and not the example IP" what does the console return?
csward
Posts: 46
Joined: Fri Mar 08, 2013 4:37 pm

Re: Check_WinFile Nagios NRPE help please

Post by csward »

Ah, right. I'm getting a "No handler for command: scripts\check_winfile.exe" error when I do this now.
abrist
Red Shirt
Posts: 8334
Joined: Thu Nov 15, 2012 1:20 pm

Re: Check_WinFile Nagios NRPE help please

Post by abrist »

There must be something amiss with your alias/external script declaration. Could you post your entire nsclient config in code wraps? (feel free to obfuscate your password and other sensitive bits)
Former Nagios employee
"It is turtles. All. The. Way. Down. . . .and maybe an elephant or two."
VI VI VI - The editor of the Beast!
Come to the Dark Side.
csward
Posts: 46
Joined: Fri Mar 08, 2013 4:37 pm

Re: Check_WinFile Nagios NRPE help please

Post by csward »

Thanks:

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

; Undocumented section
[/settings/default]

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

; PASSWORD - Password used to authenticate againast server
password = xxxxxx


; 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

; Check File Count
check_winfile = scripts\check_winfile.exe --target C:\\Traces --warn 5 --critical 25

; 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 = 
slansing
Posts: 7698
Joined: Mon Apr 23, 2012 4:28 pm
Location: Travelling through time and space...

Re: Check_WinFile Nagios NRPE help please

Post by slansing »

How are you running the command from the Nagios server? Can you paste exactly what you are typing into the command line? Obfuscating any IP/passwords you wish to not share. Also, are you sure that the check_winfile.exe plugin exists in the scripts directory of NSClient++? And also that you are indeed using the .exe version and not the .pl?
csward
Posts: 46
Joined: Fri Mar 08, 2013 4:37 pm

Re: Check_WinFile Nagios NRPE help please

Post by csward »

Yes, for sure using the .exe version i placed in the "scripts" folder.

I have adjusted the INI file to:

; Check File Count
check_winfile = "C:\Program Files\NSClient++\scripts\check_winfile.exe" --target C:\\Traces --warn 5 --critical 25


and the command I'm using in the Nagios server terminal is:

administrator@CSP-NAG-P01:/etc/nagios/objects$ /usr/local/src/nagios-plugins-1.4.16/plugins/check_nrpe -H 10.20.20.98 -c check_winfile
No handler for command: "C:\Program
slansing
Posts: 7698
Joined: Mon Apr 23, 2012 4:28 pm
Location: Travelling through time and space...

Re: Check_WinFile Nagios NRPE help please

Post by slansing »

Alright, lets move back a few steps. Firstly you do not need to change the definition to the full directory path, you need only use the definition I showed above. Secondly, open a command prompt on the windows server and move to the NSClient++ directory:

Example:

Code: Select all

cd C:\"Program Files"\NSClient++
Then run the following command from that location:

Code: Select all

nscp settings --generate --add-defaults --load-all
You should see some text output telling you it is working on expanding the configuration file..

Once that completes you should now have a fully expanded NSClient++ configuration file, please send that file our way.
Locked