Page 1 of 3
Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 11:18 am
by JohnFLi
I have the UpTime check on all my Windows systems. (System Uptime - 8 day(s) 12 hour(s) 57 minute(s) )
I would like to get a notification if Uptime gets to be more than 60 days.
Is there a way to do that?
Re: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 1:21 pm
by Box293
If you're doing this with check_nt then I would say no.
However with check_nrpe this is possible:
Code: Select all
./check_nrpe -H <windows_server> -c CheckCounter -a "Counter=\System\System Up Time" ShowAll MaxCrit=5184000
MaxCrit=5184000 is 60 days in seconds.
Re: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 3:56 pm
by JohnFLi
I tried, but it failed to work
Code: Select all
[root@g1vpnag01 libexec]# ./check_nrpe -H SQL1 -p 12489 -n -c CheckCounter -a "Counter=\System\System Up Time" ShowAll MaxCrit=5184000
CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
[root@g1vpnag01 libexec]#
and the log file on the host machine:
Code: Select all
2014-09-26 13:46:12: e:..\..\..\..\nscp\modules\NSClientServer\NSClientServer.cpp:254: Invalid password (
I dont have a password set
Im using NSClient++ v 4.1.105
nsclient.ini
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 = g1vpnag01
; 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: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 4:20 pm
by Box293
NRPE does not run on port 12489, it is on 5666. You don't need to specify the port with the command.
Try again:
Code: Select all
./check_nrpe -H SQL1 -c CheckCounter -a "Counter=\System\System Up Time" ShowAll MaxCrit=5184000
Re: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 4:24 pm
by JohnFLi
ok, I was able to get a little further...... didn't know about needing to add lines to the nsclient.ini file
Not, I am getting this error
Code: Select all
./check_nrpe -H SQL1 -p 12489 -n -c CheckCounter -a "Counter=\System\System Up Time" ShowAll MaxCrit=5184
Exception processing request: Request command contained illegal metachars!
Re: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 4:26 pm
by JohnFLi
correct the port issue.
Same result.
./check_nrpe -H SQL1 -n -c CheckCounter -a "Counter=\System\System Up Time" ShowAll MaxCrit=5184
Exception processing request: Request command contained illegal metachars!
2014-09-26 14:25:40: e:..\..\..\..\nscp\modules\NRPEServer\handler_impl.cpp:25: Request arguments contained illegal metachars!
Re: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 4:35 pm
by Box293
We need to enable some options.
- Open up a cmd prompt and type in "cd C:\Program Files\NSClient++" without the "" - hit enter
type in "nscp settings --generate --add-defaults --load-all" - without the "" - hit enter
Go into C:\program files\nsclient++ and open up the nsclient.ini file
Make sure these settings are on true.
[/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
Save the file and restart the NSClient++ service.
Test now.
Re: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 4:45 pm
by JohnFLi
Code: Select all
C:\Program Files\NSClient++>nscp settings --generate --add-defaults --load-all
e rvice\NSClient++.cpp:347 Failed to register plugin: Could not load library: 1
4001: This application has failed to start because the application configuration
is incorrect. Reinstalling the application may fix this problem.
: C:\Program Files\NSClient++\\modules\DotnetPlugins.dll in file: DotnetPlugins
e rvice\NSClient++.cpp:347 Failed to register plugin: Could not load library: 1
26: The specified module could not be found.
: C:\Program Files\NSClient++\\modules\PythonScript.dll in file: PythonScript
e service\commands.hpp:95 Adding duplicate command: CheckTaskSchedValue
e service\commands.hpp:95 Adding duplicate command: CheckTaskSched
Adding default values
just to make sure everythgin was clean, I uninstalled the NSclient, reinstalled it, then ran your suggestion
Re: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 4:53 pm
by Box293
Try stopping the NSClient++ service.
Rename the nsclient.ini file
run the command again to generate the settings
Start the service.
NSClient just isn't fun sometimes.
Re: Alert when UpTime gets to large
Posted: Fri Sep 26, 2014 5:00 pm
by JohnFLi
Code: Select all
C:\Program Files\NSClient++>nscp settings --generate --add-defaults --load-all
l mpl/settings_ini.hpp:298 Configuration file not found: C:/Program Files/NSCli
ent++//nsclient.ini
e rvice\NSClient++.cpp:347 Failed to register plugin: Could not load library: 1
4001: This application has failed to start because the application configuration
is incorrect. Reinstalling the application may fix this problem.
: C:\Program Files\NSClient++\\modules\DotnetPlugins.dll in file: DotnetPlugins
e rvice\NSClient++.cpp:347 Failed to register plugin: Could not load library: 1
26: The specified module could not be found.
: C:\Program Files\NSClient++\\modules\PythonScript.dll in file: PythonScript
e service\commands.hpp:95 Adding duplicate command: CheckTaskSchedValue
e service\commands.hpp:95 Adding duplicate command: CheckTaskSched
Adding default values