Logstash系列: ruby拦截器的使用

目录

直接执行ruby:code

数组

外部脚本:path  

脚本demo


 


直接执行ruby:code



filter {
  ruby {

    id => "id_ruby_filepath"
    code => "if event.get('log')['file']  then event.set('filepath',event.get('log')['file']['path'] )  end"
  }
}

 

数组



filter {
  ruby {

    id => "id_ruby_filepath"
    code => " Array[''].each{ |item| if event.get('name') and event.get('name').include?term then event.set('name','Tom' )  end } "
  }
}

 

外部脚本:path
 

filter {
      ruby {
          # Cancel 90% of events
          path => "/etc/logstash/drop_percentage.rb"
          script_params => { "percentage" => 0.9 }
      }
    }

 

脚本demo

# the value of `params` is the value of the hash passed to `script_params`
# in the logstash configuration
def register(params)
	@drop_percentage = params["percentage"]
end

# the filter method receives an event and must return a list of events.
# Dropping an event means not including it in the return array,
# while creating new ones only requires you to add a new instance of
# LogStash::Event to the returned array
def filter(event)
	if rand >= @drop_percentage
		return [event]
	else
		return [] # return empty array to cancel event
	end
end

# the value of `params` is the value of the hash passed to `script_params`
# in the logstash configuration
def register(params)
    @drop_percentage = params["percentage"]
end

 
def filter(event)

event_test = LogStash::Event.new 

begin
    event_test.set("name",event.get("name"))

return [event_test]

rescue

    event_test.set("name",event.get("name"))

    return [event_test]

end
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NIO4444

如果对您有帮助,欢迎打赏支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值