首页 > 解决方案 > Logstash 模糊端口定义

问题描述

我正在使用 Logstash 将文档推送到 elasticsearch,并且在尝试运行 logstash 时出现错误:

[2021-05-09T08:45:57,532][DEBUG][logstash.javapipeline][main] 管道因工作错误 {:pipeline_id=>"main", :exception=>#<LogStash::ConfigurationError: Explicit value for声明了“端口”,但在给定的 URL 之一中它是不同的!请确保您的 URL 与显式值内联。URL 的属性设置为“8001”,但也明确设置为“443”>, :backtrace=>["/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-输出-amazon_es-7.0.1-java/lib/logstash/outputs/amazon_es/http_client.rb:179:in calculate_property'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-amazon_es-7.0.1-java/lib/logstash/outputs/amazon_es/http_client.rb:228:in port'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash -output-amazon_es-7.0.1-java/lib/logstash/outputs/amazon_es/http_client.rb:66:inbuild_url_template'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-amazon_es-7.0.1-java/lib/logstash/outputs/amazon_es/http_client.rb:50:in 初始化'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-amazon_es-7.0.1-java/lib/logstash/outputs/amazon_es/http_client_builder.rb:110:在create_http_client'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-amazon_es-7.0.1-java/lib/logstash/outputs/amazon_es/http_client_builder.rb:98:in 构建中”,“/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-amazon_es-7.0.1-java/lib/logstash/outputs/amazon_es.rb:256: in build_client'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-amazon_es-7.0.1-java/lib/logstash/outputs/amazon_es/common.rb:25:in register'", "org/logstash/config/ir/compiler/OutputStrategyExt.java:126:in register'", "org/logstash/config/ir/compiler/AbstractOutputDelegatorExt.java:68:in register'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:226:in block in register_plugins'", "org/jruby/RubyArray.java:1809:in each '", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:225:in register_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:541:in maybe_setup_out_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb: 238:在start_workers'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:183:in 运行'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:134:in `block in start'"], "pipeline.sources"=>["/home/ubuntu/json_try /logstash_try.config"], :thread=>"#<线程:0x1b83bf8e 运行>"}

我试图弄清楚端口 443 配置来自哪里,因为我也在尝试使用 http 而不是 https 并在配置文件中指定端口 8001。我的logstash配置文件是:

input {
        file{
                type => "json"
                path => "~/home/ubuntu/json_try/json_try.json"
                start_position => "beginning"
                sincedb_path => "/dev/null"
        }
}

output{
        amazon_es {
                hosts => "http://my.dom:8001/scans"
                index => "snapshot-%{+YYYY.MM.dd}"
        }
        stdout{}
}

配置文件之外或里面有什么要改变的吗?

标签: elasticsearchlogstashkibanaelastic-stack

解决方案


我已经能够通过在配置文件中将端口显式设置为 8001 来解决,如下所示:

amazon_es {
   hosts => "http://my.dom/scans"
   port => 8001
   index => "snapshot-%{+YYYY.MM.dd}"
}

它为我解决了重复端口问题。


推荐阅读