不为失败找理由,要为成功找方法。

Logstash吞吐量求解(从Kafka消费永远赶不上生产速度)

Logstash | 作者 kiss_binbin | 发布于2017年03月17日 | 阅读数:25480

版本:lostash 5.0.2 ES5.2.2ES环境:
 es集群: 3node 16核 32G 200G(非SSD) 每台机器都配置16G heap size elasticsearch.yaml就增加了thread_pool bulk queue_size:1000 其他都默认
 3台Logstash节点 8核8G Logstash 5.0.2版本
 3台节点配置都为pipeline.worker:10、batch_size:1000, pipeline.batch_delay:5,jvm初始和最大heap为2G
 
问题:
 从kafka某topic消费(topic producer message为1W1/s)然后标准输出,在kafka ui中看logstash消费的total lag数值为255322788,一直在调整上面几个参数发现总是下不来...
 
请教:
 1. 参数上我是否设置错误? 各位是如何理解这些参数搭配使用。
 2. 上述问题我该如何解决,是扩节点么。?
已邀请:

medcl - 今晚打老虎。

赞同来自: kiss_binbin

logstash怎么调都没有用,说明es性能达到瓶颈,可以考虑es这侧的调优

Kylin Wong

赞同来自: kiss_binbin

最好附上ES集群的硬件及参数信息
 
Logstash 是 Input -> filter -> output
建议可以先另起一组(group_id不同),然后output至控制台检查是否是output的性能问题(通过dots来判断消费速度)
 
如果output至es,参数调优可以参考官方文档,其中的flush_size个人尝试结果比较重要。

本人在5.0.x也遇到很多奇怪的现象,升级至5.2.x后解决了……

leighton_buaa

赞同来自: kiss_binbin

同意,应该是es的性能瓶颈

linyongzhi

赞同来自: Kylin Wong

es可以安装下bigdesk插件,查看下bulk是不是有写入达到瓶颈的节点.

kiss_binbin

赞同来自:

版本:lostash 5.0.2 ES5.2.2ES
集群: 3node 16核 32G 200G(非SSD) 每台机器都配置16G heap size
elasticsearch.yaml就增加了thread_pool bulk queue_size:1000 其他都默认
 
上午做了小小dots测试发现(logstash 10worker 1000 batch_size):
 1.Logstash Kafka Input -> Stdout output 用pv命令看在62Kb/s
 2.Lostash Kafka Input -> ES output 用pv命令看在14KB/s左右
 
logstash配置如下:
input {
    kafka {
        bootstrap_servers => "xxx"
        topics => "api_accesslog"
        group_id => "log_logstash"
    }
}

output {
    stdout {
        codec => dots
    }
    elasticsearch {
        hosts => ["xxxx:9200","xxxx:9200","xxxx:9200"]
        index => "api_accesslog-%{+YYYY.MM.dd}"
    }
}
 
看来是output es有点问题,下午去优化下..

jhck2017

赞同来自:

你好,请问你的问题解决了吗?我现在也遇到相似的问题了?求指点

redhat

赞同来自:

请教下 我用pv,测es的时候,如图所示,感觉数据是错误的,总量一直是83B,平均流量是几百miB/s,请问你是怎么测的啊?测dot是正常的14kB/s
豆芽图片20170620193758993.png

要回复问题请先登录注册