Logstash调优——自定义插件

虽然Logstash提供了N多的过滤器插件,但是有木有最切合自己公司业务的插件呢?恰好,你只是做最简单的业务日志处理,比如日期、字段删除、字段替换等工作,那么Logstash自带的插件就可满足。但是,当你的日志需要外部数据进行丰富,那你怎么做?是用jdbc_staic、jdbc_stream、elasticsearch呢?可能这些能满足简单的日志丰富,但是复杂的日志处理,可能就无能为力。要么是没法实现,要么是性能低的可怜。

如何解决这个问题呢?logstash提供了自定义插件的功能,即就是自己写一个插件。如果你会Ruby,很好,人家就是天生支持Ruby的。但是现在,人家也提供了Java插件开发的文档供你参考(毕竟Logstash是运行在JVM上面的么)。

要使用Java开发一个Logstash插件,就需要耐着性子查看官方的文档(https://www.elastic.co/guide/en/logstash/current/java-filter-plugin.html)哦。虽然累,一定要看懂,看明白,并且要大胆的写代码。

由于,我们公司的项目,需要根据EVENT中某些字段来丰富EVENT,且是一种一对一的映射关系,开始是使用jdbc_staic来实现的,但是性能低的可怜,后来换成了elastic search插件,也没好到哪里去。最后就自己写了插件,性能提升至少有80倍。以前一个EVENT的耗时在80ms,现在基本小于1ms。吞吐量,真的是翻天覆地。

Logstash调优——自定义插件_第1张图片

详细的插件代码可以参考我的Gitee把,那边也有介绍https://gitee.com/antch_hw/logstash-filter-java_eastcom_filter-redis.git。

你可能感兴趣的:(logstash,filter,自定义插件,调优)