Class: LogStash::Inputs::Courier

Inherits:
Base
  • Object
show all
Defined in:
lib/logstash/inputs/courier.rb

Overview

Receive events over the Log Courier protocol

Instance Method Summary collapse

Instance Method Details

#registerObject



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/logstash/inputs/courier.rb', line 81

def register
  @logger.info 'Starting courier input listener', :address => "#{@host}:#{@port}"

  options = {
    logger:                @logger,
    address:               @host,
    port:                  @port,
    transport:             @transport,
    ssl_certificate:       @ssl_certificate,
    ssl_key:               @ssl_key,
    ssl_key_passphrase:    @ssl_key_passphrase,
    ssl_verify:            @ssl_verify,
    ssl_verify_default_ca: @ssl_verify_default_ca,
    ssl_verify_ca:         @ssl_verify_ca,
    curve_secret_key:      @curve_secret_key,
  }

  # Honour the defaults in the LogCourier gem
  options[:max_packet_size] = @max_packet_size unless @max_packet_size.nil?
  options[:peer_recv_queue] = @peer_recv_queue unless @peer_recv_queue.nil?
  options[:add_peer_fields] = @add_peer_fields unless @add_peer_fields.nil?

  require 'log-courier/server'
  @log_courier = LogCourier::Server.new options
end

#run(output_queue) ⇒ Object



109
110
111
112
113
114
115
116
# File 'lib/logstash/inputs/courier.rb', line 109

def run(output_queue)
  @log_courier.run do |event|
    event['tags'] = [event['tags']] if event.has_key?('tags') && !event['tags'].is_a?(Array)
    event = LogStash::Event.new(event)
    decorate event
    output_queue << event
  end
end