Logstash调优——自定义插件REDIS

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

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

要使用Java开发一个Logstash插件,就需要耐着性子查看官方的文档(How to write a Java filter plugin | Logstash Reference [8.9] | Elastic)哦。虽然累,一定要看懂,看明白,并且要大胆的写代码。

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

详细的插件代码可以参考我的Gitee把,那边也有介绍logstash-filter-java_eastcom_filter-redis: 编写Logstash 的redis-filter插件,满足公司的业务需求

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Logstash调优可以从以下几个方面入手: 1. 增加Logstash实例:可以通过横向扩展的方式来提高Logstash的处理能力,多个Logstash相互独立,采用相同的pipeline配置,另外可以在这多个Logstash前增加一个LoadBalance,以实现多个Logstash的负载均衡。 2. 优化pipeline配置:可以通过优化pipeline配置来提高Logstash的性能,例如使用grok等插件来解析日志,使用filter插件来过滤不必要的数据等。 3. 调整JVM参数:可以通过调整JVM参数来提高Logstash的性能,例如增加堆内存大小、减少垃圾回收次数等。 4. 使用异步处理:可以使用异步处理来提高Logstash的性能,例如使用异步输出插件来将数据输出到Elasticsearch等目标系统。 5. 优化输入输出:可以通过优化输入输出来提高Logstash的性能,例如使用TCP输入插件来替代UDP输入插件,使用bulk输出插件来替代单条输出插件等。 以下是一个Logstash调优的例子: ```shell # 增加Logstash实例 # 在多台服务器上启动多个Logstash实例,并使用LoadBalance进行负载均衡 # pipeline配置相同,可以使用同一份配置文件 # 配置文件示例: input { beats { port => 5044 } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } output { elasticsearch { hosts => ["localhost:9200"] index => "logstash-%{+YYYY.MM.dd}" } } # 调整JVM参数 # 在启动Logstash时增加JVM参数,例如增加堆内存大小为4G bin/logstash -J-Xmx4g # 使用异步处理 # 在output插件中使用异步输出插件,例如使用elasticsearch_async插件 output { elasticsearch_async { hosts => ["localhost:9200"] index => "logstash-%{+YYYY.MM.dd}" } } # 优化输入输出 # 使用TCP输入插件替代UDP输入插件,使用bulk输出插件替代单条输出插件 input { tcp { port => 5000 } } output { elasticsearch { hosts => ["localhost:9200"] index => "logstash-%{+YYYY.MM.dd}" codec => "json" flush_size => 500 idle_flush_time => 1 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值