0

NSCA seems to register the connection, as seems in the syslog, but for an unknow reason (at least for me) does not write it to icinga.cmd, or at least, read it.

this is the syslog.

   Jun 27 08:24:58 Mcentral nsca[13720]: Connection from 10.61.34.151 port 23204
Jun 27 08:24:58 Mcentral nsca[13720]: Handling the connection...
Jun 27 08:24:58 Mcentral nsca[13720]: End of connection...
Jun 27 08:24:59 Mcentral nsca[13721]: Connection from 10.61.34.151 port 23460
Jun 27 08:24:59 Mcentral nsca[13721]: Handling the connection...
Jun 27 08:24:59 Mcentral nsca[13721]: End of connection...

here is my nsca.cfg

####################################################
# Sample NSCA Daemon Config File 
# Written by: Ethan Galstad (nagios@nagios.org)
# 
# Last Modified: 04-03-2006
####################################################


# PID FILE
# The name of the file in which the NSCA daemon should write it's process ID
# number.  The file is only written if the NSCA daemon is started by the root
# user as a single- or multi-process daemon.

pid_file=/var/run/nsca.pid



# PORT NUMBER
# Port number we should wait for connections on.
# This must be a non-priveledged port (i.e. > 1024).

server_port=5667



# SERVER ADDRESS
# Address that NSCA has to bind to in case there are
# more as one interface and we do not want NSCA to bind
# (thus listen) on all interfaces.

#server_address=192.168.1.1



# NSCA USER
# This determines the effective user that the NSCA daemon should run as.  
# You can either supply a username or a UID.
# 
# NOTE: This option is ignored if NSCA is running under either inetd or xinetd

nsca_user=nagios



# NSCA GROUP
# This determines the effective group that the NSCA daemon should run as.  
# You can either supply a group name or a GID.
# 
# NOTE: This option is ignored if NSCA is running under either inetd or xinetd

nsca_group=nogroup



# NSCA CHROOT
# If specified, determines a directory into which the nsca daemon
# will perform a chroot(2) operation before dropping its privileges.
# for the security conscious this can add a layer of protection in
# the event that the nagios daemon is compromised.  
# 
# NOTE: if you specify this option, the command file will be opened
#       relative to this directory.

#nsca_chroot=/var/run/nagios/rw



# DEBUGGING OPTION
# This option determines whether or not debugging
# messages are logged to the syslog facility. 
# Values: 0 = debugging off, 1 = debugging on

debug=1



# COMMAND FILE
# This is the location of the Nagios command file that the daemon
# should write all service check results that it receives.
# Note to debian users: nagios 1.x and nagios 2.x have
# different default locations for this file.  this is the
# default location for nagios 1.x:
#command_file=/var/run/nagios/nagios.cmd
# and this is the default location for nagios2:
#command_file=/var/lib/nagios2/rw/nagios.cmd
# and this is the default location for nagios3:
command_file=/var/lib/icinga/rw/icinga.cmd

# ALTERNATE DUMP FILE
# This is used to specify an alternate file the daemon should
# write service check results to in the event the command file
# does not exist.  It is important to note that the command file
# is implemented as a named pipe and only exists when Nagios is
# running.  You may want to modify the startup script for Nagios
# to dump the contents of this file into the command file after
# it starts Nagios.  Or you may simply choose to ignore any
# check results received while Nagios was not running...

alternate_dump_file=/var/run/nagios/nsca.dump


# AGGREGATED WRITES OPTION
# This option determines whether or not the nsca daemon will
# aggregate writes to the external command file for client
# connections that contain multiple check results.  If you
# are queueing service check results on remote hosts and
# sending them to the nsca daemon in bulk, you will probably
# want to enable bulk writes, as this will be a bit more
# efficient.
# Values: 0 = do not aggregate writes, 1 = aggregate writes

aggregate_writes=0



# APPEND TO FILE OPTION
# This option determines whether or not the nsca daemon will
# will open the external command file for writing or appending.
# This option should almost *always* be set to 0!
# Values: 0 = open file for writing, 1 = open file for appending

append_to_file=0



# MAX PACKET AGE OPTION
# This option is used by the nsca daemon to determine when client
# data is too old to be valid.  Keeping this value as small as
# possible is recommended, as it helps prevent the possibility of
# "replay" attacks.  This value needs to be at least as long as
# the time it takes your clients to send their data to the server.
# Values are in seconds.  The max packet age cannot exceed 15
# minutes (900 seconds).  If this variable is set to zero (0), no
# packets will be rejected based on their age.

max_packet_age=30



# DECRYPTION PASSWORD
# This is the password/passphrase that should be used to descrypt the
# incoming packets.  Note that all clients must encrypt the packets
# they send using the same password!
# IMPORTANT: You don't want all the users on this system to be able
# to read the password you specify here, so make sure to set
# restrictive permissions on this config file!

#password=



# DECRYPTION METHOD
# This option determines the method by which the nsca daemon will
# decrypt the packets it receives from the clients.  The decryption
# method you choose will be a balance between security and performance,
# as strong encryption methods consume more processor resources.
# You should evaluate your security needs when choosing a decryption
# method.
#
# Note: The decryption method you specify here must match the
#       encryption method the nsca clients use (as specified in
#       the send_nsca.cfg file)!!
# Values:
#
#   0 = None    (Do NOT use this option)
#       1 = Simple XOR  (No security, just obfuscation, but very fast)
#
#       2 = DES
#       3 = 3DES (Triple DES)
#   4 = CAST-128
#   5 = CAST-256
#   6 = xTEA
#   7 = 3WAY
#   8 = BLOWFISH
#   9 = TWOFISH
#   10 = LOKI97
#   11 = RC2
#   12 = ARCFOUR
#
#   14 = RIJNDAEL-128
#   15 = RIJNDAEL-192
#   16 = RIJNDAEL-256
#
#   19 = WAKE
#   20 = SERPENT
#
#   22 = ENIGMA (Unix crypt)
#   23 = GOST
#   24 = SAFER64
#   25 = SAFER128
#   26 = SAFER+
#

decryption_method=1

i can telnet to it, but this is what i get:

�2��잿����1�q��"�)����I�Q�%*��R���a�f�`��W$�o+)9QS�ci�-C�55-��+���iI֎!E�K �Ln�kؗ�c�Q��gA�fSzc��9K�1�>_^X

just giberish.

My OS is ubuntu 12.04, and im trying to read some pasive check from another linux box, im using icinga 1.9.1 and icinga-web.

1 Answers1

1

If NSCA is not working you should try these things:

  1. Check your nagios.log and see if it is showing that NSCA has submitted commands, but for the wrong hostname/servicename

  2. Make sure NSCA has write permission to the Nagios command pipe file var/rw/nagios.cmd

  3. Make sure nagios.cfg specifies that external commands are processed check_external_commands=1

  4. Make sure Nagios has a reasonable command processing interval in nagios.cfg command_check_interval=-1

  5. Check that NSCA is configured to accept commands from the remote sender - if you use Xinetd for NSCA then this will be in the xinetd.d/nsca file, and if you run NSCA as a daemon you should look in your nsca.conf file.

  6. Check your local host firewall to make sure it is not dropping the inbound NSCA connections.

Steve Shipway
  • 742
  • 5
  • 17