Alert when UpTime gets to large

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.
User avatar
JohnFLi
Posts: 517
Joined: Mon Jun 17, 2013 3:11 pm

Alert when UpTime gets to large

Post 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?
Everybody is somebody else’s weirdo
User avatar
Box293
Too Basu
Posts: 5126
Joined: Sun Feb 07, 2010 10:55 pm
Location: Deniliquin, Australia
Contact:

Re: Alert when UpTime gets to large

Post 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.
As of May 25th, 2018, all communications with Nagios Enterprises and its employees are covered under our new Privacy Policy.
User avatar
JohnFLi
Posts: 517
Joined: Mon Jun 17, 2013 3:11 pm

Re: Alert when UpTime gets to large

Post 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 = 
Everybody is somebody else’s weirdo
User avatar
Box293
Too Basu
Posts: 5126
Joined: Sun Feb 07, 2010 10:55 pm
Location: Deniliquin, Australia
Contact:

Re: Alert when UpTime gets to large

Post 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
As of May 25th, 2018, all communications with Nagios Enterprises and its employees are covered under our new Privacy Policy.
User avatar
JohnFLi
Posts: 517
Joined: Mon Jun 17, 2013 3:11 pm

Re: Alert when UpTime gets to large

Post 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!
Everybody is somebody else’s weirdo
User avatar
JohnFLi
Posts: 517
Joined: Mon Jun 17, 2013 3:11 pm

Re: Alert when UpTime gets to large

Post 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!
Everybody is somebody else’s weirdo
User avatar
Box293
Too Basu
Posts: 5126
Joined: Sun Feb 07, 2010 10:55 pm
Location: Deniliquin, Australia
Contact:

Re: Alert when UpTime gets to large

Post 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.
As of May 25th, 2018, all communications with Nagios Enterprises and its employees are covered under our new Privacy Policy.
User avatar
JohnFLi
Posts: 517
Joined: Mon Jun 17, 2013 3:11 pm

Re: Alert when UpTime gets to large

Post 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
Everybody is somebody else’s weirdo
User avatar
Box293
Too Basu
Posts: 5126
Joined: Sun Feb 07, 2010 10:55 pm
Location: Deniliquin, Australia
Contact:

Re: Alert when UpTime gets to large

Post 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.
As of May 25th, 2018, all communications with Nagios Enterprises and its employees are covered under our new Privacy Policy.
User avatar
JohnFLi
Posts: 517
Joined: Mon Jun 17, 2013 3:11 pm

Re: Alert when UpTime gets to large

Post 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
Everybody is somebody else’s weirdo
Locked