NSClient++ Help (#1) - checkEventLog defining the service (#322) - Message List

checkEventLog defining the service

I'm having problems getting my new nagios command to work properly. Here is how I have my command.cfg config'd:

# 'check_event_log'
# Check Event log by Hostname
#       where $ARG1$ = Event Log to Check, $ARG2$ = Warning Threshhold, $ARG3$ = Critical Threshhold, $ARG4$ = Time in minutes ago to check, $ARG5$ = EventID number
#
define command{
        command_name    check_event_log
        command_line    check_nrpe -H $HOSTADDRESS$ -p 5666 -c checkEventLog -a filter=new file=$ARG1$ MaxWarn=$ARG2$ MaxCrit=$ARG3$ filter-generated=\<$ARG4$m filter-eventID==$ARG5$ filter=in filter=all
              }

I may be have the ARGs set up improperly, but they look like they should function ... nagios doesn't bitch about it with a check nagios -v

so with this my service definition in my host config file looks like this (which nagios -v doesn't like

########################   Check Events  ############################
#
define service(
        use                     generic-service
        hostname                <hostname>
        service_description     Event Log Cluster Failure Check
        check_command           check_event_log system 1 1 10 1069
        }

It seems to run okay from the command line if I pass the arguments i have set in the check command. Thouhgts/Suggestions??

Thanks --brian

  • Message #1027

    do you allow arguments via NRPE (in nsc.ini)?

    Michael Medin

    • Message #1030

      Yes, here's a copy of my nsc.ini

      [modules]
      ;# NSCLIENT++ MODULES
      ;# A list with DLLs to load at startup.
      ;  You will need to enable some of these for NSClient++ to work.
      ; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
      ; *                                                               *
      ; * N O T I C E ! ! ! - Y O U   H A V E   T O   E D I T   T H I S *
      ; *                                                               *
      ; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
      FileLogger.dll
      CheckSystem.dll
      CheckDisk.dll
      NSClientListener.dll
      NRPEListener.dll
      SysTray.dll
      CheckEventLog.dll
      ;CheckHelpers.dll
      ;
      ; CheckWMI IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!
      ;CheckWMI.dll
      ;
      ; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!
      ;RemoteConfiguration.dll
      [Settings]
      ;# OBFUSCATED PASSWORD
      ;  This is the same as the password option but here you can store the password in an obfuscated manner.
      ;  *NOTICE* obfuscation is *NOT* the same as encryption, someone with access to this file can still figure out the
      ;  password. Its just a bit harder to do it at first glance.
      ;obfuscated_password=Jw0KAUUdXlAAUwASDAAB
      ;
      ;# PASSWORD
      ;  This is the password (-s) that is required to access NSClient remotely. If you leave this blank everyone will be able to access the daemon remotly.
      ;password=secret-password
      ;
      ;# ALLOWED HOST ADDRESSES
      ;  This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons.
      ;  If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password).
      ;  The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access
      allowed_hosts=172.23.41.66
      ;
      ;# USE THIS FILE
      ;  Use the INI file as opposed to the registry if this is 0 and the use_reg in the registry is set to 1
      ;  the registry will be used instead.
      use_file=1
      [log]
      ;# LOG DEBUG
      ;  Set to 1 if you want debug message printed in the log file (debug messages are always printed to stdout when run with -test)
      ;debug=1
      ;
      ;# LOG FILE
      ;  The file to print log statements to
      ;file=NSC.log
      ;
      ;# LOG DATE MASK
      ;  The format to for the date/time part of the log entry written to file.
      ;date_mask=%Y-%m-%d %H:%M:%S
      [NSClient]
      ;# ALLOWED HOST ADDRESSES
      ;  This is a comma-delimited list of IP address of hosts that are allowed to talk to NSClient deamon.
      ;  If you leave this blank the global version will be used instead.
      allowed_hosts=(my nagios Host)
      ;
      ;# NSCLIENT PORT NUMBER
      ;  This is the port the NSClientListener.dll will listen to.
      port=12489
      ;
      ;# BIND TO ADDRESS
      ;  Allows you to bind server to a specific local address. This has to be a dotted ip adress not a hostname.
      ;  Leaving this blank will bind to all avalible IP adresses.
      ;bind_to_address=
      [Check System]
      ;# CPU BUFFER SIZE
      ;  Can be anything ranging from 1s (for 1 second) to 10w for 10 weeks. Notice that a larger buffer will waste memory
      ;  so don't use a larger buffer then you need (ie. the longest check you do +1).
      ;CPUBufferSize=1h
      ;
      ;# CHECK RESOLUTION
      ;  The resolution to check values (currently only CPU).
      ;  The value is entered in 1/10:th of a second and the default is 10 (which means ones every second)
      ;CheckResolution=10
      [NRPE]
      ;# NRPE PORT NUMBER
      ;  This is the port the NRPEListener.dll will listen to.
      ;port=5666
      ;
      ;# COMMAND TIMEOUT
      ;  This specifies the maximum number of seconds that the NRPE daemon will allow plug-ins to finish executing before killing them off.
      ;command_timeout=60
      ;
      ;# COMMAND ARGUMENT PROCESSING
      ;  This option determines whether or not the NRPE daemon 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 NRPE daemon will allow clients to specify nasty (as in |`&><'"\[]{}) characters in arguments.
      allow_nasty_meta_chars=1
      ;
      ;# USE SSL SOCKET
      ;  This option controls if SSL should be used on the socket.
      ;use_ssl=1
      ;
      ;# BIND TO ADDRESS
      ;  Allows you to bind server to a specific local address. This has to be a dotted ip adress not a hostname.
      ;  Leaving this blank will bind to all avalible IP adresses.
      ; bind_to_address=
      ;
      ;# ALLOWED HOST ADDRESSES
      ;  This is a comma-delimited list of IP address of hosts that are allowed to talk to NRPE deamon.
      ;  If you leave this blank the global version will be used instead.
      ;allowed_hosts=(myNagios Host IP)
      ;
      ;# SCRIPT DIRECTORY
      ;  All files in this directory will become check commands.
      ;  *WARNING* This is undoubtedly dangerous so use with care!
      ;script_dir=scripts\
      [NRPE Handlers]
      ;# COMMAND DEFINITIONS
      ;# Command definitions that this daemon will run.
      ;# Can be either NRPE syntax:
      ;command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
      ;# Or simplified syntax:
      ;test=c:\test.bat foo $ARG1$ bar
      ;check_disk1=/usr/local/nagios/libexec/check_disk -w 5 -c 10
      ;# Or even loopback (inject) syntax (to run internal commands)
      ;# This is a way to run "NSClient" commands and other internal module commands such as check eventlog etc.
      ;check_cpu=inject checkCPU warn=80 crit=90 5 10 15
      ;check_eventlog=inject CheckEventLog Application warn.require.eventType=error warn.require.eventType=warning critical.require.eventType=error critical.exclude.eventType=info truncate=1024 descriptions
      ;check_disk_c=inject CheckFileSize ShowAll MaxWarn=1024M MaxCrit=4096M File:WIN=c:\ATI\*.*
      ;# But be careful:
      ; dont_check=inject dont_check This will "loop forever" so be careful with the inject command...
      ;# Check some escapings...
      ; check_escape=inject CheckFileSize ShowAll MaxWarn=1024M MaxCrit=4096M "File: foo \" WIN=c:\\WINDOWS\\*.*"
      ;# Some real world samples
      ;nrpe_cpu=inject checkCPU warn=80 crit=90 5 10 15
      ;nrpe_ok=scripts\ok.bat
      
      • Message #1032

        The next thing to try is running in "/test" mode when the command executes so you can see what "goes wrong"... ie.

        nsclient++ /stop
        nsclient++ /test
        ...
        ... check what happends here when you run the command form nagios ...
        ...
        nsclient++ /start
        // MickeM
        
        • Message #1033

          So it seems like the nsclient piece is working okay, but it's most likely a syntax issue within Nagios.

          When I try and create my check_command it won't relaod nagios, it errors out.

          Does seem okay to you?

          ########################   Check Events  ############################
          #
          define service(
                  use                     generic-service
                  hostname                <hostname>
                  service_description     Event Log Cluster Failure Check
                  check_command           check_event_log system 1 1 10 1069
                  }
          

          If i run the command from the command line on my nagios server pointing at the host I want to check it returns the right info, but my check command doesn't want to play nice.

          • Message #1075

            You have an error look after define service. Replace ( by {

            define service(

            use generic-service hostname <hostname> service_description Event Log Cluster Failure Check check_command check_event_log system 1 1 10 1069 }

Subscriptions