Class: Fluent::SnmpTrapInput

Inherits:
Input
  • Object
show all
Defined in:
lib/fluent/plugin/in_snmptrap.rb

Instance Method Summary collapse

Constructor Details

#initializeSnmpTrapInput

Returns a new instance of SnmpTrapInput.



5
6
7
8
# File 'lib/fluent/plugin/in_snmptrap.rb', line 5

def initialize
  super
  require 'snmp'
end

Instance Method Details

#configure(conf) ⇒ Object



15
16
17
# File 'lib/fluent/plugin/in_snmptrap.rb', line 15

def configure(conf)
  super
end

#shutdownObject



33
34
35
# File 'lib/fluent/plugin/in_snmptrap.rb', line 33

def shutdown
  m.exit
end

#startObject



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/fluent/plugin/in_snmptrap.rb', line 19

def start
  super
  m = SNMP::TrapListener.new(:Host => @host,:Port => @port) do |manager|
    manager.on_trap_default do |trap|
      tag = @tag 
      timestamp = Engine.now
      record = {"value"=> trap.inspect.to_json,"tags"=>{"type"=>"alert","host"=>trap.source_ip}}
      Engine.emit(tag, timestamp, record)
    end
  end
  trap("INT") { m.exit }
  m.join
end