根据 Coralogix,他们将放弃对 他们基于 Coralogix/Ruby 的插件。
建议使用 http 输出插件作为替代。 您可以通过浏览以下 URL 找到相关详细信息: https://coralogix.com/docs/coralogix-logstash-integration/
集成前系统行为: 这些消息被提供给具有 50 个分区(输入)的 Kafka 主题。 由于输出使用了 Coralogix/Ruby 插件,因此能够处理 10 个实例的工作负载 使用的同一管道 基于 Coralogix/Ruby 的插件。
集成后系统的行为: 一、成功案例: Logstash 管道可以处理来自生产的工作负载 具有 50 个分区的 Kafka 主题 有 20 个管道(而不是 Coralogix/Ruby 的 10 个) 这反过来又显着增加 这部分基础设施的费用 (ec2 c2.8xlarge - 每月 992 美元)。
解决方案有效,但价格是其两倍 高于原来的 (Coralogix/Ruby) 您可以在下面找到输出配置的示例。
我还想提一下,对于此设置, pool_max = 50 默认情况下
output {
http {
url => "${CORALOGIX_MAIN_API_URL}"
http_method => "post"
headers => ["private_key", "${CORALOGIX_MAIN_PRIVKEY}"]
format => "json_batch"
codec => "json"
mapping => {
"applicationName" => "${ENVIRONMENT}"
"subsystemName" => "${SUBSYSTEM}"
"text" => "%%{[@metadata][event]}"
}
http_compression => true
automatic_retries => 5
retry_non_idempotent => false
connect_timeout => 60
keepalive => true
pool_max => 50
}
}
output { http { url => "${CORALOGIX_MAIN_API_URL}" http_method => "post" headers => ["private_key", "${CORALOGIX_MAIN_PRIVKEY}"] format => "json_batch" codec => "json" mapping => { "applicationName" => "${ENVIRONMENT}" "subsystemName" => "${SUBSYSTEM}" "text" => "%%{[@metadata][event]}" } http_compression => true automatic_retries => 5 retry_non_idempotent => false connect_timeout => 60 keepalive => true pool_max => 300 } }
问题: 这是 http 插件的预期行为吗? 我的意思是大量的 logstash 管道实例, 应该等于或小于 Kafka 主题分区的数量? 在我的例子中,Kafka 主题分区 = 50 和 40 个管道能够覆盖负载 而不是 Coralogix/Ruby 的 20。 是否有任何其他/额外的方法可以降低此解决方案的成本以及处理工作负载的许多 logstash 管道?
谢谢。
我是来自 Coralogix 的 Roy
我想解释一下决定转向 HTTP 插件并停止支持 Coralogix 插件的主要原因
关于您的具体问题,我建议调整 pipeline.batch.size 和 pipeline.batch.delay 配置 如果您使用默认值而不是将批次增加到 400 并将延迟增加到 150 并重新测试并联系我们的支持以更新结果
Coralogix 提供 24x7 支持,我们的支持工程师或专家可以与您通话,更详细地讨论您的解决方案的实施情况,并帮助您找到最佳解决方案