Logstash:用 http 输出插件替换 Coralogix/Ruby 输出插件需要 x2 资源

问题描述 投票:0回答:1

根据 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
        }
}
  1. 尝试优化费用 尝试优化费用(将管道数量从 20 条减少) 我试图在一组探测期间将 pool_max 值增加到 300 并设法以明显滞后 4 或 5 小时来处理工作量, 在此期间之后,我收到了未使用消息的高延迟,不得不停止测试 (13 条管道无法处理工作量)
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 管道?

谢谢。

http logging plugins output logstash
1个回答
0
投票

我是来自 Coralogix 的 Roy

我想解释一下决定转向 HTTP 插件并停止支持 Coralogix 插件的主要原因

  1. 在 Coralogix 中,我们的方法是使用通用和开源的本机集成,这包括“输出”插件
  2. logstash http 输出插件支持多核,因此支持更高的吞吐量

关于您的具体问题,我建议调整 pipeline.batch.size 和 pipeline.batch.delay 配置 如果您使用默认值而不是将批次增加到 400 并将延迟增加到 150 并重新测试并联系我们的支持以更新结果

Coralogix 提供 24x7 支持,我们的支持工程师或专家可以与您通话,更详细地讨论您的解决方案的实施情况,并帮助您找到最佳解决方案

© www.soinside.com 2019 - 2024. All rights reserved.