class Fluent::SnmpTrapInput

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_snmptrap.rb, line 5
def initialize
  super
  require 'snmp'
end

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_snmptrap.rb, line 15
def configure(conf)
  super
end
shutdown() click to toggle source
# File lib/fluent/plugin/in_snmptrap.rb, line 33
def shutdown
  m.exit
end
start() click to toggle source
Calls superclass method
# 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