NAME

Net::Lumberjack::Client - a client for the lumberjack protocol

VERSION

version 1.02

SYNOPSIS

  use Net::Lumberjack::Client;

  my $client = Net::Lumberjack::Client->new(
    host => '127.0.0.1',
    port => 5044,
    # for beats server
    keepalive => 0,
    frame_format => 'json',
    ## for a saftpresse (Log::Saftpresse) server
    # keepalive => 1, # or 0
    # frame_format => 'json',
    ## for a lumberjack (v1) server
    # keepalive => 1,
    # frame_format => 'data',
  );

  $client->send_data(
   { message => 'hello world!', lang => 'en' },
   { message => 'Hallo Welt!', lang => 'de' },
  );

ATTRIBUTES

host (default: '127.0.0.1')

Host to connect to.

port (default: 5044)

TCP port to connect to.

keepalive (default: 0)

If enabled connection will be keept open between send_data() calls. Otherwise it will be closed and reopened on every call.

Needs to be disabled for logstash-input-beats since it expects only one bulk of frames per connection.

frame_formt (default: 'json')

The following frame formats are supported:

'json', 'v2'

Uses json formatted data frames as defined in lumberjack protocol v2. (type 'J')

'data', 'v1'

Uses lumberjack DATA (type 'D') frames as defined in lumberjack protocol v1.

This format only supports a flat hash structure.

max_window_size (default: 2048)

Maximum number of frames the clients sends in one bulk.

When hitting this limit the client will split up the stream into smaller bulks.

use_ssl (default: 0)

Enable SSL transport encryption.

ssl_verify (default: 1)

Enable verification of SSL server certificate.

ssl_ca_file (default: emtpy)

Use a non-default CA file to retrieve list of trusted root CAs.

Otherwise the system wide default will be used.

ssl_ca_path (default: emtpy)

Use a non-default CA path to retrieve list of trusted root CAs.

Otherwise the system wide default will be used.

ssl_version (default: empty)

Use a non-default SSL protocol version string.

Otherwise the system wide default will be used.

Check IO::Socket::SSL for string format.

ssl_hostname (default: emtpy)

Use a hostname other than the hostname give in 'host' for SSL certificate verification.

This could be used if you use a IP address to connecting to server that only lists the hostname in its certificate.

ssl_cert (default: empty)

ssl_key (default: empty)

If 'ssl_cert' and 'ssl_key' is the client will enable client side authentication and use the supplied certificate/key.

METHODS

send_data( HashRef1, ... )

This method takes a list of HashRefs and sends them to the server.

AUTHOR

Markus Benning <ich@markusbenning.de>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2016 by Markus Benning.

This is free software, licensed under:

  The Apache License, Version 2.0, January 2004