Class: Fluent::Anonymizer
- Inherits:
-
Object
- Object
- Fluent::Anonymizer
- Defined in:
- lib/fluent/plugin/anonymizer.rb
Constant Summary collapse
- HASH_ALGORITHM =
%w(md5 sha1 sha256 sha384 sha512 ipaddr_mask)
- DIGEST =
{ "md5" => Proc.new { OpenSSL::Digest.new('md5') }, "sha1" => Proc.new { OpenSSL::Digest.new('sha1') }, "sha256" => Proc.new { OpenSSL::Digest.new('sha256') }, "sha384" => Proc.new { OpenSSL::Digest.new('sha384') }, "sha512" => Proc.new { OpenSSL::Digest.new('sha512') } }
Instance Attribute Summary collapse
-
#log ⇒ Object
readonly
Returns the value of attribute log.
Instance Method Summary collapse
- #anonymize(record) ⇒ Object
-
#initialize(plugin, conf) ⇒ Anonymizer
constructor
A new instance of Anonymizer.
Constructor Details
#initialize(plugin, conf) ⇒ Anonymizer
Returns a new instance of Anonymizer.
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 |
# File 'lib/fluent/plugin/anonymizer.rb', line 19 def initialize(plugin, conf) @log = plugin.log @hash_salt = plugin.hash_salt @ipv4_mask_subnet = plugin.ipv4_mask_subnet @ipv6_mask_subnet = plugin.ipv6_mask_subnet @hash_keys = {} conf.keys.select{|k| k =~ /_keys$/}.each do |key| hash_algorithm_name = key.sub('_keys','') raise Fluent::ConfigError, "anonymizer: unsupported key #{hash_algorithm_name}" unless HASH_ALGORITHM.include?(hash_algorithm_name) conf[key].gsub(' ', '').split(',').each do |record_key| @hash_keys.store(record_key.split('.'), hash_algorithm_name) end end if @hash_keys.empty? raise Fluent::ConfigError, "anonymizer: missing hash keys setting." end log.info "anonymizer: adding anonymize rules for each field. #{@hash_keys}" if plugin.is_a?(Fluent::Output) unless have_tag_option?(plugin) raise Fluent::ConfigError, "anonymizer: missing remove_tag_prefix, remove_tag_suffix, add_tag_prefix or add_tag_suffix." end end end |
Instance Attribute Details
#log ⇒ Object (readonly)
Returns the value of attribute log.
8 9 10 |
# File 'lib/fluent/plugin/anonymizer.rb', line 8 def log @log end |
Instance Method Details
#anonymize(record) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/fluent/plugin/anonymizer.rb', line 46 def anonymize(record) @hash_keys.each do |hash_key, hash_algorithm| record = anonymize_record(record, hash_key, hash_algorithm) end record end |