Page 1 of 1
Nagios Monitor Cluester Shared Volumes server 2016
Posted: Fri Aug 31, 2018 8:07 am
by SJY004
Hello Guys,
I have Nagios Core working since ling time and we are using for windows and Linux server monitoring, recently we have installed the Hyper V clustering with 8 Nodes and I need to make the system monitoring for hyper v cluster.
I have already installed the NSClient++ plugin on the Hyper v host and can easily monitor the hardware info of the server like ( Ram, CPU and uptime and so on )
but i can not make monitoring for Cluster environment.
I have followed this topic and did excatly as mentioned in the topic.
https://support.nagios.com/forum/viewto ... =7&t=38871
but i am having issues in the Nagios and I get this output in Nagios.
Code: Select all
No handler for command: check_hyperv_csv_freespace
can i have some help please.
thank you
Re: Nagios Monitor Cluester Shared Volumes server 2016
Posted: Fri Aug 31, 2018 11:38 am
by lmiltchev
Is your command defined in the nsclient.ini file? Quite often, you can get this message if the external scripts module is not enabled. Check you see if you have the following lines in the nsclient.ini file:
Code: Select all
CheckExternalScripts = 1
allow nasty characters = 1
allow arguments = 1
then restart the nsclient service, so that changes can take effect.
If you check is still failing, show us the command that you are running from the CLI, along with the output of it, and post the entire nsclient.ini file from the Windows machine.
Re: Nagios Monitor Cluester Shared Volumes server 2016
Posted: Fri Aug 31, 2018 1:57 pm
by SJY004
lmiltchev wrote:Is your command defined in the nsclient.ini file? Quite often, you can get this message if the external scripts module is not enabled. Check you see if you have the following lines in the nsclient.ini file:
Code: Select all
CheckExternalScripts = 1
allow nasty characters = 1
allow arguments = 1
then restart the nsclient service, so that changes can take effect.
If you check is still failing, show us the command that you are running from the CLI, along with the output of it, and post the entire nsclient.ini file from the Windows machine.
I tried as you explained but it didn't work still.
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
; 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]
; 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 = true
insecure = true
; ALLOWED HOSTS - A comaseparated list of allowed hosts. You can use netmasks (/ syntax) or * to create ranges.
allowed hosts = 10.30.5.57
[/settings/external scripts]
allow arguments=true
allow nasty characters = 1
check_hyperv_csv_freespace=cmd /c echo scripts\check_csv_freespace.ps1 -n $ARG1$ -w $ARG2$ -c $ARG3$; exit($lastexitcode) | powershell.exe -command -
; 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: Nagios Monitor Cluester Shared Volumes server 2016
Posted: Fri Aug 31, 2018 3:08 pm
by npolovenko
@SJY004, Please replace the existing nsclient.ini file with the one I attached and restart the nsclient service. Let me know if the external script starts working for you. Thanks.
Re: Nagios Monitor Cluester Shared Volumes server 2016
Posted: Sat Sep 01, 2018 12:11 am
by SJY004
npolovenko wrote:@SJY004, Please replace the existing nsclient.ini file with the one I attached and restart the nsclient service. Let me know if the external script starts working for you. Thanks.
Hello
@npolovenko ,
I did as you advice and it worked, my Nagios can read the CSV vlaues and monitor it, Thank you for all the help.
I have few question about it.
- what was the issue with my NSClient++ and is it okay to change the NSclient.ini to even if the NSclient version is diffrenent than other.
I know it already worked with my set up but just out of the curiosity.
is there any secuirty measure i should take becasuse i have read it that NSclient is not pretty secure.
Once again thank you so much for your help, I was struggling with it for last days.
Re: Nagios Monitor Cluester Shared Volumes server 2016
Posted: Tue Sep 04, 2018 10:45 am
by scottwilkerson
These settings were in the wrong section
Code: Select all
allow arguments=true
allow nasty characters = 1
SJY004 wrote:is there any secuirty measure i should take becasuse i have read it that NSclient is not pretty secure.
Not sure where you read that , it should only respond to your Nagios XI server as it is the only allowed host.