NAME
    POE::Component::Client::NSCA - a POE Component that implements send_nsca
    functionality

SYNOPSIS
       use strict;
       use POE qw(Component::Client::NSCA);
       use Data::Dumper;

       POE::Session->create(
            inline_states => {
                    _start =>
                    sub {
                       POE::Component::Client::NSCA->send_nsca(
                            host    => $hostname,
                            event   => '_result',
                            password => 'moocow',
                            encryption => 1, # Lets use XOR
                            message => {
                                            host_name => 'bovine',
                                            svc_description => 'chews',
                                            return_code => 0,
                                            plugin_output => 'Chewing okay',
                            },
                       );
                       return;
                    },
                    _result =>
                    sub {
                       my $result = $_[ARG0];
                       print Dumper( $result );
                       return;
                    },
            }
       );

       $poe_kernel->run();
       exit 0;

DESCRIPTION
    POE::Component::Client::NSCA is a POE component that implements
    "send_nsca" functionality. This is the client program that is used to
    send service check information from a remote machine to an nsca daemon
    on the central machine that runs "Nagios".

    It is based in part on code shamelessly borrowed from Net::Nsca and
    optionally supports encryption using the Mcrypt module.

CONSTRUCTOR
    send_nsca
        Takes a number of parameters:

          'host', the hostname or IP address to connect to, mandatory;
          'event', the event handler in your session where the result should be sent, mandatory;
          'password', password that should be used to encrypt the packet, mandatory;
          'encryption', the encryption method to use, see below, mandatory;
          'message', a hashref containing details of the message to send, see below, mandatory;
          'session', optional if the poco is spawned from within another session;
          'port', the port to connect to, default is 5667;
          'context', anything you like that'll fit in a scalar, a ref for instance;
          'timeout', number of seconds to wait for socket timeouts, default is 10;

        The 'session' parameter is only required if you wish the output
        event to go to a different session than the calling session, or if
        you have spawned the poco outside of a session.

        The 'encryption' method is an integer value indicating the type of
        encryption to employ:

               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+

        Methods 2-26 require that the Mcrypt module is installed.

        The 'message' hashref must contain the following keys:

          'host_name', the host that this check is for, mandatory;
          'return_code', the result code for the check, mandatory;
          'plugin_output', the output from the check, mandatory;
          'svc_description', the service description ( required if this is a service not a host check );

        The poco does it's work and will return the output event with the
        result.

OUTPUT EVENT
    This is generated by the poco. ARG0 will be a hash reference with the
    following keys:

      'host', the hostname given;
      'message', the message that was sent;
      'context', anything that you specified;
      'success', indicates that the check was successfully sent to the NSCA daemon;
      'error', only exists if something went wrong;

AUTHOR
    Chris "BinGOs" Williams <chris@bingosnet.co.uk>

    Based on Net::Nsca by P Kent

    Which was originally derived from work by Ethan Galstad.

    See the LICENSE file for details.

SEE ALSO
    POE

    Net::Nsca

    Mcrypt

    <http://www.nagios.org/>

