Class: Syslogstash

Inherits:
ServiceSkeleton
  • Object
show all
Defined in:
lib/syslogstash.rb

Overview

Read syslog messages from one or more sockets, and send it to a logstash server.

Defined Under Namespace

Classes: SyslogReader

Instance Method Summary collapse

Constructor Details

#initialize(*_) ⇒ Syslogstash

Returns a new instance of Syslogstash.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/syslogstash.rb', line 20

def initialize(*_)
  super

  hook_signal("URG") do
    config.relay_to_stdout = !config.relay_to_stdout
    logger.info(logloc) { "SIGURG received; relay_to_stdout is now #{config.relay_to_stdout.inspect}" }
  end

  @shutdown_reader, @shutdown_writer = IO.pipe

  metrics.counter(:syslogstash_messages_received_total, "The number of syslog messages received from the log socket")
  metrics.counter(:syslogstash_messages_sent_total, "The number of logstash messages sent to each logstash server")
  metrics.gauge(:syslogstash_last_relayed_message_timestamp, "When the last message that was successfully relayed to logstash was originally received")
  metrics.gauge(:syslogstash_queue_size, "How many messages are currently in the queue to be sent")
  metrics.counter(:syslogstash_dropped_total, "Number of log entries that were not forwarded due to matching the drop regex")

  @writer = LogstashWriter.new(server_name: config.logstash_server, backlog: config.backlog_size, logger: config.logger, metrics_registry: metrics)
  @reader = SyslogReader.new(config, @writer, metrics)
end

Instance Method Details

#force_disconnect!Object



55
56
57
# File 'lib/syslogstash.rb', line 55

def force_disconnect!
  @writer.force_disconnect!
end

#runObject



40
41
42
43
44
45
46
# File 'lib/syslogstash.rb', line 40

def run
  @writer.run
  @reader.start!

  @shutdown_reader.getc
  @shutdown_reader.close
end

#shutdownObject



48
49
50
51
52
53
# File 'lib/syslogstash.rb', line 48

def shutdown
  @reader.stop!
  @writer.stop

  @shutdown_writer.close
end