使用率高 cpu 的 logstash kafka 输入过滤器
logstash kafka input filter with high cpu usage
我遇到一个问题,kafka logstash 管道消耗太多 cpu(启动时大约 300%,几秒钟后 100%),但基本上它可以工作:管道可以传递事件在kafka中进入elasticsearch,没有错误信息
logstash 运行 在 docker 容器中,带有最新版本的 lostash(2.1.1,来自 https://hub.docker.com/_/logstash/)。
docker run --rm --link kafka:kafka --link elasticsearch:elasticsearch -v "$PWD":/config-dir logstash logstash -f /config-dir/logstash-kafka-elasticsearch.conf
配置文件是这样的:
input {
kafka {
topic_id => 'mytopic'
zk_connect => 'kafka:2181'
}
}
output {
elasticsearch {
hosts=> ['elasticsearch:9200']
}
stdout { codec => rubydebug }
}
我有其他运行良好的 logstash 管道,cpu 使用也很正常(例如管道使用 http 作为输入,kafka 作为输出,占用 ~0% cpu)。
我试着把elasticsearch的输出注释掉,只留下stdout,问题依然存在,看来elasticsearch没有问题。
有人会提出建议吗?
logstash-input-kafka 插件在它的紧密循环中有一个错误,它不必要地检查空队列并跳到下一个迭代而不是阻塞。
这已在 this pull request and version 2.0.3 of the plugin has been released 中得到修复。
要对此进行测试,请使用以下方式更新插件:
bin/plugin install --version 2.0.3 logstash-input-kafka
我遇到一个问题,kafka logstash 管道消耗太多 cpu(启动时大约 300%,几秒钟后 100%),但基本上它可以工作:管道可以传递事件在kafka中进入elasticsearch,没有错误信息
logstash 运行 在 docker 容器中,带有最新版本的 lostash(2.1.1,来自 https://hub.docker.com/_/logstash/)。
docker run --rm --link kafka:kafka --link elasticsearch:elasticsearch -v "$PWD":/config-dir logstash logstash -f /config-dir/logstash-kafka-elasticsearch.conf
配置文件是这样的:
input {
kafka {
topic_id => 'mytopic'
zk_connect => 'kafka:2181'
}
}
output {
elasticsearch {
hosts=> ['elasticsearch:9200']
}
stdout { codec => rubydebug }
}
我有其他运行良好的 logstash 管道,cpu 使用也很正常(例如管道使用 http 作为输入,kafka 作为输出,占用 ~0% cpu)。 我试着把elasticsearch的输出注释掉,只留下stdout,问题依然存在,看来elasticsearch没有问题。
有人会提出建议吗?
logstash-input-kafka 插件在它的紧密循环中有一个错误,它不必要地检查空队列并跳到下一个迭代而不是阻塞。
这已在 this pull request and version 2.0.3 of the plugin has been released 中得到修复。
要对此进行测试,请使用以下方式更新插件:
bin/plugin install --version 2.0.3 logstash-input-kafka