class Fluent::Plugin::OuiFilter
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_oui.rb, line 14 def configure(conf) super @remove_prefix = Regexp.new("^#{Regexp.escape(remove_prefix)}\.?") unless conf['remove_prefix'].nil? @key_prefix_vendor = @mac_address + "_" + @key_prefix_vendor @key_prefix_oui = @mac_address + "_" + @key_prefix_oui end
filter_stream(tag, es)
click to toggle source
# File lib/fluent/plugin/filter_oui.rb, line 21 def filter_stream(tag, es) new_es = Fluent::MultiEventStream.new tag = tag.sub(@remove_prefix, '') if @remove_prefix tag = (@add_prefix + '.' + tag) if @add_prefix es.each do |time, record| unless record[@mac_address].nil? record[@key_prefix_oui] = getoui(record[@mac_address]) rescue nil record[@key_prefix_vendor] = getouiname(getoui(record[@mac_address])) rescue nil end new_es.add(time, record) end return new_es end
getoui(macaddress)
click to toggle source
# File lib/fluent/plugin/filter_oui.rb, line 36 def getoui(macaddress) macaddress = macaddress.gsub(/[0-9a-fA-F:]{1,8}$/, '') macaddress = macaddress.gsub(/:/, '') macaddress = macaddress.upcase return macaddress end
getouiname(ouiaddress)
click to toggle source
# File lib/fluent/plugin/filter_oui.rb, line 44 def getouiname(ouiaddress) CSV.open(@database_path,"r") do |csv| csv.each do |row| if row[0] == ouiaddress return row[1] end end end end