Class: Syslogstash
- Inherits:
-
Object
- Object
- Syslogstash
- 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: Config, LogstashWriter, PrometheusExporter, SyslogReader
Instance Method Summary collapse
- #force_disconnect! ⇒ Object
-
#initialize(cfg) ⇒ Syslogstash
constructor
A new instance of Syslogstash.
- #run ⇒ Object
Constructor Details
#initialize(cfg) ⇒ Syslogstash
Returns a new instance of Syslogstash.
10 11 12 13 14 15 16 |
# File 'lib/syslogstash.rb', line 10 def initialize(cfg) @cfg = cfg @stats = PrometheusExporter.new(cfg) @writer = LogstashWriter.new(cfg, @stats) @reader = SyslogReader.new(cfg, @writer, @stats) @logger = cfg.logger end |
Instance Method Details
#force_disconnect! ⇒ Object
47 48 49 |
# File 'lib/syslogstash.rb', line 47 def force_disconnect! @writer.force_disconnect! end |
#run ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/syslogstash.rb', line 18 def run if @cfg.stats_server @logger.debug("main") { "Running stats server" } @stats.run end @writer.run @reader.run dead_thread = ThreadsWait.new(@reader.thread, @writer.thread).next_wait if dead_thread == @writer.thread @logger.error("main") { "Writer thread crashed." } elsif dead_thread == @reader.thread @logger.error("main") { "Reader thread crashed." } else @logger.fatal("main") { "ThreadsWait#next_wait returned unexpected value #{dead_thread.inspect}" } exit 1 end begin dead_thread.join rescue Exception => ex @logger.error("main") { (["Exception in crashed thread was: #{ex.message} (#{ex.class})"] + ex.backtrace).join("\n ") } end exit 1 end |