NAME

Net::Graylog::Client - Client for Graylog2 analysis server

VERSION

version 0.7

SYNOPSIS

  use Net::Graylog::Client ;
 
  my $log = Net::Graylog::Client->new( url => 'http://graylog.server:12002/gelf' ) ;

  $log->send( message => 'testing', level => 'debug') ;

DESCRIPTION

Send a message to a graylog2 analysis server

You may send any data to a gray log server, but there are some restrictions plus this module adds some defaults.

* There must be a message field * a level field will be interpreted as a syslog level and converted to a number * you can access the original value with the levelstr field * a datetime and timestr field are added, the former is a unix int timestamp, the latter a time string * each message gets a uuid * a server field will be reinterpreseted as a host field, a default of hostname() will be added if needed

NAME

Net::Graylog::Client - Client for Graylog2 analysis server

VERSION

version 0.7

NAME

Net::Graylog::Client

AUTHOR

 kevin mulholland

VERSIONS

v0.1 2014/03/19, initial work

Notes

Obviously if you just want oto do this on the command line you can use

curl -XPOST http://graylog2_server:12202/gelf -p0 -d '{"short_message":"Hello there", "host":"example.org", "facility":"test", "_foo":"bar"}'

See Also

Log::Log4perl::Layout::GELF , Net::Sentry::Client

Todo

Investigate HTTP::Async instead of :Furl as it will not block, so we can wait for the response to be received, rather than the timeout to lapse

Public Functions

new

Create a new instance of the logger

    my $log = Net::Graylog::Client->new( url => 'http://graylog2_server:12202/gelf') ;

Parameters url the url of the graylog server, of the form http://graylog2_server:12202/gelf timeout, can be a float, default 0.01, Furl seems to wait until the timeout occurs before giving a response, which really cuts into the speed of sending, you may want to make this bigger for non-local servers, ie 1s

send

send a hash of data to the graylog server

    my $log = Net::Graylog::Client->new( 'http://graylog2_server:12202/gelf') ;
    $log->send( message => 'test message', level => 'info', elapsed = 12.1 )

Any data that is in the hash is passed to the server, though some may be re-interpreted as mentioned in the DESCRIPTION

Parameters hash of data to send

B><Returns> status - true = Sent, false = Failed code - HTTP response code from the graylog server

emerg alert crit error warning notice info debug

short cut to send, setting the syslog level to the name of the method

    my $log = Net::Graylog::Client->new( 'http://graylog2_server:12202/gelf') ;
    # level = alert
    $log->alert( message => 'test message', elapsed = 12.1 )
    # level = debug
    $log->debug( message => 'test message', elapsed = 12.1 )

Any data that is in the hash is passed to the server, though some may be re-interpreted as mentioned in the DESCRIPTION

The level field is overwritten with the name of the method called

Parameters hash of data to send

B><Returns> status - true = Sent, false = Failed code - HTTP response code from the graylog server

valid_levels

returns a list of the valid syslog levels

valid_facilities

returns a list of the valid syslog facilies

AUTHOR

Kevin Mulholland <moodfarm@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Kevin Mulholland.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

AUTHOR

Kevin Mulholland <moodfarm@cpan.org> James Lavoy <jalavoy@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kevin Mulholland.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.